@@ -24,15 +24,42 @@ Bílé znaky mezi jednotlivými identifikátory nemají na vyhodnocení automatu
Vyžaduje-li zadání úlohy kanonizaci automatu, použijte při pojmenovávání velká písmena anglické abecedy v lexikografickém pořadí. V případě potřeby více než 26 stavů následují vícemístné kombinace písmen: A, B, ..., Y, Z, AA, AB, ..., AZ, BA, BB, ..., ZY, ZZ, AAA, AAB, ... (jde o bijektivní poziční soustavu s bází 26).
### Příklady:
*`init=0 (0,a)=1 (0,b)=1 final={0,1}` (DFA s počátečním stavem `0`)
*`(q_0, a) = q_1 (q_0, b) = q_1 (q_1, a) = q_1 final = {q_1}` (DFA s počátečním stavem `q_0`)
*`init=in (in,a)={fst,snd} (fst,b)={snd} (snd,b)={fst} final={fst,snd}` (NFA s počátečním stavem `in`)
*`(0,ε)={1} final={}` (NFA s epsilon kroky, počátečním stavem `init` a žádnými koncovými stavy)
*`(A,"(a)")=B (A,b)=C`
`(B,"(a)")=A (B,b)=B`
`(C,"(a)")=C (C,b)=A`
`final={A}` (DFA s počátečním stavem `A`)
### Příklady
DFA s explicitně definovaným počátečním stavem `0`:
```
init=0
(0,a)=1 (0,b)=1
final={0,1}
```
DFA s implicitně definovaným počátečním stavem `q_0`:
```
(q_0, a) = q_1 (q_0, b) = q_1 (q_1, a) = q_1
final = {q_1}
```
NFA s počátečním stavem `in`:
```
init=in
(in,a)={fst,snd}
(fst,b)={snd}
(snd,b)={fst}
final={fst,snd}
```
NFA s epsilon kroky, počátečním stavem `0` a bez koncových stavů
```
(0,ε)={1} final={}
```
DFA s počátečním stavem `A` nad abecedou se znaky `(a)` a `b`:
```
(A,"(a)")=B (A,b)=C
(B,"(a)")=A (B,b)=B
(C,"(a)")=C (C,b)=A
final={A}
```
## Regulární výrazy
...
...
@@ -79,13 +106,22 @@ Jako prázdné slovo (ε) lze psát `ε` nebo `\e`. Pravidla pro různé netermi
### Příklady
*`S -> aS | aA | a; A -> bA | aS`
*`A -> aB'`
`A -> bA`
`B' -> aB'`
`B' -> a`
*`<init> -> a<00X> | a<ab> | ε`
`<ab> -> b`
```
S -> aS | aA | a; A -> bA | aS
```
```
A -> aB'
A -> bA
B' -> aB'
B' -> a
```
```
<init> → a<00X> | a<ab> | ε
<ab> → b
```
## Bezkontextové gramatiky
...
...
@@ -93,4 +129,13 @@ Jako prázdné slovo (ε) lze psát `ε` nebo `\e`. Pravidla pro různé netermi
Pro zápis CFG platí všechna pravidla jako pro regulární gramatiky kromě omezení tvaru pravé strany pravidel. Pravé strany pravidel nemusí být jen typu samotný terminál nebo dvojice terminál a neterminál, ale mohou obsahovat terminály i neterminály v libovolné kombinaci nebo ε.
### Příklad
*`S -> aAa | bBb | ε; A -> aAa | bab | bbb; B-> bBaBb | A | a`