De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere.

Verwante presentaties


Presentatie over: "Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere."— Transcript van de presentatie:

1 Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere Expressie nog een andere manier Alle drie kunnen ze dezelfde talen beschrijven

2 Reguliere talen: overzicht RG Definitie 8 +9 DFA Definitie 1 +3 NFA Definitie 4 +6 RE Definitie Stelling 13 Stelling 12 Stelling 7 triviaal ZRG Definitie (11) Stelling 11 triviaal CFG Definitie triviaal onmogelijk Stelling 16 Stelling 17

3 DFA: Deterministische Finite-state Automaton …bestaat uit 5 onderdelen: nAlfabet:X eindige verzameling nToestanden:Q eindige verzameling nTransitiefunctie:d :: Q  X  Q nStart-toestand:S  Q nEind-toestanden: F  Q

4 Voorbeeld DFA nAlfabet {a, b, c} nToestanden {S,X,Y,Z} nTransitiefunctie d S a = Z d S b = X d S c = S d X a = Y d Y c = Z nStart S nEind {Z} S Z XY a b a c c

5 Runnen van een DFA nWaar kom je uit beginnend in S als je de letters van een string accepteert? S Z XY a b a c c run :: (Q  X  Q)  Q  [X]  Q run d q [ ]= run d q (x:xs)= q run d (d q x) xs run = foldl

6 Definitie 3 Taal van een DFA nZij DFA = ( X, Q, d, S, F) nde taal van DFA is { z  X* | run d S z  F } L(DFA)

7 NFA: Non-deterministische Finite-state Automaton …bestaat uit 5 onderdelen: nAlfabet:X eindige verzameling nToestanden:Q eindige verzameling nTransitiefunctie:d :: Q  X  Q nStart-toestand:S  Q nEind-toestanden: F  Q {Q}{Q}  en:

8 Voorbeeld DFA nAlfabet {a, b, c} nToestanden {S,X,Y,Z} nTransitiefunctie d S a = Z d S b = X d S c = S d X a = Y d Y c = Z nStart S nEind {Z} S Z XY a b a c c

9 Voorbeeld NFA nAlfabet {a, b, c} nToestanden {S,X,Y,Z} nTransitiefunctie d S a = {Z} d S b = {X} d S c = {S} d X a = {Y, S} d Y c = {Z} nStart {S} nEind {Z} S Z XY a b a c c a

10 Runnen van een NFA nWaar kan je uitkomen beginnend in één van de S als je de letters van een string accepteert? run :: (Q  X  {Q})  {Q}  [X]  {Q} run d qs [ ]= run d qs (x:xs)= qs run d (stap d qs x) xs run d qs = foldl (stap d) qs stap d qs a = { r | q  qs, r  d q a }

11 Definitie 6 Taal van een NFA nZij NFA = ( X, Q, d, S, F) nde taal van NFA is nDus: Je kunt uitkomen in een eindtoestand { z  X* | q  S, run d q z  F   } L(NFA)

12 Stelling DFA en NFA even krachtig Bewijs: nGeef me een DFA dan construeer ik een NFA met dezelfde taal nGeef me een NFA dan construeer ik een DFA met dezelfde taal Triviaal (gebruik overal singleton-verzamelingen) Stelling 7

13 S Z SX SY X SXY XY Y XZ SZ SXZ ZY XYZ SYZ SX YZ Bewijs stelling 7 Constructie NFA  DFA S Z XY a b a c c a aba c enzovoort … a b c a b c

14 S Z SY X SZ Bewijs stelling 7 Constructie NFA  DFA S Z XY a b a c c a aba c a b c a b c

15 S Z SY X SZ Bewijs stelling 7 Constructie NFA  DFA S Z XY a b a c c a c a b c a a a b b c

16 Met als elementen: A  w waarbij A  N w  (N  T)* Definitie Grammatica Een grammatica bestaat uit (T, N, R, S) nHet alfabet T eindig nHulpsymbolen N eindig T  N=Ø nProductieregels R eindig nEen startsymbool S één S  N

17 Definitie 8 CFG/RG/ZRG Grammatica Regels van de vorm A  w met A  N en nContextvrije grammatica (CFG) nReguliere grammatica (RG) nZeer reguliere grammatica (ZRG) w  (N  T)* w  T* N ? A  NA  w w  T + N ? w =  en A=S

18 Stelling 12 L(NFA)  L(RG) nGeef me een NFA dan construeer ik een RG met dezelfde taal uAlfabet  Terminal symbolen uToestanden  Nonterminal symbolen uStart-toestand  Start-symbool uTransitiefunctie  Regels Z XY a X  a Y Z  

19 Stelling 11 L(RG)  L(ZRG) Geef me een RG, en ik hervorm z’n regels nVoor elke voeg toe Y  * Z Z  wY  w nVerwijder alle U  V Z  wY nVoor elke voeg toe Z  w Y   nVerwijder allevoor U  S U  

20 T S   Stelling 13 L(ZRG)  L(NFA) Geef me een ZRG, en ik construeer een NFA nTnNnRnSnTnNnRnS nXnQndnSnFnXnQndnSnF A  w B C  w { w  T* | w deel van R} N  {  } AB w C  w {S}{S}  S

21 { w  T* | w deel van R} T Stelling 13a L(ZRG)  L(NFA) Geef me een ZRG, en ik construeer een NFA nTnTnXnX … met hetzelfde alfabet: nvervang ndoor XY a b c X a X’ b X” c Y (en een paar extra toestanden)

22 Reguliere Expressie nMakkelijke manier om snel even een reguliere taal te definiëren uzonder toestanden en transitiefuncties… uzonder nonterminals en herschrijfregels… u…maar met een éénregelige formule!

23 Definitie 14 Reguliere Expressie Reguliere expressie RE T over alfabet T is: n als a  T a n als R,S  RE T R+SR+S R SR S n als R  RE T R*R* (R)(R) n Ø {}{} {a}{a} L(R)  L(S) L(R) L(S) L(R) * L(R) … en beschrijft een taal: en 15 worden in de praktijk niet gebruikt… …want wie wil dit nou…

24 Stelling RE en RG even krachtig Bewijs: nGeef me een RE dan construeer ik een RG met dezelfde taal nGeef me een RG dan schrijf ik een RE met dezelfde taal Stelling 16 Stelling 17 (via 11, 13, 7) …maar anders lukt dit niet!

25 S  S 1 S   S  S 1 S  S 2 S   Stelling 16 L(RE)  L(RG) Geef me een RE, en ik construeer met inductie een RG n% na nu+v nu v nu* S  a S 1  … X  bY Y  ac Z   S2  …S2  … S2  …S2  …S1  …S1  … S2S2S2S2 S 1  … X  bY Y  ac Z   S

26 Stelling 17 L(DFA)  L(RE) Geef me een DFA, en ik schrijf een RE S C A B a b c S = aA + bB + cC A = … B = … C = … Stelsel recursieve vergelijkingen A=z(x+y)  A=zx+zy A=xA+z  A=x* z Oplossen met behulp van

27 Reguliere talen: overzicht RG Definitie 8 +9 DFA Definitie 1 +3 NFA Definitie 4 +6 RE Definitie Stelling 13 Stelling 12 Stelling 7 triviaal ZRG Definitie (11) Stelling 11 triviaal CFG Definitie triviaal onmogelijk Stelling 16 Stelling 17


Download ppt "Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere."

Verwante presentaties


Ads door Google