Rozšířené formáty textových souborů s příponou TI2
pro datovou reprezentaci objektů

 

 

Deterministický konečný automat  (rozpoznávací)

 

      DKAR#  //  Typ souboru

6 //  Počet prvků množiny stavů,  stavy  jsou pak implicitně S1,S2,S3,S4,S5,S6

7 //  Počet prvků množiny vstupů,  vstupy jsou pak implicitně  1, 2, 3, 4, 5, 6, -7

// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami

S1# S1 S3 S1 S1 S2 S3 S5

S2# S1 S3 S4 S1 S1 S2 S5

S3# S1 S1 S2 S3 S4 S1 S5

S4# S1 S3 S6 S1 S1 S2 S4

S5# S3 S4 S1 S1 S2 S2 S4

S6# S1 S4 S2 S5 S4 S3 S4

S4   // Počáteční stav

3   S1 S3 S5    //  Počet koncových stavů a koncové stavy

 

 

Deterministický konečný automat  (klasifikační)

 

      DKAK#  //  Typ souboru

6//  Počet prvků množiny stavů,  stavy  jsou pak implicitně S1,S2,S3,S4,S5,S6

7//  Počet prvků množiny vstupů,  vstupy jsou pak implicitně  1, 2, 3, 4, 5, 6, 7

// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami

S1# S1 S3 S1 S1 S2 S3 S5

S2# S1 S3 S4 S1 S1 S2 S5

S3# S1 S1 S2 S3 S4 S1 S5

S4# S1 S3 S4 S1 S1 S2 S4

S5# S3 S4 S1 S1 S2 S6 S4

S6# S1 S4 S2 S5 S4 S3 S4

S4   // Počáteční stav

3    // Počet bloků rozkladu

3  S1 S4  S2    // Počet stavů v prvním bloku rozkladu a stavy v prvním bloku rozkladu

1  S3   // Počet stavů v prvním bloku rozkladu a stavy v prvním bloku rozkladu

2  S5 S6  // Počet stavů v prvním bloku rozkladu a stavy v prvním bloku rozkladu

 

 


Deterministický konečný automat  (s výstupní funcí Mealyho)

 

 

      DKAME#  //  Typ souboru

6  //  Počet prvků množiny stavů, stavy jsou pak implicitně  S1, S2, S3, S4, S5, S6

7  //  Počet prvků množiny vstupů, vstupy jsou pak implicitně 1,2,3,4,5,6,7

// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami

S1# S1 S3 S1 S1 S2 S3 S5

S2# S1 S3 S4 S1 S1 S2 S5

S3# S1 S1 S2 S3 S4 S1 S5

S4# S1 S3 S4 S1 S1 S2 S4

S5# S3 S4 S1 S1 S2 S6 S4

S6# S1 S4 S2 S5 S4 S3 S4

S4   // Počáteční stav

6  //  Počet prvků množiny výstupů, výstupy jsou pak implicitně  1,2,3,4,5,6

// Výstupní funkce má 6 řádků, v každém bude 7 stavů oddělených mezerami

S1# 1  5  6  3  4  2  3

S2# 5  6  3  2  4  1  6

S3# 4  3  2  6  1  5  4

S4# 5  4  2  6  3  1  1

S5# 5  2  2  3  6  4  2

S6# 5  6  2  2  2  4  3

 

 

 

Deterministický konečný automat  (s výstupní funkcí Moorův)

 

 

      DKAMO#  //  Typ souboru

6  //  Počet prvků množiny stavů, stavy jsou pak implicitně  S1, S2, S3, S4, S5, S6

7  //  Počet prvků množiny vstupů, vstupy jsou pak implicitně 1,2,3,4,5,6,7

// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami

S1# S1 S3 S1 S1 S2 S3 S5

S2# S1 S3 S4 S1 S1 S2 S5

S3# S1 S1 S2 S3 S4 S1 S5

S4# S1 S3 S4 S1 S1 S2 S4

S5# S3 S4 S1 S1 S2 S6 S4

S6# S1 S4 S2 S5 S4 S3 S4

S4   // Počáteční stav

4  //  Počet prvků množiny výstupů, výstupy jsou pak implicitně  1,2,3,4

// Tabulka výstupní funkce má pro každý stav jeden výstupní. Výstupy postupně přísluší stavům S1, S2, S3, S4, S5, S6

S1#2

S2#1

S3#1

S4#4

S5#4

S6#1


Nedeterministický konečný automat (rozpoznávací)

 

      NKAR#  //  Typ souboru

6  //  Počet prvků množiny stavů, stavy jsou pak implicitně  S1, S2, S3, S4, S5, S6

7  //  Počet prvků množiny vstupů, vstupy jsou pak implicitně 1,2,3,4,5,6,7

// Přechodová tabulka bude mít 6 řádků, v každém bude 7 nebo 8 množin stavů oddělených mezerami; I jednoprvkové množiny lze psát do množinových závorek, ale není to nutné, programy musí být schopny pracovat s oběma variantami, případná osmá množina představuje hodnotu přechodové funkce pro prázdný řetězec, který budeme kódovat jako  $

 

S1# {S1 S2 S3} {S3 S1} S1 S1 S2 S3 S6

S2# S1 S3 S4 S1 S1 S2 S5

S3# S1 S1 S2 S3 S4 S1 S5

S4# S1 S3 S4 S1 S1 S2 S4

S5# S3 S4 S1 S1 S2 S2 S4

S6# S1 S4 S1 {S2 S3 S4} S5 S6 {S5 S6}

2  S4  S1  // Počet počátečních stavů, počáteční stavy

3  S1 S3 S5    //  Počet koncových stavů a koncové stavy

 

 

 

Gramatika obecná

 

      G#  //  Typ souboru

2        //  Počet prvků množiny neterminálních symbolů,  neterminály jsou pak implicitně
//  N1, N2

2        //  Počet prvků množiny terminálních symbolů, výstupy jsou pak implicitně  t1, t2
//  prázdný řetězec budeme kódovat jako $

N1   // Počáteční symbol

// Přepisovací pravidla

t1t1N1 -> t1t1N2 |  t2t1N2 |  $

t1N2t1 -> t1t1N1 |  t2t1N2 |  $

 

 

Gramatika typu 3 pravá

 

G3P#  //  Typ souboru

3        //  Počet prvků množiny neterminálních symbolů,  neterminály jsou pak implicitně
//  N1,N2, N3

3        //  Počet prvků množiny terminálních symbolů, výstupy jsou pak implicitně  t1, t2, t3
//  prázdný řetězec budeme kódovat jako $

N1   // Počáteční symbol

// Přepisovací pravidla

N1 -> t1t1N2 |  t2t3N2 |  $

N2 -> t1t1N1 |  t3t1N2

N3 -> t3t3t3 |  $

 

Gramatika typu 3 pravá v regulárním tvaru

 

G3PR#  //  Typ souboru

2  //  Počet prvků množiny neterminálních symbolů,  neterminály jsou pak implicitně
//  N1,N2

3  //  Počet prvků množiny terminálních symbolů, terminály jsou pak implicitně  t1, t2, t3
//  prázdný řetězec budeme kódovat jako $

N1   // Počáteční symbol

// Přepisovací pravidla

N1 -> t1N2 |  t3N1 |  $

N2 -> t1N1 |  t3N2 |  $

 

 

Gramatika typu 3 levá

 

G3L#  //  Typ souboru

4        //  Počet prvků množiny neterminálních symbolů,  neterminály jsou pak implicitně
//  N1,N2, N3

4        //  Počet prvků množiny terminálních symbolů, výstupy jsou pak implicitně  t1, t2, t3
//  prázdný řetězec budeme kódovat jako $

N1   // Počáteční symbol

// Přepisovací pravidla

N1 -> N2 t1t1 |  N2 t2t3 |  $

N2 -> N1 t1t1 |  N2 t3t1

N3 -> t3t3t3 |  $

 

Gramatika typu 3 levá v regulárním tvaru

 

G3LR#  //  Typ souboru

2  //  Počet prvků množiny neterminálních symbolů,  neterminály jsou pak implicitně
//  N1,N2

3  //  Počet prvků množiny terminálních symbolů, terminály jsou pak implicitně  t1, t2, t3
//  prázdný řetězec budeme kódovat jako $

N1   // Počáteční symbol

// Přepisovací pravidla

N1 -> N2 t1 |  N1 t3 |  $

N2 -> N1 t1 |  N2 t3 |  $