Minimalizace automatů. Z. Sawa (VŠB-TUO) Teoretická informatika 2. října / 53

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Minimalizace automatů. Z. Sawa (VŠB-TUO) Teoretická informatika 2. října / 53"

Transkrypt

1 Minimlizce utomtů Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

2 Minimlizce konečného utomtu Předpokládejme deterministický konečný utomt A = (Q,Σ,δ,q 0,F). Definice Stvy q,q Q nzýváme ekvivlentní, což zpisujeme q q, jestliže pro kždé w Σ pltí q w F právě tehdy, když q w F. Poznámk: Notce q w F oznčuje, že q w q pro nějké q F. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

3 Minimlizce konečného utomtu Budeme používt q q pro oznčení (q q ). Všimněte si, že q q právě tehdy, když existuje nějké slovo w Σ tkové, že: q w F není prvd, že q w F, nebo q w w F není prvd, že q F. Tkovému slovu w budeme říkt rozlišující slovo pro stvy q q. Tkže q q pltí právě tehdy, když neexistuje žádné rozlišující slovo pro stvy q q. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

4 Minimlizce konečného utomtu Sndno ověříme, že je relce typu ekvivlence n množině stvů Q: Je reflexivní: Pro kždé q Q pltí q q. Je symetrická: Pokud q q, pk q q. Je trnzitivní: Jestliže q q q q, pk q q. Později uvidíme, jk je možné relci efektivně spočítt. Můžeme si všimnout, že pokud nhrdíme přechod q q přechodem q q, kde q q, jzyk přijímný utomtem se tím nezmění. Podobně se jzyk nezmění, když nhrdíme původní počáteční stv q 0 nějkým jiným počátečním stvem q 0 tkovým, že q 0 q 0. V zásdě je možné všechny stvy, které jsou nvzájem ekvivlentní podle relce, sloučit do stvu jediného. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

5 Minimlizce konečného utomtu Relce má některé zjevné vlstnosti: Pro kždé q 1,q 2 Q tkové, že q 1 q 2, pltí: q 1 F právě tehdy, když q 2 F Pokud q 1 F q 2 F, nebo pokud q 1 F q 2 F, pk je rozlišujícím slovem pro stvy q 1 q 2. Pro kždé Σ kždé q 1,q 2 Q tkové, že q 1 q 2 q 2, pltí q 1 q 2. q 1 Pokud q 1 q 2, pk existuje nějké rozlišující slovo w Σ pro q 1 q 2. Ale v tom přípdě je w rozlišujícím slovem pro q 1 q 2. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

6 Minimlizce konečného utomtu Předchozí tvrzení je možno sndno rozšířit n libovolná slov: Pokud q 1 q 2 pltí q 1 w q 1 q 2 w q 2 pro w Σ, pk q 1 q 2. V opčném přípdě by existovlo pro q 1 q 2 nějké rozlišující slovo w Σ, což by znmenlo, že ww je rozlišujícím slovem pro q 1 q 2. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

7 Minimlizce konečného utomtu Všimněte si, že rovněž pltí opčné tvrzení: Pro kždé q 1,q 2 Q tkové, že: q 1 F právě tehdy, když q 2 F, pro kždé Σ kždé q 1,q 2 Q tkové, že q 1 pltí q 1 q 2, pltí, že q 1 q 2. q 1 q 2 q 2, Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

8 Minimlizce konečného utomtu 1 2 b 3 4 b b b b b 5 6 b 7 8 b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

9 Minimlizce konečného utomtu 1 2 b 3 4 b b b b b 5 6 b 7 8 b 4 8, tkže stvy 4 8 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

10 Minimlizce konečného utomtu 1 2 b 3 4, 8 b b b b 5 6 b 7,b 4 8, tkže stvy 4 8 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

11 Minimlizce konečného utomtu 1 2 b 3 4, 8 b b b b 5 6 b 7,b 4 8, tkže stvy 4 8 je možné sloučit do jednoho. 3 7, tkže stvy 3 7 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

12 Minimlizce konečného utomtu b 1 2 b 3,7 4,8 b b b 5 6,b 4 8, tkže stvy 4 8 je možné sloučit do jednoho. 3 7, tkže stvy 3 7 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

13 Minimlizce konečného utomtu b 1 2 b 3,7 4,8 b b b 5 6,b 4 8, tkže stvy 4 8 je možné sloučit do jednoho. 3 7, tkže stvy 3 7 je možné sloučit do jednoho. 2 6, tkže stvy 2 6 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

14 Minimlizce konečného utomtu b 1 2,6 b 3,7 4,8 b b,b 5 4 8, tkže stvy 4 8 je možné sloučit do jednoho. 3 7, tkže stvy 3 7 je možné sloučit do jednoho. 2 6, tkže stvy 2 6 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

15 Minimlizce konečného utomtu b 1 2,6 b 3,7 4,8 b b,b 5 4 8, tkže stvy 4 8 je možné sloučit do jednoho. 3 7, tkže stvy 3 7 je možné sloučit do jednoho. 2 6, tkže stvy 2 6 je možné sloučit do jednoho. 1 5, tkže stvy 1 5 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

16 Minimlizce konečného utomtu b b b 1,5 2,6 3,7 4,8,b 4 8, tkže stvy 4 8 je možné sloučit do jednoho. 3 7, tkže stvy 3 7 je možné sloučit do jednoho. 2 6, tkže stvy 2 6 je možné sloučit do jednoho. 1 5, tkže stvy 1 5 je možné sloučit do jednoho. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

17 Minimlizce konečného utomtu Protože je ekvivlence, existuje jí odpovídjící rozkld, tj. množin {S 1,S 2,...,S k } podmnožin Q (tj., S i Q pro kždé i {1,...,k}), tková, že: S 1 S 2 S k = Q Všechny množiny S 1,S 2,...,S k jsou vzájemně disjunktní, tj. S i S j = pro i j. Množiny S 1,S 2,...,S k se nzývjí třídy ekvivlence. Pro třídu ekvivlence, která obshuje stv q Q, budeme používt oznčení [q], tj. [q] = {q Q q q }. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

18 Minimlizce konečného utomtu Jk vyplývá z předchozího popisu, pro třídy ekvivlence pltí následující: Pro kždé q Q pltí q F právě tehdy, když q F pltí pro kždé q [q]. Pokud pltí q 1 q 1 pro nějké Σ q 1 Q, pk ke kždému q 2 [q 1 ] existuje nějké q 2 Q tkové, že q 1 q 2. Tkže, pokud q 1 q 2, tk pro kždé Σ pltí δ(q 1,) δ(q 2,), neboli, jinými slovy, pokud [q 1 ] = [q 2 ], pk [δ(q 1,)] = [δ(q 2,)]. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

19 Minimlizce konečného utomtu Sloučením všech vzájemně ekvivlentních stvů utomtu A = (Q,Σ,δ,q 0,F) dostneme utomt A = (Q,Σ,δ,q 0,F ), kde: Q je množin všech tříd ekvivlence množiny Q vzhledem k, tj. Q = {[q] q Q}. δ je definován následovně: pro q Q Σ je δ ([q],) = [δ(q,)]. q 0 = [q 0] F = {[q] q F} Dá se sndno ukázt, že L(A ) = L(A). Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

20 Minimlizce konečného utomtu Definice DKA A nzýváme redukovný, jestliže: Nemá žádné nedosžitelné stvy. Pro kždé q,q Q pltí q q pro q q (tj. pokud q q, pk q = q ). V dném DKA A můžeme odstrnit jeho nedosžitelné stvy sestrojit k němu výše uvedenou konstrukcí odpovídjící utomt A. Je zřejmé, že pltí L(A ) = L(A) utomt A je redukovný. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

21 Minimlizce konečného utomtu Deterministické konečné utomty A = (Q,Σ,δ,q 0,F) A = (Q,Σ,δ,q 0,F ) jsou isomorfní, jestliže mezi nimi existuje isomorfismus, tj. funkce f : Q Q tková, že: f je bijekce pro kždé q Q Σ pltí δ (f(q),) = f(δ(q,)) q 0 = f(q 0) pro kždé q Q pltí, že f(q) F právě tehdy, když q F Poznámk: Neformálně to znmená, že A A jsou v podsttě jeden tentýž utomt ž n to, že jejich stvy jsou oznčeny různě. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

22 Minimlizce konečného utomtu Vět Pro kždý regulární jzyk L jsou všechny redukovné utomty A tkové, že L(A) = L, izomorfní. Důsledek Jestliže je A redukovný DKA A má n-stvů, tk kždý DKA, který přijímá jzyk L(A), má nejméně n stvů. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

23 Minimlizce konečného utomtu Nyní se budeme zbývt lgoritmem pro výpočet relce (resp. odpovídjícího rozkldu). Pro tento účel je vhodné zvést n množině stvů Q pomocné relce 0, 1, 2,... Definice For i N je relce i Q Q definován následovně: q i q právě tehdy, když pro kždé slovo w Σ tkové, že w i, pltí q w F právě tehdy, když q w F. Poznámk: Sndno se ověří, že pro kždé i N je relce i ekvivlence. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

24 Minimlizce konečného utomtu Vybrné vlstnosti relcí 0, 1, 2,... : Pro kždé i N máme i i+1, tj., pro kždé q,q Q, q i+1 q implikuje q i q (tedy q i q implikuje q i+1 q ). q 0 q právě, když bud q F q F, nebo q F q F. Pro kždé i N q 1,q 2 Q máme q 1 i+1 q 2 právě, když q 1 i q 2, pro všechn Σ máme δ(q 1,) i δ(q 2,). Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

25 Minimlizce konečného utomtu Tkže máme sekvenci relcí 0, 1, 2,... n Q kde Poznmenejme, že když i = i+1 pro nějké i N pk j = i pro všechn j i, i.e., i = i+1 = i+2 = i+3 = Protože Q je konečná množin, musí existovt tkové i N, že i = i+1. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

26 Minimlizce konečného utomtu Necht k N je nejmenší číslo tkové, že k = k+1. Z toho plyne, že jestliže nějké stvy q q nemohou být rozlišeny slovem délky nejvýše k (tj., q k q ), potom nemohou být rozlišeny slovem žádné délky i (tj., q i q pro kždé i N). Ale to znmená, že nemohou být rozlišen žádným slovem, tedy že q q. Lemm Necht k N je nejmenší číslo tkové, že k = k+1. Potom k =, tj., pro kždé q,q Q máme q q právě tehdy, když q k q. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

27 Minimlizce konečného utomtu 1 2 b 3 4 b b b b b 5 6 b 7 8 b b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

28 Minimlizce konečného utomtu b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

29 Minimlizce konečného utomtu b Relce 0 : I II 4 8 b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

30 Minimlizce konečného utomtu b Relce 0 : b I 1 I I 2 I I 3 II I 5 I I 6 I I 7 II I II 4 II II 8 II II Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

31 Minimlizce konečného utomtu b Relce 0 : b I 1 I I 2 I I 3 II I 5 I I 6 I I 7 II I II 4 II II 8 II II Relce 1 : III IV 3 7 II 4 8 b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

32 Minimlizce konečného utomtu b Relce 0 : b I 1 I I 2 I I 3 II I 5 I I 6 I I 7 II I II 4 II II 8 II II Relce 1 : b III 1 III III 2 III IV 5 III III 6 III IV IV 3 II IV 7 II IV II 4 II II 8 II II Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

33 Minimlizce konečného utomtu b Relce 1 : b III 1 III III 2 III IV 5 III III 6 III IV IV 3 II IV 7 II IV II 4 II II 8 II II Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

34 Minimlizce konečného utomtu b Relce 1 : b III 1 III III 2 III IV 5 III III 6 III IV IV 3 II IV 7 II IV II 4 II II 8 II II Relce 2 : V 1 5 VI 2 6 IV 3 7 II 4 8 b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

35 Minimlizce konečného utomtu b Relce 1 : b III 1 III III 2 III IV 5 III III 6 III IV IV 3 II IV 7 II IV II 4 II II 8 II II Relce 2 : b V 1 VI V 5 VI V VI 2 VI IV 6 VI IV IV 3 II IV 7 II IV II 4 II II 8 II II Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

36 Minimlizce konečného utomtu b Relce 2 : b V 1 VI V 5 VI V VI 2 VI IV 6 VI IV IV 3 II IV 7 II IV II 4 II II 8 II II Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

37 Minimlizce konečného utomtu b Relce 2 : b V 1 VI V 5 VI V VI 2 VI IV 6 VI IV IV 3 II IV 7 II IV II 4 II II 8 II II b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

38 Minimlizce konečného utomtu Algoritmus testování ekvivlence deterministických konečných utomtů A 1 = (Q 1,Σ,δ 1,q 01,F 1 ) A 2 = (Q 2,Σ,δ 2,q 02,F 2 ): Sestrojit utomt A jko disjunktní sjednocení A 1 A 2, kde: Q = Q 1 Q 2 (bez ztráty obecnosti můžeme předpokládt Q 1 Q 2 = ) Pro q Q Σ δ(q,) = { δ 1 (q,) když q Q 1 δ 2 (q,) když q Q 2 F = F 1 F 2 (Počáteční stv utomtu A není důležitý.) Otestovt, zd q 01 q 02 v A. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

39 Regulární výrzy Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

40 Regulární výrzy Regulární výrzy popisující jzyky nd becedou Σ:,, (kde Σ) jsou regulární výrzy:... oznčuje prázdný jzyk... oznčuje jzyk {}... oznčuje jzyk {} Jestliže α, β jsou regulární výrzy, pk i (α+β), (α β), (α ) jsou regulární výrzy: (α+β)... oznčuje sjednocení jzyků oznčených α β (α β)... oznčuje zřetězení jzyků oznčených α β (α )... oznčuje iterci jzyk oznčeného α Neexistují žádné dlší regulární výrzy než ty definovné podle předchozích dvou bodů. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

41 Regulární výrzy Příkld: beced Σ = {0,1} Podle definice jsou 0 i 1 regulární výrzy. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

42 Regulární výrzy Příkld: beced Σ = {0,1} Podle definice jsou 0 i 1 regulární výrzy. Protože 0 i 1 jsou regulární výrzy, je i (0+1) regulární výrz. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

43 Regulární výrzy Příkld: beced Σ = {0,1} Podle definice jsou 0 i 1 regulární výrzy. Protože 0 i 1 jsou regulární výrzy, je i (0+1) regulární výrz. Protože 0 je regulární výrz, je i (0 ) regulární výrz. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

44 Regulární výrzy Příkld: beced Σ = {0,1} Podle definice jsou 0 i 1 regulární výrzy. Protože 0 i 1 jsou regulární výrzy, je i (0+1) regulární výrz. Protože 0 je regulární výrz, je i (0 ) regulární výrz. Protože (0+1) i (0 ) jsou regulární výrzy, je i ((0+1) (0 )) regulární výrz. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

45 Regulární výrzy Příkld: beced Σ = {0,1} Podle definice jsou 0 i 1 regulární výrzy. Protože 0 i 1 jsou regulární výrzy, je i (0+1) regulární výrz. Protože 0 je regulární výrz, je i (0 ) regulární výrz. Protože (0+1) i (0 ) jsou regulární výrzy, je i ((0+1) (0 )) regulární výrz. Poznámk: Jestliže α je regulární výrz, zápisem L(α) oznčujeme jzyk definovný regulárním výrzem α. L((0+1) (0 )) = {0, 1, 00, 10, 000, 100, 0000, 1000, 00000,...} Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

46 Regulární výrzy Strukturu regulárního výrzu si můžeme znázornit bstrktním syntktickým stromem: (((((0 1) ) 1) (1 1))+(((0 0)+1) )) Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

47 Regulární výrzy Formální definice sémntiky regulárních výrzů: L( ) = L() = {} L() = {} L(α ) = L(α) L(α β) = L(α) L(β) L(α+β) = L(α) L(β) Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

48 Regulární výrzy Aby byl zápis regulárních výrzů přehlednější stručnější, používáme následují prvidl: Vynecháváme vnější pár závorek. Vynecháváme závorky, které jsou zbytečné vzhledem k socitivitě opercí sjednocení (+) zřetězení ( ). Vynecháváme závorky, které jsou zbytečné vzhledem k prioritě opercí (nejvyšší prioritu má iterce ( ), menší zřetězení ( ) nejmenší sjednocení (+)). Nepíšeme tečku pro zřetězení. Příkld: Místo obvykle píšeme (((((0 1) ) 1) (1 1))+(((0 0)+1) )) (01) 111+(00+1) Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

49 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem 0 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

50 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem jzyk tvořený jediným slovem 01 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

51 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem jzyk tvořený jediným slovem jzyk tvořený dvěm slovy 0 1 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

52 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem jzyk tvořený jediným slovem jzyk tvořený dvěm slovy jzyk tvořený slovy, 0, 00, 000,... Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

53 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem jzyk tvořený jediným slovem jzyk tvořený dvěm slovy jzyk tvořený slovy, 0, 00, 000,... (01)... jzyk tvořený slovy, 01, 0101, ,... Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

54 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem jzyk tvořený jediným slovem jzyk tvořený dvěm slovy jzyk tvořený slovy, 0, 00, 000,... (01)... jzyk tvořený slovy, 01, 0101, ,... (0+1)... jzyk tvořený všemi slovy nd becedou {0,1} Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

55 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem jzyk tvořený jediným slovem jzyk tvořený dvěm slovy jzyk tvořený slovy, 0, 00, 000,... (01)... jzyk tvořený slovy, 01, 0101, ,... (0+1)... jzyk tvořený všemi slovy nd becedou {0,1} (0+1) jzyk tvořený všemi slovy končícími 00 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

56 Regulární výrzy Příkldy: Ve všech přípdech Σ = {0,1} jzyk tvořený jediným slovem jzyk tvořený jediným slovem jzyk tvořený dvěm slovy jzyk tvořený slovy, 0, 00, 000,... (01)... jzyk tvořený slovy, 01, 0101, ,... (0+1)... jzyk tvořený všemi slovy nd becedou {0,1} (0+1) jzyk tvořený všemi slovy končícími 00 (01) 111(01)... jzyk tvořený všemi slovy obshujícími podslovo 111 předcházené i následovné libovolným počtem slov 01 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

57 Regulární výrzy (0+1) 00+(01) 111(01)... jzyk tvořený všemi slovy, která bud končí 00 nebo obshují podslovo 111 předcházené i následovné libovolným počtem slov 01 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

58 Regulární výrzy (0+1) 00+(01) 111(01)... jzyk tvořený všemi slovy, která bud končí 00 nebo obshují podslovo 111 předcházené i následovné libovolným počtem slov 01 (0+1) 1(0+1)... jzyk tvořený všemi slovy obshujícími lespoň jeden symbol 1 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

59 Regulární výrzy (0+1) 00+(01) 111(01)... jzyk tvořený všemi slovy, která bud končí 00 nebo obshují podslovo 111 předcházené i následovné libovolným počtem slov 01 (0+1) 1(0+1)... jzyk tvořený všemi slovy obshujícími lespoň jeden symbol 1 0 (10 10 )... jzyk tvořený všemi slovy obshujícími sudý počet symbolů 1 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

60 Regulární výrzy Příkld jednoduchého lgoritmického problému týkjícího se regulárních výrzů: Vstup: Regulární výrz α. Otázk: Je L(α)? Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

61 Regulární výrzy Příkld jednoduchého lgoritmického problému týkjícího se regulárních výrzů: Vstup: Regulární výrz α. Otázk: Je L(α)? Cílem je tedy npst funkci Emp, která dostne jko vstup libovolný regulární výrz α vrátí hodnotu typu Bool tkovou, že { True pokud L(α) Emp(α) = Flse jink. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

62 Regulární výrzy Funkci Emp je sndné implementovt pomocí rekurze. N zákldě tvru regulárního výrzu α (de fcto n zákldě toho, co je v kořeni bstrktního syntktického stromu reprezentujícího výrz α) se vybere příslušná větev výpočtu: [α = ] Emp(α) = Flse [α = ] Emp(α) = True [α =, kde Σ] Emp(α) = Flse [α = β+γ] Emp(α) = Emp(β) Emp(γ) [α = β γ] Emp(α) = Emp(β) Emp(γ) [α = β ] Emp(α) = True Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

63 Regulární výrzy Popis funkce Emp můžeme zpst i stručněji: Emp( ) = Flse Emp() = True Emp() = Flse pro Σ Emp(β+γ) = Emp(β) Emp(γ) Emp(β γ) = Emp(β) Emp(γ) Emp(β ) = True Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

64 Regulární výrzy Vezměme si podobný, le o něco složitější, problém: Vstup: Regulární výrz α nd becedou Σ. Výstup: Množin X Σ tková, že pro kždé Σ pltí, že X právě tehdy, když se nchází n zčátku nějkého slov z L(α), tj. když existuje w Σ tkové, že w L(α). Cílem je tedy nvrhnout funkci first, která pro zdný regulární výrz vrcí podmnožinu symbolů becedy Σ, přičemž first(α) = { Σ w Σ : w L(α)}. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

65 Regulární výrzy first( ) = first() = first() = { } pro Σ first(β+γ) = first(β) first(γ) { first(β) first(γ) pokud L(β) first(β γ) = first(β) jink first(β ) = first(β) Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

66 Regulární výrzy Vstup: Regulární výrz α nd becedou Σ. Výstup: Množin lst(α) = { Σ w Σ : w L(α)}. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

67 Regulární výrzy Vstup: Regulární výrz α nd becedou Σ. Výstup: Množin lst(α) = { Σ w Σ : w L(α)}. lst( ) = lst() = lst() = { } pro Σ lst(β+γ) = lst(β) lst(γ) { lst(β) lst(γ) pokud L(γ) lst(β γ) = lst(γ) jink lst(β ) = lst(β) Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

68 Převod regulárního výrzu n konečný utomt Tvrzení Kždý jzyk, který je možné vyjádřit regulárním výrzem, je regulární (tj. rozpoznávný nějkým konečným utomtem). Důkz: Stčí ukázt, jk k dnému regulárnímu výrzu α zkonstruovt konečný utomt, který rozpoznává jzyk [α]. Konstrukce je rekurzivní postupuje podle struktury výrzu α: Pokud je α elementární výrz (tj., nebo ): Sestrojíme přímo odpovídjící utomt. Pokud je α tvru (β+γ), (β γ) nebo (β ): Rekurzivně sestrojíme utomty rozpoznávjící jzyky [β] [γ]. Z nich sestrojíme utomt rozpoznávjící jzyk [α]. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

69 Převod regulárního výrzu n konečný utomt Automty pro elementární výrzy: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

70 Převod regulárního výrzu n konečný utomt Automty pro elementární výrzy: Konstrukce pro sjednocení: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

71 Převod regulárního výrzu n konečný utomt Automty pro elementární výrzy: Konstrukce pro sjednocení: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

72 Převod regulárního výrzu n konečný utomt Konstrukce pro zřetězení: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

73 Převod regulárního výrzu n konečný utomt Konstrukce pro zřetězení: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

74 Převod regulárního výrzu n konečný utomt Konstrukce pro zřetězení: Konstrukce pro iterci: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

75 Převod regulárního výrzu n konečný utomt Konstrukce pro zřetězení: Konstrukce pro iterci: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

76 Převod regulárního výrzu n konečný utomt Příkld: Konstrukce utomtu pro výrz ((+b) b) : Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

77 Převod regulárního výrzu n konečný utomt Příkld: Konstrukce utomtu pro výrz ((+b) b) : Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

78 Převod regulárního výrzu n konečný utomt Příkld: Konstrukce utomtu pro výrz ((+b) b) : b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

79 Převod regulárního výrzu n konečný utomt Příkld: Konstrukce utomtu pro výrz ((+b) b) : b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

80 Převod regulárního výrzu n konečný utomt Příkld: Konstrukce utomtu pro výrz ((+b) b) : b b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

81 Převod regulárního výrzu n konečný utomt Příkld: Konstrukce utomtu pro výrz ((+b) b) : b b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

82 Převod regulárního výrzu n konečný utomt Příkld: Konstrukce utomtu pro výrz ((+b) b) : b b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

83 Převod regulárního výrzu n konečný utomt Pokud se výrz α skládá z n znků (nepočítáme-li závorky), má výsledný utomt: nejvýše 2n stvů, nejvýše 4n přechodů. Poznámk: Převodem ze zobecněného nedeterministického utomtu n deterministický všk může počet stvů vzrůst exponenciálně, tj. výsledný utomt pk může mít ž 2 2n = 4 n stvů. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

84 Převod regulárního výrzu n NKA bez -přechodů Výše popsná konstrukce vytváří utomt velkým množství zbytečných -přechodů. Popíšeme zde lterntivní konstrukci, která vytváří utomt bez -přechodů. Nejprve si všimněme, že v dříve popsné konstrukci jediné přechody, které nejsou -přechody, vznikjí z tomických regulárních výrzů, kde Σ: p q Pro dnou dvojici stvů p q pltí, že příslušný přechod oznčený symbolem, je jediným přechodem vycházejícím ze stvu p jediným přechodem vstupujícím do stvu q. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

85 Převod regulárního výrzu n NKA bez -přechodů Příkld: Automt pro výrz ((+b) b) : b b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

86 Převod regulárního výrzu n NKA bez -přechodů Příkld: Automt pro výrz ((+b) b) : b b Důležité jsou stvy, do kterých vedou přechody se symboly ze Σ: Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

87 Převod regulárního výrzu n NKA bez -přechodů Příkld: Automt pro výrz (( 1 +b 2 ) b 3 ) : 1 b 3 b 2 Důležité jsou stvy, do kterých vedou přechody se symboly ze Σ: Odpovídjí jednotlivým výskytům symbolů ze Σ v dném regulárním výrze. Budeme jim říkt pozice. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

88 Převod regulárního výrzu n NKA bez -přechodů Uvžujme regulární výrzy, kde jsou výskyty symbolů ze Σ jednoznčně oznčeny, tj. místo symbolů ze Σ jsou použity příslušné pozice: Npříkld původnímu regulárnímu výrzu ((+b) b) tk odpovídá výrz (( 1 +b 2 ) b 3 ). Pro tkto uprvený regulární výrz α oznčme Pos(α) množinu všech pozic v dném regulárním výrze: Příkld: Pos((( 1 +b 2 ) b 3 ) ) = { 1,b 2,b 3 } Pro kždou pozici x Pos(α) oznčme symb(x) příslušný původní symbol ze Σ: Příkld: symb( 1 ) =, symb(b 2 ) = b, symb(b 3 ) = b, Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

89 Převod regulárního výrzu n NKA bez -přechodů Pro dný (uprvený) regulární výrz α oznčme first(α) množinu všech symbolů, kterými může zčínt slovo z L(α) Příkld: first((( 1 +b 2 ) b 3 ) ) = { 1,b 2 } Poznámk: Do first(α) ptří právě ty pozice x, které jsou v utomtu sestrojeném dříve popsnou konstrukcí dosžitelné z počátečního stvu sekvencí -přechodů následovnou symbolem symb(x). Podobně pro dný (uprvený) regulární výrz α oznčme lst(α) množinu všech symbolů, kterými může slovo z L(α) končit. Příkld: lst((( 1 +b 2 ) b 3 ) ) = {b 3 } Poznámk: Do lst(α) ptří právě ty pozice x, ze kterých je v utomtu sestrojeném dříve popsnou konstrukcí dosžitelný koncový stv sekvencí -přechodů. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

90 Převod regulárního výrzu n NKA bez -přechodů Pro dný (uprvený) regulární výrz α x Pos(α) oznčme follow(α,x) množinu všech pozic, které mohou ve slovech z L(α) následovt bezprostředně po pozici x, tj. y follow(α,x) existují slov u,v tková, že uxyv L(α) Příkld: Pro α = (( 1 +b 2 ) b 3 ) je follow(α, 1 ) = {b 3 } follow(α,b 2 ) = {b 3 } follow(α,b 3 ) = { 1,b 2 } Poznámk: Do follow(α,x) ptří právě ty pozice y, které jsou v utomtu sestrojeném dříve popsnou konstrukcí dosžitelné z pozice x sekvencí -přechodů následovnou symbolem symb(y). Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

91 Převod regulárního výrzu n NKA bez -přechodů Hlvní myšlenk: pro výrz α sestrojíme NKA (Q,Σ,δ,{q 0 },F), kde Q = {q 0 } Pos(α), kde q 0 je počáteční stv (přičemž q 0 Pos(α)) do q 0 nevedou žádné přechody všechny přechody do stvu x Pos(α) jsou oznčeny symbolem symb(x) pro kždé x first(α) přidáme přechod q 0 x, kde = symb(x) pro kždé x Pos(α) y follow(α,x) přidáme přechod x kde = symb(y) { lst(α) {q 0 } pokud L(α) F = lst(α) jink y, Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

92 Převod regulárního výrzu n NKA bez -přechodů Příkld: Automt pro výrz (( 1 +b 2 ) b 3 ) q 0 b 1 b 2 b b b b 3 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

93 Převod regulárního výrzu n NKA bez -přechodů Výpočet funkce follow(α,x), kde x Pos(α): [α = ] α neobshuje žádné pozice [α = ] α neobshuje žádné pozice [α = x] follow(α,x)= { follow(β, x) pokud x Pos(β) [α = β+γ] follow(α,x)= follow(γ, x) pokud x Pos(γ) follow(β, x) pokud x Pos(β)\ lst(β) [α = β γ] follow(α,x)= follow(β, x) first(γ) pokud x lst(β) follow(γ, x) pokud x Pos(γ) { [α = β follow(β, x) pokud x Pos(β)\ lst(β) ] follow(α,x)= follow(β, x) first(β) pokud x lst(β) Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

94 Převod regulárního výrzu n NKA bez -přechodů Pro regulární výrz s n pozicemi má výsledný utomt celkem n+1 stvů O(n 2 ) přechodů Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

95 Převod konečného utomtu n regulární výrz Tvrzení Kždý regulární jzyk je možné popst nějkým regulárním výrzem. Důkz: Stčí ukázt, jk pro libovolný konečný utomt A zkonstruovt regulární výrz α tkový, že L(α) = L(A). A uprvíme tk, by měl právě jeden počáteční právě jeden přijímjící stv. Budeme postupně odebírt jednotlivé stvy. Přechody budou oznčeny regulárními výrzy. Zbude utomt se dvěm stvy počátečním koncovým, jedním přechodem ohodnoceným výsledným regulárním výrzem. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

96 Převod konečného utomtu n regulární výrz Hlvní myšlenk: Při odstrňování stvu q nhrdit pro kždou dvojici zbylých stvů q j, q k cestu z q j do q k vedoucí přes q. q j α q k β q δ γ Po odstrnění stvu q: q j α+βγ δ q k Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

97 Převod konečného utomtu n regulární výrz Příkld: b 1 2 b b 3 Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

98 Převod konečného utomtu n regulární výrz Příkld: b s 1 2 b b 3 f Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

99 Převod konečného utomtu n regulární výrz Příkld: b+ s b 2 +b f b 3 bb Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

100 Převod konečného utomtu n regulární výrz Příkld: s (b+) f b+(b+) b 3 +(+b)(b+) bb+(+b)(b+) b Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

101 Převod konečného utomtu n regulární výrz Příkld: s (b+) + (b+(b+) b) (bb+(+b)(b+) b) (+(+b)(b+) ) f Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53

102 Ekvivlence konečných utomtů regulárních výrzů Vět Jzyk je regulární právě tehdy, když je ho možné popst regulárním výrzem. Z. Sw (VŠB-TUO) Teoretická informtik 2. říjn / 53