Die Klasse P Definition 3.4.1 Die Klasse P ist definiert als . kkkk n E M I T D kkkk ∪ ( ) N P ist die Klasse der Sprachen, die durch eine DTM mit polynomieller Laufzeit entschieden werden können. Beispiel {0n1n|n≥1} ∈ P. WS 2011/12 Klasse P 1 Warum P? – 3 Gründe 1. P ist eine mathematisch robuste Klasse. 2. Probleme in P lassen sich in der Praxis gewöhnlich gut lösen, für Problem außerhalb von P trifft dieses häufig nicht zu. 3. P liefert eine interessante Theorie → nächsten Teile der Vorlesung! WS 2011/12 Klasse P 2 Darstellung Zahlen, Graphen, … 1. Repräsentieren Zahlen in der Regel in Binärdarstellung. Aber auch Darstellung bezüglich anderer Basen zulässig. Ausnahme: Basis 1. 2. Repräsentieren Graphen durch Adjazenzmatrizen oder Adjazenzlisten. WS 2011/12 Klasse P 3 Graph mit Adjazenzmatrix Graph 2 1 5 4 3 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 Adjazenzmatrix V = {1,2,3,4,5} Listendarstellung E = {(1,2),(1,3),(3,1),(3,4),(4,2),(5,2)} WS 2011/12 Klasse P 4 Darstellung Zahlen, Graphen, … Nutzen 〈 ⋅ 〉 für „vernünftige Darstellungen“ von Kombinationen von Zahlen, Graphen, usw. WS 2011/12 Klasse P 5 Pfade in Graphen Pfad:={〈G,s,t〉 | G = (V,E) ist gerichteter Graph mit s,t ∈ V und einem gerichteten Pfad von s nach t.} WS 2011/12 Klasse P 6 Pfade in Graphen Graph 2 1 5 4 3 〈G,1,4〉 ∈ Pfad. WS 2011/12 Klasse P 7 Pfade in Graphen Pfad:={〈G,s,t〉 | G = (V,E) ist gerichteter Graph mit s,t ∈ V und einem gerichteten Pfad von s nach t.} Satz 3.4.2 Pfad liegt in P. WS 2011/12 Klasse P 8 Pfade in Graphen M bei Eingabe 〈G,s,t〉: 1. Markiere den Knoten s. 2. Wiederhole den folgenden Schritt bis keine zusätzlichen Knoten markiert werden. 3. Durchlaufe alle Kanten (a,b) von G. Ist a markiert und b nicht markiert, markiere b. 4. Ist t markiert, akzeptiere, sonst lehne ab. WS 2011/12 Klasse P 9 Teilerfremde Zahlen Zwei Zahlen a,b ∈ N heißen teilerfremd oder relativ prim, wenn ihr größter gemeinsamer Teiler (ggT) 1 ist. RelPrim:={〈x,y〉 ∈ N2| x und y sind relativ prim.} Satz 3.4.3 RelPrim liegt in P. WS 2011/12 Klasse P 10 Teilerfremde Zahlen E bei Eingabe 〈x,y〉: 1. Wiederhole die folgenden beiden Schritte bis y = 0. 2. x ← x mod y. 3. Vertausche x und y. 4. Ausgabe x. R bei Eingabe 〈x,y〉: 1. Simuliere E mit Eingabe 〈x,y〉. 2. Ist die Ausgabe von E bei Eingabe 〈x,y〉 1, akzeptiere, sonst lehne ab. WS 2011/12 Klasse P 11