no slide titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig...
TRANSCRIPT
![Page 1: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/1.jpg)
12 Formele talen
uitgebreid 1
![Page 2: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/2.jpg)
verkeerslicht?
신호등을지킵시다 (Automatische) Vertaling van het Koreaans
You should observe the traffic lights
is Koreaans een formele taal? nee natuurlijk niet! alleen, voor iemand die de taal niet kan lezen, doet het ‘formeel’ aan, ik zie vorm, geen betekenis. is een formele taal zonder betekenis? ook al niet! rekenkundige expressies bv hebben een semantiek.
2
![Page 3: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/3.jpg)
taal …
letter = symbool alfabet Σ : eindige (niet-lege) verzameling letters string = woord : (geordend) rijtje letters (uit alfabet) alle strings Σ* lege string λ lengte nul taal : verzameling woorden [ dus deelverzameling Σ* ] alle talen P(Σ*) op verzamelingen kunnen we de bekende boolese operaties toepassen, maar op talen ook concatenatie, macht en ster (dwz achter elkaar zetten +herhaling)
3
![Page 4: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/4.jpg)
strings Een alfabet is een eindige, niet-lege, verzameling letters.
Σ = { a,b,c } B = { 0,1 } C = { а,б,в,г,д,е,ж,з,и,й,к,л, … э,ю,я } P = { if, else, while, do, … } V = { … , appel, koek, ei , … }
4
![Page 5: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/5.jpg)
strings Σ alfabet. Een string/woord (over Σ) is een eindig geordend rijtje letters uit Σ.
ab, abca, abcbabcba 0, 1, 00, 01, 10, 11, 000, 001, …
Приключения, Астерикса
“de appel valt niet ver”
Σ*, lege string λ, lengte |x|
|abcbac| = 6 |λ| = 0 a6b3 = aaaaaabbb
B* = { λ, 0, 1, 00, 01, 10, 11, 100, 101, … }
5
![Page 6: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/6.jpg)
Een taal (over Σ) is een verzameling strings over Σ
Σ* alle strings
PAL = { λ, aa, bb, abba, baab, abaaba, …} BIN = { 0, 1, 10, 11, 100, 101, 110, 111, 1000, … } K = { a, aa, ba, aaa, aba, baa, bba, aaaa, aaba, … } = { x{a,b}* | x eindigt op een a } L = { λ, aa, ab, ba, bb, aaaa, aaab, aaba, aabb, … } = { x{a,b}* | x heeft even lengte }
P(Σ*) talen over Σ
taal
6
![Page 7: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/7.jpg)
Een taal (over Σ) is een verzameling strings over Σ
K = { a, aa, ba, aaa, aba, baa, bba, aaaa, aaba, … } = { x{a,b}* | x eindigt op een a } L = { λ, aa, ab, ba, bb, aaaa, aaab, aaba, aabb, … } = { x{a,b}* | x heeft even lengte }
taal
{a,b}*
K L
λ
a aa
b ab
ba bb
aaa
aab
7
![Page 8: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/8.jpg)
operaties
standaardoperaties op woorden en talen concatenatie = achter elkaar plakken macht = idem, vast aantal herhalingen ster = idem, willekeurig herhaald
8
![Page 9: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/9.jpg)
: Σ*Σ* Σ* a1…am b1…bn = a1…amb1…bn
λ één λx=x=xλ associatief (xy)z = x(yz) niet commutatief beiaard aardbei |xy| = |x|+|y| wordt vaak weggelaten
concatenatie
9
![Page 10: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/10.jpg)
x, y Σ* x is een deelwoord van y als y = uxv voor u, v Σ* … prefix … als y = xv voor v Σ* … suffix … als y = ux voor u Σ*
lekkerkerker deelwoord kerk (twee voorkomens) aarzelaar aar prefix én suffix (als λ)
prefix
óók: subwoord
10
![Page 11: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/11.jpg)
x, y Σ* x is een deelwoord van y als y = uxv voor u, v Σ* prefix … als y = xv voor v Σ* suffix … als y = ux voor u Σ*
reflexief x¹x voor alle x anti-symmetrisch als x¹y en y¹x dan x=y transitief als x¹y en y¹z dan x¹z partiële ordening
eigenschappen van prefix
x
y
z
u
v
11
![Page 12: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/12.jpg)
x, y Σ* x is een deelwoord van y als y = uxv voor u, v Σ* prefix … als y = xv voor v Σ* suffix … als y = ux voor u Σ*
reflexief x¹x voor alle x anti-symmetrisch als x¹y en y¹x dan x=y transitief als x¹y en y¹z dan x¹z partiële ordening
x = xλ prefix y = xu en x = yv dan |x||y| en |y||x| daarom |x|=|y| en dus u=v=λ, x=y y = xu en z = yv dan z = (xu)v = x(uv)
eigenschappen van prefix
x y z
u v
12
![Page 13: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/13.jpg)
xn = x … x (n maal) inductief: x0 = λ xn+1 = xn x
xm+n = xm xn |xn| = n|x|
(ker)5 = kerkerkerkerker
macht
13
![Page 14: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/14.jpg)
inductief: x0 = λ xn+1 = xn x
intuïtie formeel gemaakt
x
x
x
associatief ! en λ is één
x
x
x λ
x λ
x4x3 = x7
((((λx)x)x)x)
(((λx)x)x)
14
?
![Page 15: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/15.jpg)
inductief: mir(λ) = λ
mir(xa) = a mir(x)
ook xR palindroom x = mir(x) snorfrons netebeten mir(mir(x)) = x mir(xy) = mir(y) mir(x)
mir(xn) = mir(x)n
spiegelbeeld
15
![Page 16: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/16.jpg)
Een taal (over Σ) is een verzameling strings over Σ
K = { a, aa, ba, aaa, aba, baa, bba, aaaa, aaba, … } = { x{a,b}* | x eindigt op een a } L = { λ, aa, ab, ba, bb, aaaa, aaab, aaba, aabb, … } = { x{a,b}* | x heeft even lengte }
P(Σ*) talen over Σ vereniging, doorsnede, complement (tov. Σ*)
KL = { aa, ba, aaaa, aaba, abaa, abba, baaa, … } K-L = { a, aaa, aba, baa, bba, aaaaa, aaaba, … } L-K = { λ, ab, bb, aaab, aabb, abab, abbb, baab, … } {a,b}*-(KL) = { b, aab, abb, bab, bbb, aaaab, … }
taal: Boolese operaties
16
![Page 17: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/17.jpg)
commutatief A B = B A A B = B A associatief (AB)C = A(BC) (AB)C = A(BC) distributief A(BC) = (AB)(AC) A(BC) = (AB)(AC) wetten van De Morgan (AB)C = ACBC (AB)c = ACBC absorptie A(AB) = A A(AB) = A idempotentie AA = A AA = A nulelement A = A = A éénelement AU = A AU = U dubbel complement (Ac)c = A complementregels AAc = AAc = U
verzamelingsrekenregels
17
![Page 18: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/18.jpg)
: P(Σ*) P(Σ*) P(Σ*)
K L = { xy | xK en yL }
{ a,ab }{ a,ba } = { aa,aba,aba,abba } = { aa,aba,abba } { λ,a,b,aa,ab,ba,bb,aaa,aab, … }{ a } = { a,aa,ba,aaa,aba,baa,bba,aaaa,aaba, … }
concatenatie
18
![Page 19: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/19.jpg)
: P(Σ*) P(Σ*) P(Σ*)
K L = { xy | xK en yL }
{ a,ab,abb,abbb, … }{ a,ba,aba,baba,ababa, … } = { aa,aba,aaba,abba,ababa,abbba,aababa,abbaba, … }
concatenatie
a, ba, aba, baba, ababa, … a aa, aba, aaba, ababa, aababa, … ab aba, abba, ababa, abbaba, abababa, … abb abba, abbba, abbaba, abbbaba, abbababa, … abbb abbba, abbbba, abbbaba, abbbbaba, … …
19
![Page 20: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/20.jpg)
: P(Σ*) P (Σ*) P (Σ*)
K L = { xy | xK en yL }
{λ} één {λ}L = L{λ} = L nul L = L = associatief (KL)M = K(LM) niet commutatief
concatenatie
20
![Page 21: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/21.jpg)
Kn = K … K (n maal) inductief: K0 = { λ } Kn+1 = Kn K
{λ,a,ab}1 = {λ,a,ab}
{λ,a,ab}2 = {λ,a,aa,ab,aab,aba,abab} {λ,a,ab}3 = {λ,a,aa,ab,aaa,aab,aba,aaab,aaba,abaa, abab,aabab,abaab,ababa,ababab}
macht
21
![Page 22: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/22.jpg)
oefening
L = L2
• voorbeelden • wat weten we van L
22
![Page 23: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/23.jpg)
Kn = K … K (n maal) inductief: K0 = { λ } Kn+1 = Kn K
K* = n0Kn , K+ = n>0K
n
ab* = {a}{b}* = { a,ab,abb,abbb,abbbb … } (ab*)* = { a,ab,abb,abbb,abbbb … }* = = { λ,a,aa,ab,aaa,aab,aba,abb,aaaa,aaab,… } = {λ} {a}{a,b}*
ster & plus
{λ,a,ab}* = {a,ab}* = { x | voor elke b staat een a }
23
![Page 24: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/24.jpg)
Kn = K … K (n maal) inductief: K0 = { λ } Kn+1 = Kn K
K* = n0Kn , K+ = n>0K
n
ster & plus
alternatief:
K* is de kleinste verzameling die λ bevat en gesloten is onder concatenatie met K oftewel (inductief):
• λK* • als xK* en wK dan xwK*
24
![Page 25: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/25.jpg)
reguliere expressies in PERL
$greeting = "World";
print "It matches\n" if "Hello World" =~ /$greeting/;
"cats and dogs" =~ /dog|cat|bird/; # matches "cat"
/item[0-9]/; # matches 'item0' or ... or 'item9’ \d
/(a|b)b/; # matches 'ab' or 'bb'
a* = match 'a' 0 or more times
a? = match 'a' 1 or 0 times
period '.' matches any character but "\n" (eol)
$time =~ /(\d\d):(\d\d):(\d\d)/; # match hh:mm:ss
$hours = $1; $minutes = $2; $seconds = $3;
# match a number, get $1 = whole number, $2 = exponent
/([+-]?\ *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE]([+-]?\d+))?)/; 25
![Page 26: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/26.jpg)
D = { 0,1,2, … , 9 } i. ieder element van D*-{λ} behoort tot R ii. als xR, dan (-x)R als xR en yR, dan (x+y)R, (x-y)R, (xy)R, (x/y)R
alfabet { 0,1,2, … ,9 } { +,-,,/ } { (,) }
geheel ::= tekennatuurlijk | natuurlijk natuurlijk ::= cijfer | cijfernatuurlijk cijfer ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 teken ::= + | -
{ +,- }{ 0,1, … ,9 }+ { 0,1, … ,9 }+ = { +,-,λ }{ 0,1, … ,9 }+
rekenkundige expressies
syntax: geheel getal
26
![Page 27: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/27.jpg)
som
27
alfabet {a,b}* voor en na elke a staat een b ( b + b(ab)* )*
![Page 28: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/28.jpg)
L = L = {λ}L = L{λ} = L (KL)M = K(LM) K(LM) = KL KM (KL)M = KM LM (K*)n = K* voor alle n1 (K*)* = K* (K*L*)* = (KL)* = (K*L*)*
K L dan KM LM KM LM, MK ML Kn Ln voor alle n1 K* L*
rekenregels ‘algebra’
28
![Page 29: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/29.jpg)
)))((( n21n21
n
1i i AAAAAAA
eindig:associatief! oneindige vereniging … ?
n
1i
c
i
cn
1i i AA
1n
1i
ci
c1n
n
1i
ci
c1n
cn
1i i
c
1n
n
1i i
c1n
1i i
AAAAA
AAA
)Ai)(x(|UxA i1i i
oneindig ?
1i
ci
c
1i i AA
ψψ)(
(i)(i) ψi)(i)ψ(
29
![Page 30: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/30.jpg)
oneindig
30
bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee verzamelingen verenigen geldt de regel van de Morgan. Die geldt ook voor meerdere (eindig veel) verzamelingen, dat kunnen we laten zien door de regels herhaald toe te passen (en wat associativiteit). Ook oneindige vereniging kent De Morgan, maar daar moeten we een beetje logica bij gebruiken, met de begrippen ‘er is’ een ‘voor alle’. Bv. een woord x zit in de vereniging van Ai als er een index i is zodat x in Ai.
![Page 31: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/31.jpg)
beschrijven, genereren K: w0, w1, w2, w3, …
- recursieve definitie : - syntax-diagram - grammatica
- operaties * U . - logische formule
herkennen, algoritme w K? ja/nee
- automaat, Turing machine - parser
uitstapje: taal vastleggen
31
![Page 32: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/32.jpg)
• MI L • als xI L dan xIU L als Mx L dan Mxx L als xIIIy L dan xUy L als xUUy L dan xy L • L bevat geen andere elementen
grammatica
axioma MI ‘herschrijf’regels I IU mits uiteinde Mx Mxx mits hele woord (?!) III U in elke context UU λ
MI MII MIIII MUI MUIUI MUIUIU …
Chomsky: type regels families rechts-lineair, context-vrij, monotoon, type-0
32
![Page 33: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/33.jpg)
• {λ} {a} REG • als K, L REG dan
– KUL REG – K.L REG – K* REG
• verder geen talen in REG
reguliere talen
kleinste familie van talen die • {λ} {a} bevat • gesloten is onder * U .
33
![Page 34: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/34.jpg)
34
![Page 35: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/35.jpg)
{ x{a,b}* | x heeft geen subwoord abba }
({b}{a}{a,ba}*{bbb})* ({λ}{a}{a,ba}*{λ,b,bb})
van 1 naar 1
1 a
a b
ab b
a
a b
b
x a
abb
patroonherkenning
35
![Page 36: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/36.jpg)
eindige automaten
36
volgt. over twee weken staan eindige automaten op het programma, een methode om met grafen talen te specificeren.
![Page 37: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/37.jpg)
mir(K) = { mir(x) | x K } ook KR
• {λ} {a} REG • als K, L REG dan
– KUL REG – K.L REG – K* REG
mir(mir(K)) = K mir(KUL) = mir(K) U mir(L) mir(KL) = mir(L) mir(K) mir(Kn) = mir(K)n
mir(K*) = mir(K)*
REG is gesloten onder mir (volgt uit 1,3,5) dwz: K regulier dan ook mir(K) regulier
spiegelbeeld
37
![Page 38: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/38.jpg)
aantal punten pijlen begin & eind 4 (1,2)(2,3)(2,4)(3,1)(3,4)(4,2) 1,2
000 100 001010 010011 010100 011001 011100 100010 000 001010
G graaf -> woord w(G) Hamilton grafen -> taal Ham
grafen
Hamilton
{0,1}*
probleem = taal HPP: Hamilton Path Problem gegeven: gerichte graaf G, begin- & eindpunt gevraagd: is er een Hamilton pad (elke knoop éénmaal)
òf {0,1,…,9,(,),,}*
1
4
2
3
38
![Page 39: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/39.jpg)
probleem = taal
39
bij het vak Complexiteit komt de formele definitie van het begrip NP-compleet aan de orde. Hiervoor moeten we het begrip ‘probleem’ omzetten naar een ‘taal’. Hoeveel tijd kost het om instantie X van probleem P op te lossen wordt dan: hoeveel tijd kost het om te beslissen of X tot de taal P behoort.
![Page 40: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/40.jpg)
end...
40
![Page 41: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/41.jpg)
Regular Expressions http://xkcd.com/208/
41
![Page 42: No Slide Titleliacs.leidenuniv.nl/~hoogeboomhj/fi1/fis-12languages.pdf · 2016-11-08 · oneindig 30 bij talen en hun operaties gebruiken we soms oneindige verenigingen. Als we twee](https://reader034.vdocuments.mx/reader034/viewer/2022042121/5e9b5fb6d78c5c695b272334/html5/thumbnails/42.jpg)
oefening
L = L2
{λ} Σ*
als λL dan LL2 dus nog testen of L2L ?
• heeft subwoord/prefix/suffix x • heeft even lengte/ veelvoud n • subwoord x én/of subwoord y
• ? heeft géén subwoord x
• is een palindroom • L* van willekeurige L (!) { ab2, ab3, ab5, ab7, … } { ab, aabb, aaabbb, … } = { anbn | n1 } L = L*
42