Ajastatud automaadid
Sissejuhatus
Ajastatud automaadid ehk ajastatud olekumasinad (timed automata) täiendavad lõplike automaatide ehk lõplike olekumasinate (finite automata ehk state machine) konseptsiooni kellaga (clock). Kellad jooksevad jätkuvalt (continuously) ning sama kiirusega (synchronous, uniform). Kellasi võib lähtestada (reset to zero) ülemineku korral. Kell mõjutab missugused üleminekud (transitions) toimuda võivad (clock conditions). Kell kuulub positiivsete reaalarvude ning 0 hulka.
Üleminekutel on valvur (guard) mis võimaldab edusammude tegemist. Ülemineku toimumiseks peab kell rahuldama valvuri tingimusi. Olekutel (states) on invariandid mis tagavad edusammud (ensure progress). Invariandi rikkumist saab vältida üleminekuga järgmisse olekusse.
Kellad x, y, z, ... kuuluvad kellade hulka C. Kella väärtustamine v(x) omistab mitte-negatiivse reaalarvulise väärtuse kellale x. Φ(C) tähistab kellade kitsendusi üle hulga C. Kellade kitsendused on kujul x ≃ d või x – y ≃ d kus d on naturaalarv.
Formaalne notatsioon
Ajastatud automaadi võib kirja panna ka kui korteeži (tuple):
Kus L on lõplik olekute (location) hulk. Ajastatud automaadis eristatakse kahte olekut (state vs location) kuna aeg mängib rolli:
Ning Lₒ on esialgsete asukohtade hulk:
E on lõplik sündmuste hulk:
C on ajastatud automaadi TA lõplik kellade hulk:
Inv on funktsioon mis omistab igale asukohale invariandi. Invariant on hulk väiteid mis peavad kehtima selles olekus (?):
T on ülemineku seos:
Täpsustuseks üleminek t tähistab serve olekust l₁ olekusse l₂ sildiga e, valvurite (guard) φ(C) ning kellade lähtestamistega γ(C):
Φ(C) tähistab kellade tinigmusi (clock conditions) üle kellade hulga (clock set).
Semantika
Ajastatud automaadis semantiline olek (semantic state) sõltub olekust (location) ning kellade vektorist (vector of clock values). Semantilisi üleminekuid on kahesuguseid.
Esiteks ajasammu (time step) puhul automaat jääb samasse olekusse (location) ning kellade väärtusi suurendatakse δ võrra. Seda võib ka interpreteerida kui viivitust (delay):
Teist tüüpi semantiline üleminek on diskreetne üleminek (discrete transition):
Tee (path) on lõplik või lõpmatu diskreetsete üleminekute ja ajasammude järjestus:
Ajastatud automaat Kripke struktuurina
Semantilised olekuid (ajasammud ning diskreetseid üleminekuid) võib üles märkida Kripke struktuurina:
Kus Q on semantiline olek mis rahuldab oleku invariandi tingimusi:
Üleminekusuhe on defineeritud kui üleminek ühest semantilisest olekust teise, kas sündmuse E või aja kulgemise tõttu (?).
Ning S on esialgsete semantiliste olekute hulk:
Samaaegsed ajastatud masinad
Kaks ajastatud masinat saab sündmustega siduda. Sündmuse saatja c! ning sündmuse vastuvõtja c?. Sündmuste saatmine on realiseeritud valvurite (guard) näol.
Kaks automaati saab formaalselt kirja panna kui:
Kus mõlema automaadi invariandid peavad olema rahuldatud:
Komposiitüleminekud sünkroniseerimiseks:
Esimesest automaadist sõltumatud üleminekud:
Teisest automaadist sõltumatud üleminekud:
Kaksiksünkroniseerimine (binary synchronization) on blokeeriv (blocking communication): Kui üks kommunikatsiooni paarilistest pole valmis siis teine peab ootama. Lähtuvalt sellest c! ning c? vallanduvad (event fired) ühes sammus.
Üldlevisünkroniseerimine (broadcast synchronization) on asünkroonne (non-blocking communication). Kes iganes on valmis vastu võtma reageerib sündmuse peale, ülejäänud magavad maha.