slides1 - KU Leuven

advertisement
Automaten en Berekenbaarheid
Bart Demoen
KU Leuven
2016-2017
Les 1: 1-19
beslissingsproblemen, talen, reguliere expressies, reguliere talen,
eindige toestandsautomaten
AB’16
Caveat
I
I
I
I
I
2/15
deze reeks slides/filmpjes is geen substituut voor
de cursustekst
niet alles wordt hier behandeld
bijna niks wordt behandeld tot het niveau dat je
moet kennen of kunnen
het detail in de cursus (tekst en les) is de
maatstaf
op het einde staat telkens één slide met wat je
zeker moet kennen/kunnen: niet exhaustief !
VOORBEREID naar LES en OEFENINGEN
AB’16
Beslissingsproblemen
I
I
I
I
I
3/15
elk programma heeft input en output
om een output te berekenen moet je elke bit ervan
berekenen
één bit is als een accept/reject of ja/nee
daarom: bestudeer beslissingsproblemen
met een aftelbaar oneindig domein Dom
een beslissingsprobleem ⇔ een deel L van Dom
en generische vraag: voor gegeven s ∈ Dom, is s ∈ L ?
AB’16
Nog eens over het beslissingsprobleem
I
I
I
I
I
input voor een programma bestaat uit een eindige
opeenvolging van tekens
die tekens komen uit een eindige verzameling Σ
het domein is de verzameling van alle mogelijke eindige
strings met tekens van Σ
dat domein duiden we aan met Σ∗
als L ⊆ Σ∗ , dan noemen we L een taal (over Σ)
AB’16
4/15
Hoe een taal beschrijven ?
I
I
I
I
5/15
wiskundig: L = {i|i ∈ N, i mod 2 = 1}
in woorden: de oneven getallen
de vorm: L = {a1 a2 ...an |ai ∈ {0, 1}, n ∈ N, an = 1}
een programma:
oneven(i):
if (i mod 2 == 1) return(TRUE);
return(FALSE);
welke beschrijvingen zijn handig om
I te testen of een gegeven getal oneven is ?
I oneven getallen te genereren ?
I om een tester te genereren ?
I om een generator te genereren ?
I te bepalen of twee beschrijvingen dezelfde taal bepalen ?
AB’16
De verzameling van talen als een algebra
de verzameling van alle talen is P(Σ∗ )
I
I
I
I
I
I
unie van twee talen is een taal: L1 ∪ L2
doorsnede van twee talen is een taal: L1 ∩ L2
concatenatie van twee talen is een taal: L1 L2
complement van een taal (t.o.v. Σ∗ ) is een taal: L
de omgekeerde strings ...
...
een speciale: de Kleene ster van een taal
L∗ = ∪n≥0 Ln
met Ln = LLn−1 , n > 1 en L0 = {}
AB’16
6/15
Reguliere expressies en reguliere talen in één klap
Σ ligt vast
E reguliere expressie ∈ RegExp
bepaalt taal LE
{}
∅
φ
a met a ∈ Σ
{a}
E1 E2 met E1 , E2 ∈ RegExp
LE1 LE2
E ∗ met E ∈ RegExp
L∗E
E1 |E2 met E1 , E2 ∈ RegExp
LE1 ∪ LE2
Definitie: L is een reguliere taal of L ∈ RegLan als
∃E ∈ RegExp en L = LE
AB’16
7/15
Een definitie roept vragen op ...
I
I
I
I
I
I
I
I
8/15
is elke taal regulier ?
hoeveel reguliere talen zijn er ?
kan je m.b.v. een reguliere expressie E gemakkelijk
nagaan of s ∈ LE ?
kan je m.b.v. een reguliere expressie E gemakkelijk (alle)
s ∈ LE genereren ?
is RegLan een subalgebra van Σ∗ - voor welke algebraische
bewerkingen ?
kan je een E ∈ RegExp transformeren naar een algoritme
dat TRUE geeft voor elke s ∈ LE en FALSE voor elke
s∈
/ LE ?
programmeertalen die reguliere expressies ondersteunen ?
...
AB’16
een lege slide ...
9/15
AB’16
Een eindige toestandsautomaat NFA
10/15
a
a
ε
2
b
4
b
1
a,b
b
I
I
I
3
een gerichte graaf; de knopen heten toestanden; de bogen
dragen als label(s) elementen van Σ en/of sommige knopen zijn (accepterende) eindtoestanden (3)
en (4)
één knoop is de starttoestand (1)
AB’16
Een eindige toestandsautomaat bepaalt een taal
11/15
a
a
ε
2
b
4
b
1
a,b
b
I
I
I
3
maak een pad van de begintoestand naar een eindtoestand
bij elke overgang: schrijf een teken neer dat in het label
voorkomt
op het einde heb je een string uit de taal
AB’16
Zit een gegeven string in de taal van de NFA ?
12/15
a
a
ε
2
b
4
b
1
a,b
b
I
I
I
3
schrijf je string s op
neem nu enkel overgangen waarbij in het label een teken
vooraan in je string staat, of : veeg het teken vooraan in
je string uit
indien je in een eindtoestand bent en je string is helemaal
uitgeveegd, dan behoort s tot de taal van de automaat
AB’16
De niet-deterministische eindige toestandsautomaat 13/15
I
I
I
I
I
NFA: non-deterministic finite state automaton
als je keuze hebt: alles proberen (breedte-eerst of door
backtracking)
exacte definities zijn zeer belangrijk !
als M een NFA is, dan is LM de taal door M bepaald of
geaccepteerd
de NFA’s vormen ook een algebra voor de operaties
concatenatie, unie, de Kleene ∗
AB’16
Vragen i.v.m. de NFA
I
I
I
I
I
I
I
I
14/15
kan je nagaan of een gegeven taal een LM is voor een
NFA M ?
bestaan een deterministische versie van elke NFA ?
kan je (algoritmisch) nagaan of twee gegeven NFA’s M1
en M2 equivalent zijn, t.t.z. LM1 = LM2 ?
vind je bovenstaande vraag belangrijk ?
bestaat een kleinste NFA voor een taal LM ?
welke talen L hebben een NFA M zodat L = LM ?
wat gebeurt met de taal als je in een NFA de
eindtoestanden en de andere verwisselt ?
...
AB’16
Belangrijk: kennen en kunnen.
15/15
I De argumentatie van het voorwoord kennen en kritisch kunnen bespreken,
vooral nadat je het hoofdstuk over berekenbaarheid gezien hebt.
I De definitie van string, taal kennen en geen fouten maken met uitspraken die die
twee begrippen gebruiken.
I Het verschil tussen (de moeilijkheid van) beschrijven, testen en genereren
kunnen uitleggen - een rode draad doorheen de cursus.
I Algebraische bewerkingen op de verzameling talen kennen, en hun
eigenschappen.
I Definitie 2.4.1 van RE kennen, kunnen reproduceren. Definitie 2.4.3 van taal
bepaald door een RE kunnen reproduceren en uitleggen wat het verschil is
tussen een RE en de taal erdoor bepaald. Definitie 2.4.4 kennen, in je slaap.
I Van elk van de uitspraken op pagina 10 argumenteren waarom die (on)juist zijn.
I RegLan als subalgebra voor een aantal bewerkingen: kennen, kunnen uitleggen,
aantonen.
I De werking van een NFA kunnen uitleggen, zowel de intuitie als de exacte
definitie 6.4 van wanneer een string geaccepteerd wordt door een NFA. Daarvoor
moet je natuurlijk de definitie van NFA kennen 6.3.
I De definitie van Equivalentie van NFA (DFA, later PDA, TM) kennen en nooit
verwarren met isomorfisme van zulke machientjes.
I Het begrip transitietabel - we gebruiken het later in voorbeelden.
I De algebra van NFA’s begrijpen en kunnen uitleggen (voor de operaties unie,
concatenatie, Kleene ster) aan de hand van samenstelling van NFA’s.
AB’16
Download