Speedup-Theorem
In der Komplexitätstheorie dienen verschiedene Speedup-Theoreme oder Beschleunigungssätze für den Nachweis, dass eine Maschine oder ein Algorithmus um einen …
In der Komplexitätstheorie dienen verschiedene Speedup-Theoreme oder Beschleunigungssätze für den Nachweis, dass eine Maschine oder ein Algorithmus um einen gewissen Faktor beschleunigt werden kann, wenn bereits eine andere Maschine oder ein anderer Algorithmus bekannt ist.
Die ursprüngliche Version des Speedup-Theorems stammt von Manuel Blum (1967), ist jedoch heute aufgrund der Verwendung beliebiger Komplexitätsfunktionen nicht mehr von großer Bedeutung. Man setzt heute in der Komplexitätstheorie im Allgemeinen echte Komplexitätsfunktionen voraus, die gewisse Eigenschaften erfüllen müssen (siehe auch Anforderungen an Schrankenfunktionen).
Lineares Speedup-Theorem
Der bekannteste Vertreter ist das lineare Speedup-Theorem, das auch als lineares Beschleunigen bezeichnet wird. Es besagt, dass sich zu jeder Turingmaschine, die ein Problem in Zeit berechnet und jedem , eine neue Turingmaschine konstruieren lässt, die das Problem in Zeit mit berechnet. Jede Turingmaschine, die ein bestimmtes Problem in einer bestimmten Zeit löst, lässt sich um einen beliebigen linearen Faktor beschleunigen. Die zusätzliche Addition von ergibt sich aus der Notwendigkeit, das Eingabewort der Ausgangsmaschine vollständig einzulesen.
Die Möglichkeit, Turingmaschinen zu beschleunigen, verdankt man der freien Wahl des Arbeitsalphabets der Maschine. Dadurch können mehrere Speicherzellen zusammengefasst werden, indem man sie durch eine Zelle repräsentiert (Bandkompression).
Andere Speedup-Theoreme sind das Speedup-Theorem von Blum und das quadratische Speedup-Theorem.
Beispiel aus der Mathematik
Die Addition der Binärzahlen 1001101 und 1010011 benötigt je einen Additionsschritt je Ziffernpaar. Insgesamt also sieben. Schreibt man die Zahlen im Dezimalsystem (77 und 83), so benötigt man nur zwei Additionen – allerdings mit größeren Zahlen. Hierbei ist zu beachten, dass sich nicht immer das Ausrechnen eines bestimmten Beispiels um einen linearen Faktor beschleunigen lässt, sondern die zur Addition gehörige Turingmaschine für beliebig große Eingaben.
Das Beispiel erklärt auch, warum Programme auf realen Rechnern nicht auf diese Art und Weise beschleunigt werden können. Anders als eine Turingmaschine können binäre Rechner kein anderes Alphabet außer verarbeiten.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.