Noter til DM517 Beregnelighed Jonas Nyrup 23. oktober 2011 Indhold 1 Et par noter 2 2 Regulære sprog 2 2.1 DFA................................. 2 2.1.1 Eksempler.......................... 3 2.2 NFA................................. 3 2.2.1 Eksempler.......................... 3 2.3 Regulære udtryk.......................... 3 2.3.1 Eksempler: Side 65, 96................... 4 2.4 GNFA (generalized NFA)..................... 4 2.5 Ikke-regulære sprog......................... 4 3 Kontekstfrie sprog 4 3.1 Kontekstfrie grammatikker.................... 4 3.1.1 Chomsky Normal Form.................. 5 3.2 Pushdown Automaton (PDA)................... 5 3.2.1 Eksempler på problemer der genkendes......... 5 3.3 Ikke-kontekstfrie sprog....................... 5 3.3.1 Eksempler Side 126 127.................. 5 4 Turing Maskine 5 4.1 Eksempler på TM er der afgør................... 6 5 Afgørlighed 6 6 Reducerbarhed 7 1
1 Et par noter ε er den tomme streng, strengen med længde 0, tænk på. er sproget uden nogen strenge i, tænk på {}. w R er strengen w i baglæns rækkefølge. Lukning: Forening: A B = {x x A eller x B}. Concatenation: A B = {xy x A og y B}. Kleene star: A = {x 1 x 2... x k k 0 og hvert x i A}. ε A uafhængigt af hvad A er. En mængde af objekter er lukket under en operation, hvis udførsel af operationen på et medlem returnerer et objekt der stadig er i samme mængde. 2 Regulære sprog Pilene mellem tilstande hedder overgange. Når en streng sendes gennem en automaton er resultatet enten accept eller reject. En automaton accepterer en streng, hvis man efter at have fulgt overgange for hvert tegn i strengen befinder sig i en accepttilstand. Et sprog er regulært, hvis en der findes en DFA, der accepterer det. Regulære sprog er lukkede under: 2.1 DFA forening/union Teorem 1.25 og 1.46 concatenation Teorem 1.26 og 1.47 Snit/intersection fodnote 3 Side 46 Komplement Ugeseddel 3 Differens Ugeseddel 3 Reverse Kleene star Teorem 1.49 Har en starttilstand. Har præcis en overgang pr. tegn i alfabetet gående ud fra hver tilstand. Har et endeligt antal tilstande. Har en mængde af accepttilstande, som godt må være tom. Hvis A er mængden af de strenge som automaton M accepter, siger vi at L(M) = A, eller at M genkender A. 2
2.1.1 Eksempler Starter og stopper på samme tegn. Side 38. x mod 3 = 0 Side 39. Indeholder delstrengen 001 Side 44. Har præcis to a er Side 93. Har mindst to b er Side 93. Har et lige antal a er Side 94. Indeholder ab Side 95. Indeholder ikke ab Side 95. Indeholder baba Side 95. 2.2 NFA DFA er en delmængde af NFA er. Enhver DFA kan konverteres til en DFA. Må have 0,1 eller flere udgående pile for hvert tegn i alfabetet. Epsilon-overgange. Der gås til en ny tilstand ved at læse ε, dvs. ingenting. Selvom flere stier umiddelbart matcher inputstrengen, er der kun nødvendigt at én af accepttilstandene nås, for at acceptere strengen. 2.2.1 Eksempler Indeholder et 1-tal på tredje sidste plads Side 51. Er 0 mod 2 eller 0 mod 3 Side 52. 2.3 Regulære udtryk Enhvert regulært udtryk kan konverteres til en NFA og omvendt. Et sprog er regulært hvis og kun hvis der findes et regulært udtryk, der beskriver det. R = R. R ε = R. R ε er måske ikke R (hvis ε / R). R er måske ikke R (hvis Σ 0). 3
2.3.1 Eksempler: Side 65, 96 2.4 GNFA (generalized NFA) Læser blokke af tegn fra strengen. Må indeholder regulære udtryk på sine overgange. Der er kun en starttilstand og den har udgående pile til alle andre tilstande, men ingen indgående pile. Accepttilstanden har indgående pile fra alle andre tilstande, men ingen udgående pile. Alle andre tilstande har pile til/fra alle overgange inkl. dem selv. Algoritme til at konvertere GNFA til regulært udtryk Side 73. 2.5 Ikke-regulære sprog Pumpelemma: Teorem 1.70 Side 78. Godt eksempel på Side 80. 3 Kontekstfrie sprog 3.1 Kontekstfrie grammatikker Er en 4-tupel (V, Σ, R, S) hvor 1. V er en endelig mængde kaldet variablerne, 2. Σ er en endelig mængde diskunkt fra V kaldet terminalerne, 3. R er en endelig mængde af regler, hvor hver regel er en variabel og en streng af variabler og terminaler 4. S V er startvariablen. Resultatet er en derivation string eller et parse tree. Alle sprog der kan genereres af en kontekstfri grammatik kaldes kontekstfrie sprog. Konverter DFS til CFG Side 105. Kontekstfrie sprog er lukkede under Forening/union Ugeseddel 4 Concatenation Ugeseddel 4 Kleene star Ugeseddel 4 4
Kontekstfrie sprog er ikke lukkede under Snit/intersection Ugeseddel 4 Komplement Ugeseddel 4 Siden regulære sprog er en delmængde af kontekstfrie sprog, er alle regulære sprog også kontekstfrie. Snittet mellem et kontekstfrit sprog og et regulært sprog er et kontekstfrit sprog. Alle kontekstfrie sprog over et alfabetet med et symbol er regulære. 3.1.1 Chomsky Normal Form Alle regler er på formen A BC, hvor B og C ikke er startvariablen. A a. s ε, hvor S er startvariablen. Eksempel på Side 107-108. 3.2 Pushdown Automaton (PDA) Er en NFA med en stak. Har samme kraft som en CFG. Der findes også deterministiske PDA er, de har ikke samme kraft som ikke-deterministiske PDA er. Overgangene er på formen a, b c, der læses som læs a, erstat b på stakken med c. Både a, b og c må være ε. $ pushes og poppes fra stakken for at vise at man starter med en tom stak og slutter med en tom stak. 3.2.1 Eksempler på problemer der genkendes {a i b j c k i, j, k 0 and i = j or i = k} Side 114. {ww R w {0, 1} } Side 114. 3.3 Ikke-kontekstfrie sprog Udvidede pumpelemma Side 123-124. 5
3.3.1 Eksempler Side 126 127 {a n b n c n n 0}. {a i b j c k 0 i j k}. {ww w {0, 1} }. {0 n #0 2n 0 3n n 0} Side 133. {w#t w er en delstreng af t, hvor q, t {0, 1} } Side 134. 4 Turing Maskine Enhver TM genkender præcist et sprog, nemlig den mængde af strenge som stopper i TM ens accepttilstand. Et sprog er (Turing-)genkendeligt, hvis der findes en TM, der genkender det dvs. strenge i sproget leder til en accept. Et sprog er (Turing-)afgørligt, hvis der findes en TM, der afgør det dvs. strenge i sproget leder til accept, resten leder til forkast. Alle afgørlige sprog er genkendelige. En TM har flg. egenskaber Den kan både læse og skrive til båndet. Læse-/skrivehovedet kan flytte sig både til venstre og højre. Båndet er uendeligt. Specialtilstandene for accept og forkast tager effekt med det samme de nås. Kan have flere bånd med hver sit læse-/skrivehoved, dette ændrer ikke kraften. Ved flerbåndstm er input på bånd 1 og resten er tomme. Kan være ikke-deterministisk, dette ændrer ikke kraften. En konfiguration af en TM har formen uqv, hvor uv er strengen på båndet og q er den nuværende tilstand, og den er i gang med at læse første symbol i v. Konfiguration C 1 giver (yields) C 2, hvis hvis den pågældende TM lovligt kan gå fra C 1 til C 2 i et enkelt skridt. Startkonfigurationen er q 0 w, acceptkonfigurationen indeholder q accept og forkastkonfigurationen indeholder q forkast. Accept- og forkasttilstandene kaldes halting-konfigurationer og leder ikke til en næste konfiguration. 6
4.1 Eksempler på TM er der afgør {0 2n n 0} Side 143. {w#w w {0, 1} } Side 145. {a i b j c k i j = k og i, j, k 1} Side 146. {#x 1 #x 2 #... #x n hver x i {0, 1} og x i x j for hver i j}. G er en forbundet undirect graf Side 157 158. 5 Afgørlighed Et sprog er afgørligt, hvis og kun hvis det er genkendeligt og dets komplement er genkendeligt. Eksempler på afgørlige problemer: { B, w B er en DFA der accepterer inputstreng w} Side 166. { B, w B er en NFA der accepterer inputstreng w} Side 167. { R, w R er en regex der accepterer inputstreng w} Side 168. { A A er en DFA og L(A) = } Side 168. { A, B A og B er DFA er og L(A) = L(B)} Side 169. { G, w G er en CFG der genererer streng w} Side 170. { G A er en CFG og L(G) = } Side 171. { G, H A og B er CFG er og L(G) = L(H)} Side 172. Haltingproblemet er uafgørligt og defineret som A T M = { M, w M er en TM og M accepterer w} 6 Reducerbarhed Hvis et problem A kan reduceres til et andet problem B, kan A løses ved at løse B. Hvis A kan redcures til B og B er afgørligt, er A også afgørligt. Hvis A kan redcures til B og B er uafgørligt, er A også uafgørligt. Eksempler på uafgørlige problemer: { M M er en TM og L(M) = } Side 189. { M M er en TM og L(M) er et regulært sprog} Side 191. { M 1, M 2 M 1 og M 2 er TM er og L(M 1 ) = L(M 2 )} Side 192. 7
{ M M er en LBA, hvor L(M) = } Side 195. Eksempler på afgørlige problemer: { M, w M er en LBA der accepterer strengen w} Side 194. { G G er en CFG og L(G) = Σ } Side 197. 8