Hodiny (kontrola modelu) - Clock (model checking)
v kontrola modelu, podpole z počítačová věda, a hodiny je matematický objekt používaný k modelování času. Přesněji řečeno, hodiny měří, kolik času uplynulo od určité události, v tomto smyslu jsou hodiny přesněji abstrakcí stopky. V modelu určitého konkrétního programu může být hodnotou hodin buď čas od spuštění programu, nebo čas od okamžiku, kdy v programu došlo k určité události. Tyto hodiny se používají v definici časovaný automat, signální automat, časovaná výroková časová logika a časová logika hodin. Používají se také v programech, jako jsou UPPAAL které implementují časované automaty.[1]
Obecně platí, že model systému používá mnoho hodin. Tyto vícenásobné hodiny jsou nutné, aby bylo možné sledovat omezený počet událostí. Všechny tyto hodiny jsou synchronizovány. To znamená, že rozdíl v hodnotě mezi dvěma pevnými hodinami je konstantní, dokud není jeden z nich restartován. V jazyce elektroniky to znamená, že hodiny chvění je null.
Příklad
Předpokládejme, že chceme modelovat výtah v budově s deseti podlažími. Náš model může mít hodiny , takže hodnota hodin je čas, kdy někdo čekal na výtah v patře . Tyto hodiny se spustí, když někdo zavolá výtahem v patře (a výtah nebyl v tomto patře od poslední návštěvy tohoto patra již spuštěn). Tyto hodiny lze vypnout, když výtah dorazí na podlahu . V tomto příkladu vlastně potřebujeme deset odlišných hodin, protože potřebujeme sledovat deset nezávislých událostí. Další hodiny lze použít ke kontrole, kolik času strávil výtah v konkrétním patře.
Model tohoto výtahu pak může pomocí těchto hodin tvrdit, zda program výtahu splňuje vlastnosti, jako například „za předpokladu, že výtah není udržován na podlaze déle než patnáct sekund, pak na něj nemusí nikdo čekat déle než tři minuty ". Aby bylo možné zkontrolovat, zda toto tvrzení platí, stačí zkontrolovat, že při každém spuštění modelu, ve kterém hodiny je vždy menší než patnáct sekund, každé hodiny je vypnutý, než dosáhne tří minut.
Definice
Formálně sada hodin je prostě konečná sada[1]:191. Každý prvek sady hodin se nazývá hodiny. Intuitivně jsou hodiny podobné proměnné v logika prvního řádu, je to prvek, který lze použít v logickém vzorci a který může mít řadu různých hodnot.
Oceňování hodin
A ocenění hodin nebo interpretace hodin[1]:193 přes je obvykle definována jako funkce z do souboru nezáporných reálných. Ekvivalentně lze ocenění považovat za bod v .
The počáteční přiřazení je konstantní funkce posílající každé hodiny na 0. Intuitivně představuje počáteční čas programu, kde jsou všechny hodiny inicializovány současně.
Vzhledem k přiřazení hodin a skutečný , označuje přiřazení hodin odesílajících každé hodiny na . Intuitivně představuje ocenění po čemž uplynuly časové jednotky.
Vzhledem k podmnožině hodin, označuje přiřazení podobné ve kterém hodiny jsou resetovány. Formálně, odešle každé hodiny na 0 a každé hodiny na .
Neaktivní hodiny
Program UPPAAL zavést pojem neaktivní hodiny.[2] Hodiny jsou v určitém čase neaktivní, pokud neexistuje budoucnost, ve které by byla kontrolována hodnota hodin, aniž by byly nejprve resetovány. V našem příkladu výše hodiny je považováno za neaktivní, když výtah dorazí do patra , a zůstane neaktivní, dokud někdo nezavolá výtahem v patře .
Při povolení neaktivních hodin může ocenění přiřadit hodiny na nějakou zvláštní hodnotu k označení, že je neaktivní. Li pak také se rovná .
Omezení hodin
An omezení atomových hodin je prostě termín formy , kde jsou hodiny, je operátor porovnání, například <, ≤, = ≥ nebo>, a je integrální konstanta. V našem předchozím příkladu můžeme použít omezení atomových hodin uvést, že osoba v patře čekal méně než tři minuty a prohlásit, že výtah zůstal v nějakém patře déle než patnáct sekund. Ocenění splňuje ocenění atomových hodin kdyby a jen kdyby .
A omezení hodin je buď konečný spojení omezení atomových hodin nebo je konstanta „true“ (kterou lze považovat za prázdnou spojku). Ocenění vyhovuje hodinovému omezení pokud splňuje každé omezení atomových hodin .
Diagonální omezení
V závislosti na kontextu může mít také omezení atomové hodiny . Takové omezení se nazývá diagonální omezení, protože definuje diagonální čáru v .
Povolení diagonálních omezení může umožnit zmenšit velikost vzorce nebo automatu použitého k popisu systému. Složitost algoritmu se však může zvýšit, pokud jsou povolena diagonální omezení. Ve většině systémů využívajících hodiny povolení diagonálního omezení nezvýší expresivitu logiky. Nyní vysvětlíme, jak zakódovat takové omezení pomocí booleovské proměnné a ne-diagonálního omezení.
Diagonální omezení lze simulovat pomocí ne-diagonálních omezení následujícím způsobem. Když je resetováno, zkontrolujte, zda drží nebo ne. Připomeňte si tyto informace v booleovské proměnné a vyměnit touto proměnnou. Když je resetováno, nastaveno pravda, pokud je
Způsob kódování logické proměnné závisí na systému, který používá hodiny. Například, UPPAAL podporuje booleovské proměnné přímo. Časované automaty a signální automaty může kódovat booleovskou hodnotu na svých místech. v časová logika hodin nad časovanými slovy může být logická proměnná kódována pomocí nových hodin , jehož hodnota je 0 právě tehdy je nepravdivé. To znamená, se resetuje, pokud má být nepravdivý. v časovaná výroková časová logika, vzorec , které se restartují a poté vyhodnotí , lze nahradit vzorcem , kde a jsou kopie vzorců , kde jsou nahrazeny pravou a falešnou konstantou.
Sady definované omezeními hodin
Omezení hodin definuje sadu ocenění. V literatuře se uvažuje o dvou druzích takových sad.
A zóna je neprázdná sada ocenění splňující časové omezení. Zóny a omezení hodin jsou implementovány pomocí rozdílová vázaná matice.
Vzhledem k modelu , ve svých hodinových omezeních používá konečný počet konstant. Nechat být největší použitá konstanta. A kraj je neprázdná zóna, ve které není žádné omezení větší než jsou použity a navíc takové, že je minimální pro zařazení.
Viz také
Poznámky
- ^ A b C Alur, Rajeev; Dill, David L (25. dubna 1994). „Teorie časovaných automatů“ (PDF). Teoretická informatika. 126 (2): 183–235. doi:10.1016/0304-3975(94)90010-8.
- ^ Behrmann, Gerd; David, Alexandre; Larsen, Kim G (28. listopadu 2006). „Výukový program pro Uppaal 4.0“ (PDF): 28. Citovat deník vyžaduje
| deník =
(Pomoc)