Ano, jeden možný postup je převést automat nejprve na gramatiku, což bych řek, že je poměrně jednoduché, stačí v podstatě přepsat tabulku do tvaru gramatiky:
S -> 0S|1C|2E
A -> 0A|2A
B -> 0B|1D|2A|ε
C -> 0C|1E|2B
D -> 0D|1A
E -> 0E|1B|2D
Aby to byla regulární gramatika, bylo by potřeba zbavit se ε-pravidel, ale to v tomhle případě není potřeba, protože ji rovnou převedeme na regulární rovnice, kde to nevadí:
S = 0S+1C+2E
A = 0A+2A
B = 0B+1D+2A+ε
C = 0C+1E+2B
D = 0D+1A
E = 0E+1B+2D
Ono už na začátku lze zjistit, že stavy A a D jsou takzvaně zbytečné, ale ukáže se to i tím, že v rovnicích vyjde A = Ø, D = Ø. Celé mi to vyšlo takto:
S = 0*(10*(10*10*+20*)+20*10*)
Ale neručím, že je to správně, protože jsem to dělal dost narychlo.
2 | No.2 Revision |
Ano, jeden možný postup je převést automat nejprve na gramatiku, což bych řek, že je poměrně jednoduché, stačí v podstatě přepsat tabulku do tvaru gramatiky:
S -> 0S|1C|2E
A -> 0A|2A
B -> 0B|1D|2A|ε
C -> 0C|1E|2B
D -> 0D|1A
E -> 0E|1B|2D
Jediné, na co se nesmí zapomenout je, že do koncových stavů (B) se přidá ε pravidlo.
Aby to byla regulární gramatika, bylo by potřeba zbavit se ε-pravidel, ale to v tomhle případě není potřeba, protože ji rovnou převedeme na regulární rovnice, kde to nevadí:
S = 0S+1C+2E
A = 0A+2A
B = 0B+1D+2A+ε
C = 0C+1E+2B
D = 0D+1A
E = 0E+1B+2D
Ono už na začátku lze zjistit, že stavy A a D jsou takzvaně zbytečné, ale ukáže se to i tím, že v rovnicích vyjde A = Ø, D = Ø. Celé mi to vyšlo takto:
S = 0*(10*(10*10*+20*)+20*10*)
Ale neručím, že je to správně, protože jsem to dělal dost narychlo.