Automatové modely Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Stefan Ratschan (FIT ČVUT) MI-MAS 3 1 / 13
Základ: Přechodový systém Příklad: Vlakové dveře (zavřené, otevírající, otevřené, zavírající). Stefan Ratschan (FIT ČVUT) MI-MAS 3 2 / 13
Základ: Přechodový systém Příklad: Vlakové dveře (zavřené, otevírající, otevřené, zavírající). Přechodový systém je trojicí (S, S 0, R), přičemž S je množinou, jejichž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) R S S (přechodová relace) Stefan Ratschan (FIT ČVUT) MI-MAS 3 2 / 13
Základ: Přechodový systém Příklad: Vlakové dveře (zavřené, otevírající, otevřené, zavírající). Přechodový systém je trojicí (S, S 0, R), přičemž S je množinou, jejichž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) R S S (přechodová relace) Cesta přechodového systému (S, S 0, R) je nekonečná posloupnost stavů s 0 s 1 s 2... tak, že s 0 S 0, pro každé i {0, 1,... }, (s i, s i+1 ) R. Cesty tvoří výpočetní stromy (computation trees). Stefan Ratschan (FIT ČVUT) MI-MAS 3 2 / 13
Základ: Přechodový systém Příklad: Vlakové dveře (zavřené, otevírající, otevřené, zavírající). Přechodový systém je trojicí (S, S 0, R), přičemž S je množinou, jejichž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) R S S (přechodová relace) Cesta přechodového systému (S, S 0, R) je nekonečná posloupnost stavů s 0 s 1 s 2... tak, že s 0 S 0, pro každé i {0, 1,... }, (s i, s i+1 ) R. Cesty tvoří výpočetní stromy (computation trees). Stefan Ratschan (FIT ČVUT) MI-MAS 3 2 / 13
Vlastnosti přechodových systémů Přechodový systém je deterministický, pokud pro každé s S, existuje přesně jedno s S tak, že (s, s ) R Stefan Ratschan (FIT ČVUT) MI-MAS 3 3 / 13
Vlastnosti přechodových systémů Přechodový systém je deterministický, pokud pro každé s S, existuje přesně jedno s S tak, že (s, s ) R Poznámka: Tím pádem lze přechodovou relaci chápat jako přechodovou funkci. Stefan Ratschan (FIT ČVUT) MI-MAS 3 3 / 13
Vlastnosti přechodových systémů Přechodový systém je deterministický, pokud pro každé s S, existuje přesně jedno s S tak, že (s, s ) R Poznámka: Tím pádem lze přechodovou relaci chápat jako přechodovou funkci. Nedeterminismus dovolujeme (např. pro modelování vstupů), ale žádáme aby přechodová relace byla totální t.j. pro každé s S, existuje s S tak, že (s, s ) R Stefan Ratschan (FIT ČVUT) MI-MAS 3 3 / 13
Vlastnosti přechodových systémů Přechodový systém je deterministický, pokud pro každé s S, existuje přesně jedno s S tak, že (s, s ) R Poznámka: Tím pádem lze přechodovou relaci chápat jako přechodovou funkci. Nedeterminismus dovolujeme (např. pro modelování vstupů), ale žádáme aby přechodová relace byla totální t.j. pro každé s S, existuje s S tak, že (s, s ) R Proč nemáme žádnou množinu přijímajících stavů? (viz. klasické konečné automaty) Stefan Ratschan (FIT ČVUT) MI-MAS 3 3 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Nejdřív: komunikace Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Nejdřív: komunikace, vstup, výstup Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Nejdřív: komunikace, vstup, výstup Vstupní/výstupní automat (transduktor) je n-ticí (S, S 0, I, O, R), přičemž S je množinou, jejíž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Nejdřív: komunikace, vstup, výstup Vstupní/výstupní automat (transduktor) je n-ticí (S, S 0, I, O, R), přičemž S je množinou, jejíž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) I je množinou jejíž prvky budeme nazývat vstupy O je množinou jejíž prvky budeme nazývat výstupy Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Nejdřív: komunikace, vstup, výstup Vstupní/výstupní automat (transduktor) je n-ticí (S, S 0, I, O, R), přičemž S je množinou, jejíž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) I je množinou jejíž prvky budeme nazývat vstupy O je množinou jejíž prvky budeme nazývat výstupy R I S S O (přechodová relace) Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Nejdřív: komunikace, vstup, výstup Vstupní/výstupní automat (transduktor) je n-ticí (S, S 0, I, O, R), přičemž S je množinou, jejíž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) I je množinou jejíž prvky budeme nazývat vstupy O je množinou jejíž prvky budeme nazývat výstupy R I S S O (přechodová relace) Cesty by měly pro každý krok obsahovat jeden vstup a jeden výstup. Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Modelování souběžných komponent Systémy se obvykle skládají z množství různých komponent. Tyto komponenty se vzájemně ovlivňují. Jak toto modelovat? Nejdřív: komunikace, vstup, výstup Vstupní/výstupní automat (transduktor) je n-ticí (S, S 0, I, O, R), přičemž S je množinou, jejíž prvky budeme nazývat stavy S 0 S (množina počátečních stavů) I je množinou jejíž prvky budeme nazývat vstupy O je množinou jejíž prvky budeme nazývat výstupy R I S S O (přechodová relace) Cesty by měly pro každý krok obsahovat jeden vstup a jeden výstup. Různé ekvivalentní varianty (např: přechody na základě množin, výstupy zvlášt ). Stefan Ratschan (FIT ČVUT) MI-MAS 3 4 / 13
Synchronizovaná paralelní kompozice Kompozice: Operace, která z více (vstupních) automatů sestaví nový (výstupní) automat. Stefan Ratschan (FIT ČVUT) MI-MAS 3 5 / 13
Synchronizovaná paralelní kompozice Kompozice: Operace, která z více (vstupních) automatů sestaví nový (výstupní) automat. Paralelní: vstupní automaty v novém automatu pracují paralelně. Stefan Ratschan (FIT ČVUT) MI-MAS 3 5 / 13
Synchronizovaná paralelní kompozice Kompozice: Operace, která z více (vstupních) automatů sestaví nový (výstupní) automat. Paralelní: vstupní automaty v novém automatu pracují paralelně. Synchronizovaná kompozice: Vstupní automaty vždy dělají jeden krok spolu. Stefan Ratschan (FIT ČVUT) MI-MAS 3 5 / 13
Synchronizovaná paralelní kompozice Kompozice: Operace, která z více (vstupních) automatů sestaví nový (výstupní) automat. Paralelní: vstupní automaty v novém automatu pracují paralelně. Synchronizovaná kompozice: Vstupní automaty vždy dělají jeden krok spolu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = (S 1 S 2, S 1 0 S 2 0, I 1 I 2, O 1 O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 5 / 13
Synchronizovaná paralelní kompozice Kompozice: Operace, která z více (vstupních) automatů sestaví nový (výstupní) automat. Paralelní: vstupní automaty v novém automatu pracují paralelně. Synchronizovaná kompozice: Vstupní automaty vždy dělají jeden krok spolu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (S 1 S 2, S 1 0 S 2 0, I 1 I 2, O 1 O 2, R ), (i 1 i 2, s 1 s 2, s 1 s 2, o 1 o 2 ) R právě když (i 1, s 1, s 1, o 1 ) R 1 i (i 2, s 2, s 2, o 2 ) R 2 Stefan Ratschan (FIT ČVUT) MI-MAS 3 5 / 13
Synchronizovaná paralelní kompozice Kompozice: Operace, která z více (vstupních) automatů sestaví nový (výstupní) automat. Paralelní: vstupní automaty v novém automatu pracují paralelně. Synchronizovaná kompozice: Vstupní automaty vždy dělají jeden krok spolu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (S 1 S 2, S 1 0 S 2 0, I 1 I 2, O 1 O 2, R ), (i 1 i 2, s 1 s 2, s 1 s 2, o 1 o 2 ) R právě když Může se zobecnit na více automatů. (i 1, s 1, s 1, o 1 ) R 1 i (i 2, s 2, s 2, o 2 ) R 2 Stefan Ratschan (FIT ČVUT) MI-MAS 3 5 / 13
Nesynchronizovaná paralelní kompozice Příklad: dvojitá výrobní linka, jeden z dvou robotů reaguje, varovný signál. Stefan Ratschan (FIT ČVUT) MI-MAS 3 6 / 13
Nesynchronizovaná paralelní kompozice Příklad: dvojitá výrobní linka, jeden z dvou robotů reaguje, varovný signál. Vstupní automaty můžou dělat nezávislé kroky. (S 1, S0 1, I 1, O 1, R 1 ) (S 2, S0 2, I 2, O 2, R 2 ) = (S 1 S 2, S0 1 S0 2, I 1 I 2, O 1 O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 6 / 13
Nesynchronizovaná paralelní kompozice Příklad: dvojitá výrobní linka, jeden z dvou robotů reaguje, varovný signál. Vstupní automaty můžou dělat nezávislé kroky. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i 1 i 2, s 1 s 2, s 1 s 2, o) R právě když (S 1 S 2, S 1 0 S 2 0, I 1 I 2, O 1 O 2, R ), (i 1, s 1, s 1, o) R 1, s 2 = s 2 anebo (i 2, s 2, s 2, o) R 2, s 1 = s 1 Stefan Ratschan (FIT ČVUT) MI-MAS 3 6 / 13
Nesynchronizovaná paralelní kompozice Příklad: dvojitá výrobní linka, jeden z dvou robotů reaguje, varovný signál. Vstupní automaty můžou dělat nezávislé kroky. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i 1 i 2, s 1 s 2, s 1 s 2, o) R právě když Výsledek nutně nedeterministický! (S 1 S 2, S 1 0 S 2 0, I 1 I 2, O 1 O 2, R ), (i 1, s 1, s 1, o) R 1, s 2 = s 2 anebo (i 2, s 2, s 2, o) R 2, s 1 = s 1 Stefan Ratschan (FIT ČVUT) MI-MAS 3 6 / 13
Nesynchronizovaná paralelní kompozice Příklad: dvojitá výrobní linka, jeden z dvou robotů reaguje, varovný signál. Vstupní automaty můžou dělat nezávislé kroky. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i 1 i 2, s 1 s 2, s 1 s 2, o) R právě když (S 1 S 2, S 1 0 S 2 0, I 1 I 2, O 1 O 2, R ), (i 1, s 1, s 1, o) R 1, s 2 = s 2 anebo (i 2, s 2, s 2, o) R 2, s 1 = s 1 Výsledek nutně nedeterministický! R vs. R + nedeterministický výběr! Stefan Ratschan (FIT ČVUT) MI-MAS 3 6 / 13
Nesynchronizovaná paralelní kompozice Příklad: dvojitá výrobní linka, jeden z dvou robotů reaguje, varovný signál. Vstupní automaty můžou dělat nezávislé kroky. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i 1 i 2, s 1 s 2, s 1 s 2, o) R právě když (S 1 S 2, S 1 0 S 2 0, I 1 I 2, O 1 O 2, R ), (i 1, s 1, s 1, o) R 1, s 2 = s 2 anebo (i 2, s 2, s 2, o) R 2, s 1 = s 1 Výsledek nutně nedeterministický! R vs. R + nedeterministický výběr! Různé varianty, např. s možností současné (ne)reakce obou vstupních automatů + symbol nic Stefan Ratschan (FIT ČVUT) MI-MAS 3 6 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Výstup prvního automatu = vstup druhého automatu. Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Výstup prvního automatu = vstup druhého automatu. (S 1, S0 1, I 1, O 1, R 1 ) (S 2, S0 2, I 2, O 2, R 2 ) = (S 1 S 2, S0 1 S0 1, I 1, O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Výstup prvního automatu = vstup druhého automatu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i, s 1 s 2, s 1 s 2, o) R právě když existuje x I 2 tak, že (S 1 S 2, S 1 0 S 1 0, I 1, O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Výstup prvního automatu = vstup druhého automatu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i, s 1 s 2, s 1 s 2, o) R právě když existuje x I 2 tak, že (i, s 1, s 1, x) R 1 i (x, s 2, s 2, o) R 2. (S 1 S 2, S 1 0 S 1 0, I 1, O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Výstup prvního automatu = vstup druhého automatu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i, s 1 s 2, s 1 s 2, o) R právě když existuje x I 2 tak, že (i, s 1, s 1, x) R 1 i (x, s 2, s 2, o) R 2. Podmínka: (S 1 S 2, S 1 0 S 1 0, I 1, O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Výstup prvního automatu = vstup druhého automatu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i, s 1 s 2, s 1 s 2, o) R právě když existuje x I 2 tak, že (i, s 1, s 1, x) R 1 i (x, s 2, s 2, o) R 2. Podmínka: I 2 O 1 (S 1 S 2, S 1 0 S 1 0, I 1, O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Kaskádní kompozice Určité chování komponent může vyvolat reakce jiných komponent. Výstup prvního automatu = vstup druhého automatu. (S 1, S 1 0, I 1, O 1, R 1 ) (S 2, S 2 0, I 2, O 2, R 2 ) = přičemž (i, s 1 s 2, s 1 s 2, o) R právě když existuje x I 2 tak, že (i, s 1, s 1, x) R 1 i (x, s 2, s 2, o) R 2. Podmínka: I 2 O 1 A 1 A 2 A 2 A 1! (S 1 S 2, S 1 0 S 1 0, I 1, O 2, R ), Stefan Ratschan (FIT ČVUT) MI-MAS 3 7 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Paralelní kompozice: Více vstupů a výstupů (místo Kartézského součinu) Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Paralelní kompozice: Více vstupů a výstupů (místo Kartézského součinu) Další prvek: Rozvaděč Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Paralelní kompozice: Více vstupů a výstupů (místo Kartézského součinu) Další prvek: Rozvaděč Lze formálně definovat, ale nebudeme. Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Paralelní kompozice: Více vstupů a výstupů (místo Kartézského součinu) Další prvek: Rozvaděč Lze formálně definovat, ale nebudeme. Pozor: smyčky! Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Paralelní kompozice: Více vstupů a výstupů (místo Kartézského součinu) Další prvek: Rozvaděč Lze formálně definovat, ale nebudeme. Pozor: smyčky! Tady: Nejdřív stav, potom tok informací Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Paralelní kompozice: Více vstupů a výstupů (místo Kartézského součinu) Další prvek: Rozvaděč Lze formálně definovat, ale nebudeme. Pozor: smyčky! Tady: Nejdřív stav, potom tok informací Alternativní modely (data-flow): Nejdřív tok informací, potom stav. Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Obecná kompozice Libovolné připojení vstupů a výstupů. Obvykle na základě grafické notace (pozor: notace přechodů automatů!) Paralelní kompozice: Více vstupů a výstupů (místo Kartézského součinu) Další prvek: Rozvaděč Lze formálně definovat, ale nebudeme. Pozor: smyčky! Tady: Nejdřív stav, potom tok informací Alternativní modely (data-flow): Nejdřív tok informací, potom stav. Stav: Pamět ový prvek Stefan Ratschan (FIT ČVUT) MI-MAS 3 8 / 13
Hierarchické automaty Viz. Wikipedia UML state machine Stefan Ratschan (FIT ČVUT) MI-MAS 3 9 / 13
Hierarchické automaty Viz. Wikipedia UML state machine Stefan Ratschan (FIT ČVUT) MI-MAS 3 9 / 13
Hierarchické automaty Viz. Wikipedia UML state machine Rekurzivní skrývání vs. modelování podrobností (viz. abstrakce). Stefan Ratschan (FIT ČVUT) MI-MAS 3 9 / 13
Hierarchické automaty Viz. Wikipedia UML state machine Rekurzivní skrývání vs. modelování podrobností (viz. abstrakce). Základ pro formalismus Statecharts [Harel, 1987]. Stefan Ratschan (FIT ČVUT) MI-MAS 3 9 / 13
Hierarchické automaty Viz. Wikipedia UML state machine Rekurzivní skrývání vs. modelování podrobností (viz. abstrakce). Základ pro formalismus Statecharts [Harel, 1987]. Různé varianty [von der Beeck, 1994]. Stefan Ratschan (FIT ČVUT) MI-MAS 3 9 / 13
Hierarchické automaty Viz. Wikipedia UML state machine Rekurzivní skrývání vs. modelování podrobností (viz. abstrakce). Základ pro formalismus Statecharts [Harel, 1987]. Různé varianty [von der Beeck, 1994]. Základ pro UML State Machines Stefan Ratschan (FIT ČVUT) MI-MAS 3 9 / 13
Specifikace a Automatická Analýza Splňuje daný automat požadavky? Stefan Ratschan (FIT ČVUT) MI-MAS 3 10 / 13
Specifikace a Automatická Analýza Splňuje daný automat požadavky? Např.: Nikdy nedosáhne stavu výbuch. Stefan Ratschan (FIT ČVUT) MI-MAS 3 10 / 13
Specifikace a Automatická Analýza Splňuje daný automat požadavky? Např.: Nikdy nedosáhne stavu výbuch. Jazyky pro specifikaci vlastností automatů: Temporální Logiky (viz. příští přednáška). Stefan Ratschan (FIT ČVUT) MI-MAS 3 10 / 13
Specifikace a Automatická Analýza Splňuje daný automat požadavky? Např.: Nikdy nedosáhne stavu výbuch. Jazyky pro specifikaci vlastností automatů: Temporální Logiky (viz. příští přednáška). Automatická analýza? Stefan Ratschan (FIT ČVUT) MI-MAS 3 10 / 13
Specifikace a Automatická Analýza Splňuje daný automat požadavky? Např.: Nikdy nedosáhne stavu výbuch. Jazyky pro specifikaci vlastností automatů: Temporální Logiky (viz. příští přednáška). Automatická analýza? Pozorování: až dosud jsme mohli mít nekonečný počet stavů! Stefan Ratschan (FIT ČVUT) MI-MAS 3 10 / 13
Specifikace a Automatická Analýza Splňuje daný automat požadavky? Např.: Nikdy nedosáhne stavu výbuch. Jazyky pro specifikaci vlastností automatů: Temporální Logiky (viz. příští přednáška). Automatická analýza? Pozorování: až dosud jsme mohli mít nekonečný počet stavů! Pro konečné automaty: (víceméně) všechno rozhodnutelné. Stefan Ratschan (FIT ČVUT) MI-MAS 3 10 / 13
Specifikace a Automatická Analýza Splňuje daný automat požadavky? Např.: Nikdy nedosáhne stavu výbuch. Jazyky pro specifikaci vlastností automatů: Temporální Logiky (viz. příští přednáška). Automatická analýza? Pozorování: až dosud jsme mohli mít nekonečný počet stavů! Pro konečné automaty: (víceméně) všechno rozhodnutelné. Pro nekonečný počet stavu je situace složitější. Stefan Ratschan (FIT ČVUT) MI-MAS 3 10 / 13
Omezení konečných automatů Nemůžeme čítat! (N není konečná množina) Stefan Ratschan (FIT ČVUT) MI-MAS 3 11 / 13
Omezení konečných automatů Nemůžeme čítat! (N není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na čas (R není konečná množina) Stefan Ratschan (FIT ČVUT) MI-MAS 3 11 / 13
Omezení konečných automatů Nemůžeme čítat! (N není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na čas (R není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na fyzikální hodnoty (např. teplota, tlak, rychlost) Stefan Ratschan (FIT ČVUT) MI-MAS 3 11 / 13
Omezení konečných automatů Nemůžeme čítat! (N není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na čas (R není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na fyzikální hodnoty (např. teplota, tlak, rychlost) Jediná možnost: diskretizace, např. teplota T [0, 10], T [10, 20], T [20, ] Stefan Ratschan (FIT ČVUT) MI-MAS 3 11 / 13
Omezení konečných automatů Nemůžeme čítat! (N není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na čas (R není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na fyzikální hodnoty (např. teplota, tlak, rychlost) Jediná možnost: diskretizace, např. teplota T [0, 10], T [10, 20], T [20, ] Často: Konečný, ale obrovský počet stavů (např. čítač s horní mezí). Stefan Ratschan (FIT ČVUT) MI-MAS 3 11 / 13
Omezení konečných automatů Nemůžeme čítat! (N není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na čas (R není konečná množina) Nemůžeme modelovat (libovolně přesné) požadavky na fyzikální hodnoty (např. teplota, tlak, rychlost) Jediná možnost: diskretizace, např. teplota T [0, 10], T [10, 20], T [20, ] Často: Konečný, ale obrovský počet stavů (např. čítač s horní mezí). Další přednášky: účinné zacházení s velkým počtem stavů. Stefan Ratschan (FIT ČVUT) MI-MAS 3 11 / 13
Proměnné Příklad: čítač x {0,..., 2 32 1}, vstupy {+, }, výstupy {ok, přetečení} Stefan Ratschan (FIT ČVUT) MI-MAS 3 12 / 13
Proměnné Příklad: čítač x {0,..., 2 32 1}, vstupy {+, }, výstupy {ok, přetečení} Přechodová relace: {(+, 0, 1, ok), (, 0, 0, přetečení), (+, 1, 2, ok),... }? Stefan Ratschan (FIT ČVUT) MI-MAS 3 12 / 13
Proměnné Příklad: čítač x {0,..., 2 32 1}, vstupy {+, }, výstupy {ok, přetečení} Přechodová relace: {(+, 0, 1, ok), (, 0, 0, přetečení), (+, 1, 2, ok),... }? Pohodlnější: {(+, x, x + 1, ok) x < 2 32 1} {(+, x, x, přetečení) x = 2 32 1} {(, x, x 1, ok) x > 0} {(, x, x, ok) x = 0} Stefan Ratschan (FIT ČVUT) MI-MAS 3 12 / 13
Proměnné Příklad: čítač x {0,..., 2 32 1}, vstupy {+, }, výstupy {ok, přetečení} Přechodová relace: {(+, 0, 1, ok), (, 0, 0, přetečení), (+, 1, 2, ok),... }? Pohodlnější: {(+, x, x + 1, ok) x < 2 32 1} {(+, x, x, přetečení) x = 2 32 1} {(, x, x 1, ok) x > 0} {(, x, x, ok) x = 0} Grafická notace: Podmínky a nové hodnoty píšeme na hrany (guards, updates). Stefan Ratschan (FIT ČVUT) MI-MAS 3 12 / 13
Literatura David Harel. Statecharts: a visual formalism for complex systems. Science of Computer Programming, 8(3):231 274, 1987. Edward A. Lee and Sanjit A. Seshia. Introduction to Embedded Systems, A Cyber-Physical Systems Approach. http://leeseshia.org, 2011. Michael von der Beeck. A comparison of Statecharts variants. In Hans Langmaack, Willem-Paul de Roever, and Jan Vytopil, editors, Formal Techniques in Real-Time and Fault-Tolerant Systems, volume 863 of Lecture Notes in Computer Science, pages 128 148. Springer Berlin / Heidelberg, 1994. Stefan Ratschan (FIT ČVUT) MI-MAS 3 13 / 13