MA3301 Beregnbarhets- og kompleksitetsteori Høsten 2012 1 Notat 2 Om den kanoniske automaten til et språk og minimalisering. Vi vil si at en automat M = Q, Σ, q 0, A, δ er redusert enhver tilstand q Q er oppnåelig, hvilket betyr at q = δq 0, x) for minst en x Σ. For enhver automat M finnes det en redusert automat M red med samme språk som M. Vi finner M red ved rett og slett og fjerne alle uoppnåelige tilstander og alle piler ut fra disse. Av denne grunn skal vi anta at alle automater som forekommer i dette notatet er reduserte. Vi fikserer også et alfabet Σ. Definisjon 1 Derivasjonen D er funksjonen D : P Σ ) Σ P Σ ) gitt ved at D, x) = x = {y xy } Språket x kalles det deriverte språket til m.h.p. strengen x. Eksempel 1 a Σ = {a, b} og la våre alle strenger som slutter på a. Da er x = for alle strenger x og x = {Λ} dersom x. Definisjon 2 5-tuppelet M) = Q), Σ, q 0 ), A), δ) der Q) = { x x Σ } q 0 ) = A) = { Q) Λ } = { x x } δ x, y) = xy kalles Den kanoniske automaten til språket. Teorem 1 For ethvert språk, dersom M = M) er den kanoniske automaten til språket, så er M) =. At x M) betyr at δ q 0 ), x) A), som igjen betyr at xλ = x. Eksempel 2 b b > a a Her er den kanoniske automaten til språket i eksempel 1. Eksempel 3 > ) Her er den ),) kanoniske automaten til språket som består av alle balanserte parantesuttrykk.
MA3301 Beregnbarhets- og kompleksitetsteori Høsten 2012 2 Definisjon 3 Vi vil si at strengene x og y er skillbare av språket dersom x y, hvilket vil si at det finnes en streng z slik at xz yz. Vi vil si at z er en skillestreng for paret x, y. Dersom strengene x og y ikke er skillbare av språket vil vi si at de er uskillbare og vi skriver x y. Uskillbarhet av er en ekvivalensrelasjon på Σ. Ekvivalensklassen til en streng x skrives [x]. En alternativ definisjon av den kanoniske automaten til et språk er følgende. Definisjon 4 Følgende 5-tuppel definere den kanoniske automaten til på en annen men ekvivalent måte Q) = Σ / kvotientmengden q 0 ) = [Λ] A) = {[x] x } δ [x], y) = [xy] eseren kan overbevise seg selv om at den eneste forskjellen på denne automaten og den i Definisjon 2 er navnene til tilstandene. For å sammenligne automater litt mer generelt har vi begrepet morfisme mellom automater. Definisjon 5 En morfisme f fra en automat M = Q, Σ, q 0, A, δ til en automat M = Q, Σ, q 0, A, δ er en funksjon f : Q Q som tilfredsstiller 1) fq 0 ) = q 0 2) fq) A q A 3) fδq, σ)) = δ fq), σ) for enhver q Q og ethvert symbol σ Σ. Ved strukturell induksjon fålger det at vi har fδ q, x)) = δ fq), x) for enhver tilstand q Q og enhver streng x Σ. En vanlig måte å uttrykke disse relasjonene på er ved å si at diagrammene under kommuterer Q Σ δ Q Q Σ δ Q f 1 Σ Q Σ f δ Q f 1 Σ Q Σ δ Q f Proposisjon 1 Dersom f : M M er en morphisme, så har automatene M og M samme språk. Vi har x M) hvis og bare hvis δ q 0, x) A. Fra 2) gjelder dette hvis og bare hvis fδ q 0, x)) A, som igjen av 3) og 1) og strukturell induksjon viser at dette gjelder hvis og bare hvis δ q 0, x) A, og dette er definisjonen på at x M ).
MA3301 Beregnbarhets- og kompleksitetsteori Høsten 2012 3 Proposisjon 2 Dersom f : M M er en morphisme mellom reduserte) automater, så er funksjonen f : QM) QM ) = Q surjektiv. Enhver q Q er av formen δ q 0, x) = δ fq 0 ), x) = fδ q 0, x)). Vi skal nå se at vi for enhver endelig automat M med språk = M) finnes en kanonisk morphisme M M), der M) er den kanoniske automaten til språket. Vi betrakter en endelig automat M = Q, Σ, q 0, A, δ, med språk = M). Definisjon 6 For en vilkårlig q Q kan vi danne oss automaten M q = Q, Σ, q, A, δ, med språk R q = M q ). Vi sier at tilstander q og q er -ekvivalente og skriver q q, dersom R q = R q. Merk at i boka på side 73 innføres notasjonen q = {x x Σ, δ q 0, x) = q}. eseren bør overbevise seg om at konkatineringen q R q. Proposisjon 3 Dersom x er en streng og δ q 0, x) = q, så er R q = x. Dette beviset overlates til leseren. Korollar 1 Dersom x og y er strenger og δ q 0, x) = δ q 0, y), så er x y. Dersom q q er -ekvivalente, så er δq, σ) δq, σ), for ethvert sym- Proposisjon 4 bol σ Σ. Også dette beviset overlates til leseren. Definisjon 7 Vi definerer M min = Q min, Σ, q 0min, A min, δ min Q min = Q/ q 0min = [q 0 ] A min = {[q] q A} δ min [q], σ) = [δq, σ)] Den er veldefinert i følge Proposisjon 4. Korollar 2 Den kanoniske funksjonen [ ] : Q Q min er en morfisme fra M til M min. Den endelige automaten M min er minimal og isomorf med den kanoniske automaten M). Definisjon 8 Vi definerer funksjonen n : Q Q N som følger { nq, q 0 dersom q ) = q min{ x + 1 δ q, x) A δ q, x) A} dersom q q. Merk at dersom q q, så er mengden {x δ q, x) A δ q, x) A} ikke tom.
MA3301 Beregnbarhets- og kompleksitetsteori Høsten 2012 4 Korollar 3 Funksjonen n har egenskapen nq, q ) = 0 hvis og bare hvis q q. Minimaliseringsalgoritmen denne algoritmen er nok bedre egnet for maskiner enn for mennesker. En enklere algoritme kommer på side 6.) Det er gitt en endelig automat M = Q, Σ, q 0, A, δ, med språk = M). Vi antar at Q = {0, 1, 2,..., N}, Σ = {1, 2,..., M}, A Q og δ : Q Σ Q. Algoritmen beregner en funksjon n : T N, der T = {i, j) i, j Q, i j}. Funksjonen n vil ha egenskapen i j ni, j) = 0 i j) i > j nj, i) = 0 i j) For å få plass til flytdiagrammet var det nødvendig å forkorte innholdet i boksene. Her kommer forklaringen på forkortelsene. Algoritmen er tegnet på neste side. Variablene som inngår er i, j Q, k Σ, n N og c {0, 1}. p er forkortelse for p 1, p 2 ) = i, j). q er forkortelse for q 1, q 2 ) = i, j). F k) er forkortelse for k := 1. F 0 p) er forkortelse for i := 0, j := 0. F 1 p) er forkortelse for i := 0, j := 1. Nk) er forkortelse for k := k + 1. N 0 p) er forkortelse for if i = j, j := j + 1 else i := i + 1. N 1 p) er forkortelse for if i + 1 = j, j := j + 1 else i := i + 1. k) er forkortelse for k = M. 0 p) er forkortelse for i = N, j = N. 1 p) er forkortelse for i = N 1, j = N. N 0 p) er forkortelse for if i = j, j := j + 1 else i := i + 1. p 0 er forkortelse for i A j A. q := pσ er forkortelse for if δp 1, k) δp 2, k) then q := δp 1, k), δp 2, k)) else q := δp 2, k), δp 1, k)). I første del av agoritmen defineres ni, j) som 1 eller 0 ettersom begge tilstandene er i A eller ikke for alle i j. I andre del løper vi inn i en while-løkke, som slutter når ingen nye verdier av n ble registrert. I denne delen ser vi bare på tilstander slik at i < j.
MA3301 Beregnbarhets- og kompleksitetsteori Høsten 2012 5 Start F k), F 0 p), n := 1 np) := 0 p 0 nei np) := 1, c := 1 N 0 p) 0 p) nei c = 0 nei c := 0, F 1 p), n := n + 1 Stopp N 1 p) np) = 0 nei q := pσ nq) = 0 nei np) := n, c := 1 Nk) nei k) nei 1 p) F k)
MA3301 Beregnbarhets- og kompleksitetsteori Høsten 2012 6 Her kommer den mer studentvennlige minimeringsalgoritmen. Den går ut på å finne en sekvens P 0, P 1, P 2,..., P n,... av partisjoner av tilstandsmengden Q. For hver n er P n+1 en forfining av P n. Etter en stund vil vi ha at P n+1 = P n. Da stopper algoritmen og de -ekvivalente tilstandene er nøyaktig de som ligger i samme P n -klasse. Vi tenker oss P n som en surjektiv funksjon P n : Q {A 1, A 2, A 3,..., A k, B 1, B 2, B 3,..., B k }. Den første partisjonen er gitt ved funksjonen P 0 : Q {A, B} gitt ved at P 0 q) = A for alle q A og P 0 q) = B for alle q Q A. Det er mer illustrativt å vise hvordan vi kommer fra P k til P k+1 ved hjelp av et eksempel. Hovedsaken er at dersom q go q er to tilstander med P k q) = P k q ), så er P k+1 q) P k+1 q ) hvis og bare hvis det er minst et symbol σ Σ slik at P k δq, σ) P k δq, σ). Eksempel 4 I dette eksemplet får vi P 2 = P 3. Standardautomaten for det samme språket har 5 tilstander. Tabellen for denne sees helt til høyre. a b P 0 P 1 P 2 P 3 q 0 q 2 q 1 B B B B 1 B 1 B 1 B 1 B 1 B 2 B 1 q 1 q 2 q 1 B B B B 1 B 1 B 1 B 1 B 1 B 2 B 1 q 2 q 3 q 4 B B B B 1 B 2 B 1 B 2 B 3 B 2 B 2 q 3 q 7 q 3 B A B B 2 A 1 B 2 B 3 A 1 B 3 B 3 q 4 q 3 q 8 B B B B 1 B 2 B 1 B 2 B 3 B 2 B 2 q 5 q 6 q 7 A B A A 1 B 1 A 1 A 1 B 4 A 1 A 1 q 6 q 2 q 3 B B B B 1 B 1 B 2 B 4 B 2 B 3 B 4 q 7 q 6 q 5 A B A A 1 B 1 A 1 A 1 B 4 A 1 A 1 q 8 q 3 q 8 B B B B 1 B 2 B 1 B 2 B 3 B 2 B 2 a b q 0 q 1 q 0 q 1 q 2 q 1 q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 1 q 2 Eksempel 5 a b P 0 P 1 P 2 q 0 q 0 q 3 B B B B 3 B 3 B 1 B 1 B 1 B 3 q 1 q 2 q 3 B A B B 1 A 2 B 1 B 2 A 1 B 3 q 2 q 7 q 6 A B B A 2 B 2 B 2 A 1 B 6 B 5 q 3 q 5 q 1 B A B B 1 A 1 B 1 B 3 A 2 B 2 q 4 q 3 q 4 B B B B 3 B 1 B 3 B 4 B 3 B 4 q 5 q 7 q 2 A B A A 1 B 2 A 2 A 2 B 6 A 1 q 6 q 1 q 8 B B A B 2 B 1 A 2 B 5 B 2 A 3 q 7 q 3 q 5 B B A B 2 B 1 A 1 B 6 B 3 A 2 q 8 q 4 q 9 A B B A 2 B 3 B 3 A 3 B 4 B 7 q 9 q 9 q 9 B B B B 3 B 3 B 3 B 7 B 7 B 7 Relasjonen tilhørende partisjonen P 2 er likhetsrelasjonen, så denne automaten er minimal. Merk at det er uvesentlig hva man kaller verdiene til funksjonene P 1, P 2, P 3,...