Minimalizace KA - Úvod

Podobné dokumenty
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Naproti tomu gramatika je vlastně soupis pravidel, jak

Základy teoretické informatiky Formální jazyky a automaty

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

5 Orientované grafy, Toky v sítích

Vlastnosti regulárních jazyků

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

4 Pojem grafu, ve zkratce

8 Přednáška z

TGH02 - teorie grafů, základní pojmy

Výroková a predikátová logika - II

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S.

TGH02 - teorie grafů, základní pojmy

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Výroková a predikátová logika - II

Automaty a gramatiky. Na zopakování X*/~ Roman Barták, KTIML. Iterační (pumping) lemma. Pravidelnost regulárních jazyků

3.10 Rezoluční metoda ve výrokové logice

H {{u, v} : u,v U u v }

Teoretická informatika - Úkol č.1

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Jan Pavĺık. FSI VUT v Brně

Naproti tomu gramatika je vlastně soupis pravidel, jak

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

Výroková a predikátová logika - II

Množiny, relace, zobrazení

Výroková a predikátová logika - III

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Kongruence na množině celých čísel

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Operační výzkum. Síťová analýza. Metoda CPM.

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Algoritmus pro hledání nejkratší cesty orientovaným grafem

TGH02 - teorie grafů, základní pojmy

Formální jazyky a automaty Petr Šimeček

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

9 Kolmost vektorových podprostorů

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

0. ÚVOD - matematické symboly, značení,

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Vztah jazyků Chomskeho hierarchie a jazyků TS

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

Matematická analýza 1

1 Linearní prostory nad komplexními čísly

Výroková a predikátová logika - V

Složitost Filip Hlásek

Báze a dimenze vektorových prostorů

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

10 Podgrafy, isomorfismus grafů

PŘEDNÁŠKA 7 Kongruence svazů

METRICKÉ A NORMOVANÉ PROSTORY

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

Lineární programování

AUTOMATY A GRAMATIKY

Výroková logika. Teoretická informatika Tomáš Foltýnek

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

1 Báze a dimenze vektorového prostoru 1

Logické programy Deklarativní interpretace

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

1. přednáška 1. října Kapitola 1. Metrické prostory.

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

VEKTOROVÝ PROSTOR. Vektorový prostor V n je množina všech n-složkových vektorů spolu s operacemi sčítání, odčítání vektorů a reálný násobek vektoru.

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Zpracoval: 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.

Teorie množin Pavel Podbrdský

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Formální systém výrokové logiky

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:

IB112 Základy matematiky

Úlohy klauzurní části školního kola kategorie B

Výroková a predikátová logika - IV

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

Diskrétní matematika. DiM /01, zimní semestr 2015/2016

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Teorie grafů Jirka Fink

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2014

Teorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66

Vektorový prostor. d) Ke každému prvku u V n existuje tzv. opačný prvek u, pro který platí, že u + u = o (vektor u nazýváme opačný vektor k vektoru u)

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

1 Lineární prostory a podprostory

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

13. přednáška 13. ledna k B(z k) = lim. A(z) = M(z) m 1. z m.

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

Konečný automat Teorie programovacích jazyků

Lineární algebra : Násobení matic a inverzní matice

Riemannův určitý integrál

10 Přednáška ze

Základy logiky a teorie množin

Statistická teorie učení

Transkript:

Minimalizace KA - Úvod Tyto dva KA A,A2 jsou jazykově ekvivalentní, tzn. že rozpoznávají tentýž jazyk. L(A) = L(A2) Názorně lze vidět, že automat A2 má menší počet stavů než A, tudíž našim cílem bude ukázat jakými způsoby lze zmenšit počet stavů KA a tak dospět k automatu s nejmenším počtem stavů. A q q A2 q q, q 2 q 3

Minimalizace KA - Úvod Zredukování počtu stavů KA sestává ze dvou kroků: Eliminace nedosažitelných stavů

Minimalizace KA - Úvod Zredukování počtu stavů KA sestává ze dvou kroků: Eliminace nedosažitelných stavů Sjednocení ekvivalentních stavů

Eliminace nedosažitelných stavů q q q 2 q 3 q 4 q 5, Automat příjímá jazyk L = {w, w obsahuje podslovo } Pro žádnou posloupnost vstupních symbolů se automat nedostane do stavů q 2, q 3 nebo q 4.

Eliminace nedosažitelných stavů q q q 5, Automat příjímá jazyk L = {w, w obsahuje podslovo } Pro žádnou posloupnost vstupních symbolů se automat nedostane do stavů q 2, q 3 nebo q 4. Pokud tyto stavy odstraníme, automat pořád přijímá stejný jazyk L = {w, w obsahuje podslovo }

Eliminace nedosažitelných stavů Nyní si ukážeme na příkladu, jak lze odstranit z automatu nedosažitelné stavy. q q q 2 q 3 q 4 q 5,

Eliminace nedosažitelných stavů Princip spočívá v tom, že procházíme graf a tak určujeme dosažitelné stavy. Z toho plyne, že které nejsou dosažitelné, jsou nedosažitelné a můžeme je vynechat, aniž by se změnil jazyk přijímaný automatem. q q q 2 q 3 q 4 q 5,

Eliminace nedosažitelných stavů Nyní začneme procházet automat. Počáteční stav q je označen jako dosažitelný. Jakmile probereme všechny jeho výstupní šipky, kterými se dostáváme do dalších stavů, označíme jej jako vyřízený (zpracovaný). q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, Vyřízené stavy = [ Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Nyní se z počátečního stavu q dostaneme slovem do stavu q. Označíme jej tedy jako dosažitelný. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, Vyřízené stavy = [ Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Nyní ze stavu q přejdeme slovem do dalšího stavu. Vidíme, že tímto slovem se dostáváme do stavu q. Ten je již označen jako dosažitelný. Stav q označíme jako vyřízený, protože jsme probrali všechny jeho výstupní šipky. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, Vyřízené stavy = [ q, Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Nyní budeme přecházet ze stavu, který je označen jako dosažitelný, ale není přitom označen jako vyřízený, a to je stav q. Přejdeme tedy z tohoto stavu slovem do dalšího stavu. Vidíme, že tímto slovem se dostáváme do stavu q. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, Vyřízené stavy = [ q, Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Nyní ze stavu q přejdeme slovem do dalšího stavu. Je zřejmé, že tímto slovem se dostáváme do stavu q 5. Tento stav označíme jako dosažitelný. Zároveň jsme vyřídili stav q a je tedy označen jako vyřízený. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, q 5 Vyřízené stavy = [ q, q, Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Nyní budeme vycházet ze stavu, který je zařazen mezi dosažitelné stavy, ale zároveň ještě není označen jako vyřízený. A to je stav q 5. Z tohoto stavu přejdeme slovem do dalšího stavu. Z toho plyne, že tímto slovem se dostáváme do stavu q 5. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, q 5 Vyřízené stavy = [ q, q, Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Nyní ze stavu q 5 přejdeme slovem do dalšího stavu. Je zřejmé, že tímto slovem se dostáváme do stavu q 5. V tomto stavu jsme probrali všechny výstupní šipky, tudíž jej označíme jako vyřízený. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, q 5 Vyřízené stavy = [ q, q, q 5 Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Všechny stavy, které byly označeny jako dosažitelné, jsou nyní označeny i jako vyřízené. Tím algoritmus končí. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, q 5 ] Vyřízené stavy = [ q, q, q 5 ] Nedosažitelné stavy = [

Eliminace nedosažitelných stavů Nyní stavy, které nejsou označené jako dosažitelné, označíme jako nedosažitelné a můžeme je z automatu vypustit, aniž by se změnil jazyk přijímaný tímto automatem. q q q 2 q 3 q 4 q 5, Dosažitelné stavy = [ q, q, q 5 ] Vyřízené stavy = [ q, q, q 5 ] Nedosažitelné stavy = [ q 2, q 3, q 4 ]

Eliminace nedosažitelných stavů Automat již neobsahuje nedosažitelné stavy. q q Dosažitelné stavy = [ q, q, q 5 ] q 5, Vyřízené stavy = [ q, q, q 5 ] Nedosažitelné stavy = [ q 2, q 3, q 4 ]

Eliminace nedosažitelných stavů Algoritmus pro eliminaci nedosažitelných stavů Vstup : Konečný automat M = (Q,Σ,δ, q, F) Výstup : Ekvivalentní automat M bez nedosažitelných stavů i = S i = repeat S i+ := S i {q } {q p S i, a Σ : δ(p, a) = q} i := i + until S i = S i Q := S i M := (Q,Σ,δ/Q, q, F Q )

Eliminace nedosažitelných stavů - Shrnutí Definice Necht M = (Q,Σ,δ, q, F) je konečný automat. Stav q Q nazveme dosažitelný, pokud existuje w Σ takové, že ˆδ(q, w) = q. Stav je nedosažitelný, pokud není dosažitelný. Do nedosažitelných stavů nevede v grafu automatu žádná orientovaná cesta z počátečního stavu.

Eliminace nedosažitelných stavů - Shrnutí Definice Necht M = (Q,Σ,δ, q, F) je konečný automat. Stav q Q nazveme dosažitelný, pokud existuje w Σ takové, že ˆδ(q, w) = q. Stav je nedosažitelný, pokud není dosažitelný. Do nedosažitelných stavů nevede v grafu automatu žádná orientovaná cesta z počátečního stavu. Nedosažitelné stavy můžeme z automatu odstranit se všemi přechody vedoucími z nich. Jazyk příjímaný automatem se nezmění.

Normovaný tvar Jeden automat lze prezentovat mnoha různými způsoby, proto nás zajímá nějaká jednoznačná prezentace. Automat je v normovaném tvaru, jestliže jeho stavy jsou očíslované,2,...,n v abecedním pořadí nejmenších slov, kterými tyto stavy dosáhneme.

Normovaný tvar Postup je stejný jako u hledání dosažitelných stavů. Rozdíl je v tom, že stavy neznačíme (q, q,...q n ) jak byly zadány, ale značíme jej čísly (,2,3...n). Postup: Počáteční stav označíme. Dále např. v případě abecedy {a,b} zjistíme stav q, do něhož automat přejde ze stavu symbolem a. Pokud q není označen, označíme jej 2. Pak zjistíme stav q, do něhož automat přejde ze stavu symbolem b. Pokud stav q není dosud označen, označíme jej nejmenším dosud nepoužitým číslem. Takto pokračujeme dále, dokud nezískáme všechny dosažitelné stavy.

Normovaný tvar Na jednoduchém příkladu si znázorníme postup převodu do normovaného tvaru. q q q 2 q 3 q 4 q 5

Normovaný tvar Nejprve počáteční stav označíme číslem. q q 2 q 3 q 4 q 5

Normovaný tvar Nyní z počátečního stavu přejdeme slovem do dalšího stavu. Pokud tento stav již není označen žádným číslem, označíme jej číslem 2. q q2 q 3 q 4 q 5

Normovaný tvar Nyní z počátečního stavu přejdeme slovem do dalšího stavu. Vidíme, že tímto slovem se dostáváme do stavu q, který není označen číslem. Označíme jej tedy číslem 3. Z počátečního stavu jsme přešli všemi výstupními hranami do stavů, které jsou dosažitelné. Tudíž začneme procházet graf z následujícího stavu a to ze stavu označeného číslem 2. q3 q2 q 3 q 4 q 5

Normovaný tvar Nyní tedy přejdeme ze stavu, který je označen číslem 2, slovem do dalšího stavu. Z toho vyplývá, že tímto slovem se dostáváme do stavu q 4. Označíme jej číslem 4. q3 q2 q 3 q4 q 5

Normovaný tvar Nyní tedy přejdeme ze stavu, který je označen číslem 2, slovem do dalšího stavu. Vidíme, že tímto slovem se dostáváme do stavu q 5. Označíme jej číslem 5. Opět jsme prošli všechny výstupní hrany ze stavu označeného číslem 2. Začneme tedy procházet graf ze stavu označeného číslem 3. q 3 q2 q 3 q 4 q5

Normovaný tvar Nyní tedy přejdeme ze stavu, který je označen číslem 3, slovem do dalšího stavu. Je zřejmé, že tímto slovem se dostáváme do stavu, který je označen číslem 4. q3 q2 q 3 q4 q5

Normovaný tvar Nyní tedy přejdeme ze stavu, který je označen číslem 3, slovem do dalšího stavu. Tímto slovem se dostáváme do stavu, který je již označen číslem 2. Opět jsme prošli všechny výstupní hrany ze stavu označeného číslem 3. Začneme tedy procházet graf ze stavu označeného číslem 4. q 3 q2 q 3 q 4 q5

Normovaný tvar Nyní tedy přejdeme ze stavu, který je označen číslem 4, slovem do dalšího stavu. Vidíme, že tímto slovem se dostáváme do stavu q 3, který není označen, označíme ho tedy číslem 6. q3 q2 q6 3 q 4 q5

Normovaný tvar Nyní tedy přejdeme ze stavu, který je označen číslem 4, slovem do dalšího stavu. Z toho plyne, že tímto slovem se dostáváme do stavu, který není označen, označíme ho tedy číslem 5. q3 q2 q6 3 q 4 q5

Normovaný tvar Nyní vidíme, že všechny stavy jsou očíslovány {,2,3...,n}. Automat je tedy převeden do normovaného tvaru. q 3 q2 q6 3 q 4 q5

Sjednocení ekvivalentních stavů Definice Pro každý stav q automatu M = (Q,Σ,δ, q, F) definuje L(q) = L(M q), kde M q = (Q,Σ,δ, q, F) Definice Stavy q, q 2 automatu M = (Q,Σ,δ, q, F) nazýváme jazykově ekvivalentní nebo zkráceně ekvivalentní, jestliže L(q ) = L(q 2 ) Jsou-li dva stavy q, q 2 automatu ekvivalentní, můžeme jeden vypustit. Všechny šipky, které do něj směřují, musíme přesměrovat do druhého. Pokud byl vypouštěný stav počáteční, bude počáteční ten druhý.

Sjednocení ekvivalentních stavů Stavy q a q 2 jsou ekvivalentní, můžeme tedy jeden z nich vypustit a všechny šipky do něj směřující přesměrovat do stavu druhého. q q 2 q 3

Sjednocení ekvivalentních stavů Vynecháme-li tedy stav q, který je počáteční, stane se počátečním stavem stav q 2. q q 2 q 3

Sjednocení ekvivalentních stavů Vynecháme-li tedy stav q, který je počáteční, stane se počátečním stavem stav q 2. Hrany směřující do stavu q přesměrujeme do stavu, který ponecháváme - tedy do q 2. q q 2 q 3

Sjednocení ekvivalentních stavů Vynecháme-li tedy stav q, který je počáteční, stane se počátečním stavem stav q 2. Hrany směřující do stavu q přesměrujeme do stavu, který ponecháváme - tedy do q 2. q q 2 q 3

Sjednocení ekvivalentních stavů Vynecháme-li tedy stav q, který je počáteční, stane se počátečním stavem stav q 2. Hrany směřující do stavu q přesměrujeme do stavu, který ponecháváme - tedy do q 2. Nyní tedy odstraníme stav q a hrany z něj vycházející. q 2 q 3

Sjednocení ekvivalentních stavů Dvojice vzájemně ekvivalentních stavů lze hledat rychlým algoritmem.

Sjednocení ekvivalentních stavů Dvojice vzájemně ekvivalentních stavů lze hledat rychlým algoritmem. Postupujeme tak, že rozkládáme množinu všech stavů automatu na neekvivalentní podmnožiny. Pokračujeme v jednotlivých krocích tak dlouho, dokud ještě dochází k dalšímu rozložení.

Sjednocení ekvivalentních stavů Dvojice vzájemně ekvivalentních stavů lze hledat rychlým algoritmem. Postupujeme tak, že rozkládáme množinu všech stavů automatu na neekvivalentní podmnožiny. Pokračujeme v jednotlivých krocích tak dlouho, dokud ještě dochází k dalšímu rozložení. Po ukončení procedury jsou podmnožiny nerozlišitelných stavů sloučeny do jednotlivých stavů.

Sjednocení ekvivalentních stavů Nejprve množinu všech stavů rozdělíme na dvě skupiny. První skupina bude obsahovat stavy nepřijímací. Druhá skupina bude obsahovat stavy přijímací. q q 2 q 3 q 4, q q 3 q 2 q 2 q 4 q 2 q 3 q 4 q 3 q 4 q 4 q 4 I q q 3 q 2 q 4 q 4 q 4 II q 2 q 4 q 2 q 3 q 4 q 3

Sjednocení ekvivalentních stavů Do tabulky si místo přechodů do konkrétních stavů vyznačíme skupinu, do které přecházíme. q q 2 q 3 q 4, q q 3 q 2 q 2 q 4 q 2 q 3 q 4 q 3 q 4 q 4 q 4 I q q 3 q 2 q 4 q 4 q 4 II q 2 q 4 q 2 q 3 q 4 q 3 I q II II q 4 I I II q 2 I II q 3 I II

Sjednocení ekvivalentních stavů Z tabulky vyplývá, že se skupina I rozpadá na dvě další. Stav q se liší od q 4, protože se dostává slovem nebo do skupiny, která následně přijímá slovo. Ze stavu q 4 přejdeme slovy nebo do skupiny, která následně nepřijímá prázdné slovo a tudíž nemohou být ekvivalentní. q q 2 q 3 q 4, q q 3 q 2 q 2 q 4 q 2 q 3 q 4 q 3 q 4 q 4 q 4 I q q 3 q 2 q 4 q 4 q 4 II q 2 q 4 q 2 q 3 q 4 q 3 I q II II q 4 I I II q 2 I II q 3 I II

Sjednocení ekvivalentních stavů Znovu vyplníme tabulku, protože se změnily skupiny. q q 2 q 3 q 4, q q 3 q 2 q 2 q 4 q 2 q 3 q 4 q 3 q 4 q 4 q 4 I q q 3 q 2 q 4 q 4 q 4 II q 2 q 4 q 2 q 3 q 4 q 3 I q II II q 4 I I II q 2 I II q 3 I II I q III III II q 4 II II III q 2 II III q 3 II III

Sjednocení ekvivalentních stavů Nyní se už žádná skupina nerozpadá, algoritmus tedy končí. Stavy, které jsou v jedné skupině, jsou ekvivalentní, tudíž můžeme stavy sloučit. q q 2 q 3 q 4, q q 3 q 2 q 2 q 4 q 2 q 3 q 4 q 3 q 4 q 4 q 4 I q q 3 q 2 q 4 q 4 q 4 II q 2 q 4 q 2 q 3 q 4 q 3 I q II II q 4 I I II q 2 I II q 3 I II I q III III II q 4 II II III q 2 II III q 3 II III I III III II II II III II III

Sjednocení ekvivalentních stavů Algoritmus pro sjednocení ekvivalentních stavů Vstup : Konečný automat M = (Q,Σ,δ, q, F) bez nedosažitelných stavů s totální přechodovou funkcí. Výstup : Redukt M/ i := := (p, q) p F p F repeat i+ := {(p, q) p i q a Σ : δ(p, a) i δ(q, a)} i := i + until i= i := i M/ := (Q/,Σ,η,[q ], F/ )

Sjednocení ekvivalentních stavů - Shrnutí Necht M = (Q,Σ,δ, q, F) je konečný automat bez nedosažitelných stavů.

Sjednocení ekvivalentních stavů - Shrnutí Necht M = (Q,Σ,δ, q, F) je konečný automat bez nedosažitelných stavů. Definice Stavy p, q nazveme jazykově ekvivalentní, psáno p q, pokud (p q x Σ : (ˆδ(p, x) F ˆδ(q, x) F))

Sjednocení ekvivalentních stavů - Shrnutí Definice Reduktem automatu M nazveme konečný automat M/ = (Q/,Σ,η,[q ], F/,) tj. automat, kde

Sjednocení ekvivalentních stavů - Shrnutí Definice Reduktem automatu M nazveme konečný automat M/ = (Q/,Σ,η,[q ], F/,) tj. automat, kde Stavy jsou třídy rozkladu Q/

Sjednocení ekvivalentních stavů - Shrnutí Definice Reduktem automatu M nazveme konečný automat M/ = (Q/,Σ,η,[q ], F/,) tj. automat, kde Stavy jsou třídy rozkladu Q/ Přechodová funkce η je nejmenší funkce splňující: (p, q Q), a Σ : δ(q, a) = p η([q], a) = [p]

Sjednocení ekvivalentních stavů - Shrnutí Definice Reduktem automatu M nazveme konečný automat M/ = (Q/,Σ,η,[q ], F/,) tj. automat, kde Stavy jsou třídy rozkladu Q/ Přechodová funkce η je nejmenší funkce splňující: (p, q Q), a Σ : δ(q, a) = p η([q], a) = [p] Stavy jsou třídy rozkladu Q/

Sjednocení ekvivalentních stavů - Shrnutí Definice Reduktem automatu M nazveme konečný automat M/ = (Q/,Σ,η,[q ], F/,) tj. automat, kde Stavy jsou třídy rozkladu Q/ Přechodová funkce η je nejmenší funkce splňující: (p, q Q), a Σ : δ(q, a) = p η([q], a) = [p] Stavy jsou třídy rozkladu Q/ Počáteční stav je třída rozkladu Q/ obsahující q.

Sjednocení ekvivalentních stavů - Shrnutí Definice Reduktem automatu M nazveme konečný automat M/ = (Q/,Σ,η,[q ], F/,) tj. automat, kde Stavy jsou třídy rozkladu Q/ Přechodová funkce η je nejmenší funkce splňující: (p, q Q), a Σ : δ(q, a) = p η([q], a) = [p] Stavy jsou třídy rozkladu Q/ Počáteční stav je třída rozkladu Q/ obsahující q. Koncové stavy jsou právě ty třídy rozkladu Q/, které obsahují alespoň jeden koncový stav.

Věta o isomorfismu Pro libovolné dva redukované konečné automaty jsou následující tvrzení ekvivalentní:

Věta o isomorfismu Pro libovolné dva redukované konečné automaty jsou následující tvrzení ekvivalentní: automaty jsou ekvivalentní

Věta o isomorfismu Pro libovolné dva redukované konečné automaty jsou následující tvrzení ekvivalentní: automaty jsou ekvivalentní automaty jsou isomorfní

Věta o isomorfismu Pro libovolné dva redukované konečné automaty jsou následující tvrzení ekvivalentní: automaty jsou ekvivalentní automaty jsou isomorfní Důsledky Dva redukty libovolných dvou ekvivalentních konečných automatů se shodují až na isomorfismus. Pro každý KA je jeho redukt určen až na isomorfismus jednoznačně.

Minimalizace KA - Příklad A nyní si vše předešlé názorně ukážeme na jednoduchém příkladu.

Minimalizace KA - Příklad q q q 2 q 5 q 8 q 4 q 7 q 3 q 6 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 Nyní začneme minimalizaci.

Minimalizace KA - Příklad q q q 2 q 5 q 8 q 4 q 7 q 3 q 6 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 V prvním kroku odstraníme nedosažitelné stavy pomocí algoritmu, který byl zmíněn výše. Zjistíme, že stavy q 5, q 6, q 7, q 8 jsou nedosažitelné a můžeme je vypustit.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 Nyní máme automat již bez nedosažitelných stavů. Můžeme tedy nalézt množiny vzájemně ekvivalentních stavů.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q, q 3, q 4 ),II : (q 2 ) Stavy automatu rozdělíme na dvě množiny, jedna množina I = (q, q, q 3, q 4 ) obsahuje stavy, které nejsou přijímací. Množina druhá II = (q 2 ) obsahuje stavy přijímací.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q, q 3, q 4 ),II : (q 2 ) q I I q II I q 3 I I q 4 II I q 2 I II Nyní vyplníme přechodovou tabulku symboly množiny ekvivalence.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q, q 3, q 4 ),II : (q 2 ) q I I q II I q 3 I I q 4 II I q 2 I II Z přechodové tabulky vyplývá, že se skupina I = (q, a, q 3, q 4 ) rozkládá na dvě podmnožiny -ekvivalentních stavů a to na (q, q 3 ) a (q, q 4 )

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q, q 3, q 4 ),II : (q 2 ) q I I q II I q 3 I I q 4 II I q 2 I II I : (q, q 3 ),II : (q, q 4 ),III : (q 2 ) Nyní máme tři množiny -ekvivalentních stavů. Stavy v těchto množinách jsou vzájemně rozlišitelné slovy délky nejvýše.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q, q 3, q 4 ),II : (q 2 ) I : (q, q 3 ),II : (q, q 4 ),III : (q 2 ) q I I q II I q 3 I I q 4 II I q 2 I II q II I q 3 II I q III II q 4 III II q 2 I III Nyní vyplníme přechodovou tabulku symboly množiny ekvivalence.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q, q 3, q 4 ),II : (q 2 ) I : (q, q 3 ),II : (q, q 4 ),III : (q 2 ) q I I q II I q 3 I I q 4 II I q 2 I II q II I q 3 II I q III II q 4 III II q 2 I III Žádná z těchto množin se již dále nerozkládá. Tj. stavy v nich jsou vzájemně 2-ekvivalentní.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q 3 ),II : (q, q 4 ),III : (q 2 ) q II I q 3 II I q III II q 4 III II q 2 I III I II I II III II III I III Nyní každou množinu ekvivalentních stavů nahradíme stavem jediným.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I : (q, q 3 ),II : (q, q 4 ),III : (q 2 ) I I II I II III II III I III III II A nyní vytvoříme automat podle přechodové tabulky.

Minimalizace KA - Příklad q q q 2 q 4 q 3 q q q q q 2 q q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 2 q 4 I I II I II III II III I III III II Daný minimalizovaný automat je jediný až na isomorfismus, tzn. různé pojmenování stavů. Toto můžeme odstranit převodem do normovaného tvaru.