Berechenbarkeit und Komplexität - Institut für Theoretische Physik ...
Berechenbarkeit und Komplexität - Institut für Theoretische Physik ...
Berechenbarkeit und Komplexität - Institut für Theoretische Physik ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Klassische Informationstheorie:<br />
<strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong><br />
Christian Slupina<br />
1. <strong>Institut</strong> <strong>für</strong> <strong>Theoretische</strong> <strong>Physik</strong><br />
Datum: 12.Juli 2011
Inhalt<br />
● Gedankenexperiment: Die Turingmaschine<br />
● Standard-Turingmaschinen<br />
● Mehrband-Turingmaschinen<br />
● Nichtdeterminismus<br />
● <strong>Komplexität</strong>stheorie<br />
● <strong>Komplexität</strong>smaße<br />
● <strong>Komplexität</strong>sklassen <strong>und</strong> die P-Klasse<br />
● Die NP-Klasse / NP-Vollständigkeit<br />
● Zusammenfassung
1.1 Die Turingmaschine <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
● Heutige Anwendungen werden erst durch komplexe<br />
Algorithmen lösbar<br />
● viele nichttriviale Operationen werden<br />
zusammengefasst <strong>und</strong> sind nur schwer analysierbar<br />
Suche nach universellem Maß <strong>für</strong> die<br />
<strong>Berechenbarkeit</strong><br />
Beschränkung auf elementare Umformungen<br />
● 1936: Theorie der Turingmaschine<br />
Jeder Algorithmus kann auf einer<br />
Turingmaschine simuliert werden,<br />
(Churchsche These)<br />
3
1.1 Die Turingmaschine <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
● Aufbau der Turingmaschine:<br />
● Mögliche Aktionen:<br />
Änderung der Position<br />
Ersetzen des Zustands xi durch ein eigenes Symbol<br />
4
1.1 Die Turingmaschine <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
● Formale Definition: Eine Turingmaschine ist ein<br />
7-Tupel M mit:<br />
Q: Zustandsmenge<br />
Σ: Eingangsalphabet ( <strong>und</strong> ¢ nicht enthalten)<br />
Γ: Arbeitsalphabet (enthält alle Symbole, kein<br />
Überschreiben von ¢)<br />
δ: Übergangsfunktion<br />
q 0: Anfangszustand<br />
q accept, reject: Endzustand (akzeptierender oder<br />
verwerfender Zustand)<br />
5
1.2 Mehrband-Turingmaschinen <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
● Verbesserung durch Separation der Rechen <strong>und</strong><br />
Speichervorgänge<br />
● Eingangssequenz wird nicht verändert, Berechnung<br />
erfolgt separat auf k Arbeitsbändern<br />
6
1.2 Mehrband-Turingmaschinen <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Darstellung von Berechnungsschritten:<br />
p,q: Anfangs- Endzustand<br />
a,b: eingelesene Symbole<br />
Hier: <strong>für</strong> eine Einband-<br />
Turingmaschine (k=1)<br />
X,Y {L,R,N}: Verschiebung der Köpfe<br />
d: auf dem Arbeitsband ersetztes Symbol b d<br />
7
1.2 Mehrband-Turingmaschinen <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Beispiel einer Einband-Turingmaschine:<br />
sind zwei benachbarte Worte gleich?<br />
Vereinfachend: drei Schritte notwendig:<br />
● TM überprüft, ob eine Eingabe der Form x#y vorliegt,<br />
Abbruch wenn mehrere/keine # gelesen werden<br />
● Nach dem Einlesen werden beide Köpfe zurückgesetzt,<br />
im Anschluss startet der Kopiervorgang<br />
● Vergleich der Sequenzen<br />
TM akzeptiert die Eingabe<br />
wenn alle Symbole gleich sind<br />
8
1.2 Mehrband-Turingmaschinen <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Viel ausführlicher: Protokoll der Übergangsfunktionen<br />
9
1.2 Mehrband-Turingmaschinen <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
1. Schritt: Einlesen des<br />
ersten Worts<br />
2. Schritt: Einlesen des<br />
zweiten Worts<br />
10
1.2 Mehrband-Turingmaschinen <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
3. Schritt: Zurücksetzen<br />
des Lesekopfs<br />
4. Schritt: Kopieren<br />
11
1.2 Mehrband-Turingmaschinen <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
5. Schritt: Schreibkopf wird<br />
zurückgesetzt<br />
Vergleich des Inhalts<br />
12
1.3 Nichtdeterminismus <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Bisher wurde jedem Schritt genau eine<br />
Übergangsfunktion zugeordnet<br />
Erweiterung:<br />
Konsequenz: Nach deterministischem Einlesen gibt<br />
es eine Vielzahl akzeptierter Zustände<br />
Konzept der Berechnungsbäume<br />
13
1.3 Nichtdeterminismus <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Beispiel eines Berechnungsbaums:<br />
Insbesondere muss die TM nicht halten,<br />
unendliche Berechnungen (Schleifen) sind<br />
nicht auszuschließen<br />
Quelle: http://cl-informatik.uibk.ac.at<br />
14
1.3 Nichtdeterminismus <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Wie unterscheidet sich der nichtdet. Wortvergleich?<br />
● Analoger, deterministischer Einlesevorgang<br />
● Unterschied beim Schreibvorgang: Symbole<br />
werden „geraten“<br />
Fehlerhafter Speichervorgang bleibt<br />
in Erinnerung, bis zu 16 Prozesse<br />
notwendig<br />
Eigene <strong>Komplexität</strong>sklasse <strong>für</strong><br />
nichtdeterministische Probleme<br />
15
2. <strong>Komplexität</strong>stheorie <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Gr<strong>und</strong>gedanke: Abschätzung der benötigten Ressourcen,<br />
Einteilung in „schwere“ <strong>und</strong> „leichte“ Probleme<br />
Definition basiert auf einer k-Band-TM:<br />
Zeitkomplexität:<br />
Annahme des schlimmsten Falls, um erfolgreiche<br />
Berechnung zu garantieren<br />
Speicherkomplexität einer Berechnung:<br />
Längster Eintrag eines Bands wird als Maß gewählt<br />
16
2. <strong>Komplexität</strong>stheorie <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Speicherkomplexität lässt sich erweitern:<br />
gesucht wird die größtmögliche Speicherkomplexität<br />
eines Wortes bei n Schritten<br />
● Die Anzahl der Lesevorgänge ist stets größer oder gleich<br />
der Anzahl der Schreibvorgänge, andernfalls keine<br />
logische Operation<br />
● Folgerung: Die Zeitkomplexität ist die entscheidende<br />
Größe<br />
17
2.1 <strong>Komplexität</strong>smaße <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Problem: die <strong>Komplexität</strong> ist nicht exakt bestimmbar<br />
Als Vergleich dienen Funktionen f(n) der Eingabelänge n<br />
mit denen zumindest der Wertebereich abgeschätzt wird:<br />
Die <strong>Komplexität</strong> wächst asymptotisch<br />
nicht schneller als f<br />
Beschleunigung um<br />
konstanten Faktor<br />
möglich<br />
18
2.1 <strong>Komplexität</strong>smaße <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Die <strong>Komplexität</strong> wächst asymptotisch<br />
mindestens so schnell wie g<br />
Weiterhin: <strong>Komplexität</strong> wächst gleich schnell<br />
Satz:<br />
<strong>Komplexität</strong> wächst schneller<br />
Es gibt sogar Algorithmen, die die Zeitkomplexität wesentlich<br />
verbessern, damit existiert kein idealer Algorithmus<br />
Nur die obere Schranke kann mit<br />
Sicherheit abgeschätzt werden<br />
19
2.1 <strong>Komplexität</strong>smaße <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Beispiele <strong>für</strong> deterministische <strong>Komplexität</strong>smaße:<br />
● Liegt das gleiche Wort in der Sequenz vor?<br />
20
2.1 <strong>Komplexität</strong>smaße <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Beispiele <strong>für</strong> deterministische <strong>Komplexität</strong>smaße:<br />
● Liegt das gleiche Wort in der Sequenz vor?<br />
20
2.1 <strong>Komplexität</strong>smaße <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Beispiele <strong>für</strong> deterministische <strong>Komplexität</strong>smaße:<br />
● Liegt das gleiche Wort in der Sequenz vor?<br />
● Abschätzung der Wurzel einer gleichen Sequenz<br />
der Länge n:<br />
prüfe hier<strong>für</strong>, ob <strong>für</strong> ein festes i gilt<br />
20
2.1 <strong>Komplexität</strong>smaße <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Größtes i entspricht der oberen Schranke<br />
21
2.2 <strong>Komplexität</strong>sklassen / P-Klasse <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Weitere Beispiele deterministischer Funktionen:<br />
● Algorithmen mit der <strong>Komplexität</strong> 2 n <strong>und</strong> n! sind<br />
mit endlichen Ressourcen nicht lösbar<br />
● Man definiert die „praktisch lösbaren“ Algorithmen<br />
über eine polynomielle Zeitkomplexität<br />
P-Klasse<br />
22
2.3 NP-Klasse / NP-Vollständigkeit <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Verallgemeinerung:<br />
● Jedes nicht praktisch lösbare Problem ist ein<br />
Spezialfall nichtdeterministischer <strong>Komplexität</strong><br />
P NP<br />
● Den unlösbaren <strong>und</strong> „unendlich schweren“<br />
Problemen wird die NP-Klasse zugeordnet, welche<br />
alle Probleme umfasst<br />
23
2.3 NP-Klasse / NP-Vollständigkeit <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
● Weitere Eigenschaft der NP-Klasse: Beweisverifikation<br />
<strong>für</strong> das Entscheidungsproblem, ob die TM hält<br />
● Idee: Berechnungsbaum<br />
Erraten des Zustands<br />
entspricht 2 n Rechenschritten<br />
Deterministische Prüfung<br />
des Wahrheitsgehalts in<br />
polynomieller Zeit<br />
24
2.3 NP-Klasse / NP-Vollständigkeit <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
● Wir glauben also, dass eine erfolgreiche Berechnung<br />
genauso aufwendig ist wie die Herstellung eines<br />
Beweisverfahrens<br />
● Die Forderung N=NP widerspricht dieser Aussage<br />
● Motivation: viele Probleme mit bisher exponentieller<br />
<strong>Komplexität</strong> liegen in NP<br />
NP-vollständige Klasse<br />
● Die Probleme müssen hierzu in polynomieller Zeit auf<br />
NP reduziert werden (daher auch Klasse der schwersten<br />
Probleme)<br />
25
2.3 NP-Klasse / NP-Vollständigkeit <strong>Berechenbarkeit</strong> <strong>und</strong> <strong>Komplexität</strong> - Christian Slupina<br />
Beispiel eines NP-vollständigen Problems: Das<br />
Rucksack-Problem<br />
Es liegt eine Auswahl an i Gegenständen mit dem<br />
Wert xi <strong>und</strong> der Masse mi vor<br />
Der Inhalt des Rucksacks soll maximalen Wert<br />
besitzen, wobei die Masse beschränkt ist<br />
26
Zusammenfassung:<br />
● Bisher erfolgreiche Simulation von Algorithmen auf<br />
Turingmaschinen<br />
● Modell ist auch auf nichtdeterministische Probleme<br />
anwendbar<br />
● <strong>Komplexität</strong> kann nur abgeschätzt werden<br />
● P-Klasse bildet unsere Vorstellung „lösbarer“ Probleme<br />
● Exponentielle <strong>Komplexität</strong> ist oberste Schranke, auch<br />
bei nichtdeterministischen Problemen<br />
● Konzept der NP-Vollständigkeit, das P-NP-Problem gilt<br />
nach wie vor als unlösbar
Zum Schluss: Langton's Ameise<br />
Bewegung in 2D mit<br />
folgendem Algorithmus:<br />
● Ein weißes Feld wird schwarz gefärbt,<br />
anschließend Bewegung nach rechts<br />
● Ein schwarzes Feld wird weiß gefärbt,<br />
anschließend Bewegung nach links
Nach circa 10000 Schritten:
Vielen Dank <strong>für</strong> ihre Aufmerksamkeit
Literatur:<br />
● Juraj Hromkovič, <strong>Theoretische</strong> Informatik,<br />
4. Auflage<br />
● D.Bruß, Vorlesungsskript zur<br />
Quanteninformationstheorie<br />
● A.M.Turing, On computable numbers, with an<br />
application to the Entscheidungsproblem