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

Slides:



Advertisements
Verwante presentaties
H3 Tweedegraads Verbanden
Advertisements

VAKWERKEN Hfst 9 Hans Welleman Vakwerken september 2004
Les 2 : MODULE 1 STARRE LICHAMEN
Stelling van Pythagoras
Differentie vergelijkingen differentie vergelijkingen
Programmeren met Alice
dia's bij lessenserie Pythagoras ± v Chr.
Ronde (Sport & Spel) Quiz Night !
Taaltheorie en Taalverwerking Bachelor Kunstmatige Intelligentie.
MERKWAARDIGE PRODUCTEN
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
Hogere-ordefuncties nEen lijst langs lopen en met elk element iets doen nEen lijst langs lopen en sommige elementen selecteren map filter.
Hogere Wiskunde Complexe getallen college week 6
Datastructuren Analyse van Algoritmen en O
“Ik kan dit niet oplossen...” “Ik zal de weg voor jou banen”
Herleiden (= Haakjes uitwerken)
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Grammatica’s en Ontleden
Grammaticale modellen
vwo B Samenvatting Hoofdstuk 1
1 het type x² = getal 2 ontbinden in factoren 3 de abc-formule
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
1 Prof. Dr. Martine De Cock academiejaar Toepassingsgerichte Formele Logica 1.
1 Prof. Dr. Martine De Cock academiejaar Lambdarekenen.
Natuurlijke Taalverwerking 3e trimester 98/99 docent: Gosse Bouma.
Korstste pad van A (in phase 1) naar B (in phase N+1=5) Welke pijlenreeks x i (i=1,2,..4) ? A B aantal mogelijke paden >2 N-1 bv: x 1 =(pijl naar) 2, x.
Les 12b : MODULE 1 Snedekrachten (4)
1 Uit ons domein: Verzameling programmatuur voor het toewijzen van afstudeerders aan examinatoren. Invoer van voorkeuren Toewijzen Overzichten Practicum.
Inleidend probleem Data structuur (hiërarchie van classes)
De bedradingslijst.
Hoofdstuk 17 De organisatiecultuur bepalen en veranderen
Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere.
Imperatief programmeren nProgramma bestaat uit nRunnen is opdrachten gegroepeerd in methoden één voor één uitvoeren te beginnen met main.
Ontleden nNon-deterministisch m.b.v. Parser-combinators nDeterministisch m.b.v. Stack-machine type Parser a b = [a]  [ (b, [a]) ] type Parser a b = [a]
Projectie en stelling van thales
Werken aan Intergenerationele Samenwerking en Expertise.
Breuken-Vereenvoudigen
WIS21.
ribwis1 Toegepaste wiskunde, ribPWI Lesweek 01
Tweedegraadsfuncties
havo B 5.1 Stelsels vergelijkingen
Opstellen reactievergelijkingen
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen van.
A H M F K EB C x 85 Korte zijde bij C 2 e secties volte 14 m en op afstand komen ( 0,5 rijbaan)
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Hoofdstuk 9 havo KWADRATEN EN LETTERS
De financiële functie: Integrale bedrijfsanalyse©
Taal nEen Alfabet is… een eindige verzameling symbolen nEen Taal is… een deelverzameling van T* bij een bepaald alfabet T nEen Zin is… een element van.
Modelleren van XML element content of Hoe doe je dat? Harrie Passier & Bastiaan Heeren TouW-dag 13 november 2010.
Tellen van Stemmen … FEB, Studiedag Leraren Wiskunde, 6 mei 2010 Luc Lauwers.
Samenvatting hst. 3 sec. 1-3 ( ) :: Parser a b  Parser a b  Parser a b ( ) :: Parser a (b  c)  Parser a b  Parser a c ( ) :: (b  c)  Parser a b.
Werkstukken en rapporten
Tentamen vraag 1 Als L en M talen zijn, dan nL  M is gelijk aan { s  t | s  L, t  M } nL M is gelijk aan { s t | s  L, t  M } nL n is gelijk aan.
Functioneel programmeren Een snelle herhaling…. Functie-definitie static int kwad (int x) { return x*x ; } kwad x = x * x Haskell kwad :: Int  Int.
Donderdag 2 april 2015 Roosterwijzigingen Corvee rooster week 44 (1 nov. t/m nov.): Grote Beer en Melkweg 10.30, en uur: 3AA Melkweg en Grote.
Definitie LL(1) Een grammatica is LL(1) nAls je op grond van het eerstvolgende input-symbool kunt kiezen uit alternatieven Formeel: nAls de lookahead-sets.
In een reguliere taal… zin yxz S E A B vuwuwxzvuwxzvvuwxzvvvuwxzvvv lengte  n.
Definitie Taal van een grammatica nZij grammatica G = ( T, N, R, S ) nde taal van G is { z  T* | S  * z } L(G)
Tentamen vraag 1 nElke reguliere zin is ook contextvrij nElke reguliere taal is ook contextvrij nElke contextvrije grammatica is ook regulier nonsens “regulier”
En rekenen met variabelen Bijzondere producten. Variabele: rekenen met variabelen een variabele is een letter die een getal voorstelt. de letters a, b,
Rekenen met variabelen. Variabele: rekenen met variabelen een variabele is een letter die een getal voorstelt. de letters a, b, c, n, p, q, x, y en z.
M A R T X I W K U N E D S 2 M31 Bewijs: de eigenschap van de basis- hoeken in een gelijkbenige driehoek © André Snijers.
Bewijs: de eigenschap van de middelloodlijn van een lijnstuk
Eigenschap en constructie van de middelloodlijn van een lijnstuk
M7 2 Verschuivingen herkennen en tekenen M A R T X I © André Snijers W
Rekenen met letters Rekenen met letters Rekenen met letters
Rekenen Mevr. Koçak 27 november 2018.
Vergelijkingen van de vorm ax = b oplossen
Transcript van de presentatie:

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

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

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

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

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

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)

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:

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

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

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 }

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)

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

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

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

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

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

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

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  

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  

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

{ 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)

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!

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…

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!

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

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

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