1 / 27

Reguliere talen

Reguliere talen. Reguliere grammatica: versimpelde Contextvrije grammatica Finite-state Automaton: andere manier om een taal te beschrijven Reguliere Expressie nog een andere manier. Alle drie kunnen ze dezelfde talen beschrijven. triviaal. Stelling 12. onmogelijk. triviaal. Stelling 13.

riley-bruce
Download Presentation

Reguliere talen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reguliere talen • Reguliere grammatica:versimpelde Contextvrije grammatica • Finite-state Automaton:andere manier om een taal te beschrijven • Reguliere Expressienog een andere manier Alle drie kunnen zedezelfde talen beschrijven

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

  3. DFA: DeterministischeFinite-state Automaton …bestaat uit 5 onderdelen: • Alfabet: Xeindige verzameling • Toestanden: Qeindige verzameling • Transitiefunctie: d :: QXQ • Start-toestand: S  Q • Eind-toestanden: F Q

  4. c a S Z b c X Y a Voorbeeld DFA • Alfabet {a, b, c} • Toestanden {S,X,Y,Z} • Transitiefunctie d Sa = Z d Sb = X d Sc = S d Xa = Y d Yc = Z • Start S • Eind {Z}

  5. c a S Z b c X Y a Runnen van een DFA • Waar kom je uitbeginnend in Sals je de lettersvan een string accepteert? run :: (QXQ) Q [X] Q run d q [ ] = run d q (x:xs) = q run d (d qx) xs run = foldl

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

  7. en: NFA: Non-deterministischeFinite-state Automaton …bestaat uit 5 onderdelen: • Alfabet: Xeindige verzameling • Toestanden: Qeindige verzameling • Transitiefunctie: d :: QXQ • Start-toestand: S  Q • Eind-toestanden: F Q {Q}

  8. c a S Z b c X Y a Voorbeeld DFA • Alfabet {a, b, c} • Toestanden {S,X,Y,Z} • Transitiefunctie d Sa = Z d Sb = X d Sc = S d Xa = Y d Yc = Z • Start S • Eind {Z}

  9. c a S Z b a c X Y a Voorbeeld NFA • Alfabet {a, b, c} • Toestanden {S,X,Y,Z} • Transitiefunctie d Sa = {Z} d Sb = {X} d Sc = {S} d Xa = {Y, S} d Yc = {Z} • Start{S} • Eind {Z}

  10. Runnen van een NFA • Waar kan je uitkomenbeginnend in één van deSals je de letters van een string accepteert? stap d qs a = { r | q  qs, r  d q a } run :: (QX{Q}) {Q}  [X] {Q} run d qs [ ] = run d qs (x:xs) = qs run d (stap d qsx) xs run d qs = foldl (stap d) qs

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

  12. StellingDFA en NFA even krachtig Bewijs: • Geef me een DFAdan construeer ik een NFA met dezelfde taal • Geef me een NFAdan construeer ik een DFA met dezelfde taal Triviaal (gebruik overal singleton-verzamelingen) Stelling 7

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

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

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

  16. Met als elementen: A  w waarbij A  N w  (NT)* DefinitieGrammatica Een grammatica bestaat uit (T, N, R, S) • Het alfabet T eindig • Hulpsymbolen N eindigTN=Ø • Productieregels R eindig • Een startsymbool S één S  N

  17. Definitie 8CFG/RG/ZRG Grammatica A  w A  N Regels van de vorm Aw met A  N en • Contextvrije grammatica (CFG) • Reguliere grammatica (RG) • Zeer reguliere grammatica (ZRG) w  (NT)* w  T* N? w  T+N? w = en A=S

  18. X Y a Stelling 12L(NFA)  L(RG) • Geef me een NFAdan construeer ik een RG met dezelfde taal • Alfabet  Terminal symbolen • Toestanden  Nonterminal symbolen • Start-toestand  Start-symbool • Transitiefunctie  Regels X  aY Z   Z

  19. Voor elke voeg toe Y * Z Z  w Y  w • Verwijderalle U  V • Voor elke voeg toe Y   Z  wY Z  w • Verwijderalle voor U S U   Stelling 11L(RG)  L(ZRG) Geef me een RG, en ik hervorm z’n regels

  20. T • N • R • S • X • Q • d • S • F C A  B w w S Stelling 13L(ZRG)  L(NFA) Geef me een ZRG, en ik construeer een NFA T { wT* | w deel van R} N {} A  w BC  w S   {S} 

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

  22. Reguliere Expressie • Makkelijke manier om snel eveneen reguliere taal te definiëren • zonder toestanden en transitiefuncties… • zonder nonterminals en herschrijfregels… • …maar met een éénregelige formule!

  23. en 15 … en beschrijfteen taal: % @ Ø {} • als aT a {a} • als R,SRET L(R)  L(S) R+S • als R,SRET L(R) L(S) RS • als RRET L(R) * R* • als RRET L(R) (R) Definitie 14Reguliere Expressie Reguliere expressie RET over alfabet T is: worden inde praktijkniet gebruikt… …want wiewil dit nou…

  24. StellingRE en RG even krachtig …maar anderslukt dit niet! Bewijs: • Geef me een REdan construeer ik een RG met dezelfde taal • Geef me een RGdan schrijf ik een RE met dezelfde taal Stelling 16 Stelling 17 (via 11, 13, 7)

  25. Stelling 16L(RE)  L(RG) Geef me een RE, en ik construeer met inductie een RG S  S1 S  S2 S1 … S2 … • % • @ • a • u+v • u v • u* S   S  a S  S1 S1 … X  bY Y  ac Z   S2 … S  S1 S   S1 …X  bY Y  ac Z   S2S2 SS

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

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

More Related