Automi temporizzati cooperanti (TCA) Automi cooperanti (CA) Un CA consiste di n automi finiti, ciascuno con insieme di stati, stato iniziale e tabella delle transizioni. Gli automi si sincronizzano prendendo le transizioni in accordo con il simbolo letto, il loro stato interno e formule condizionali del tipo ”la componente i è correntemente nello stato q”. Automi temporizzati cooperanti (TCA) (1) I TCA estendono i CA: 1. consentendo vincoli temporali sulle transizioni 2. Consentendo passi consistenti di sequenze di transizioni (attività stimolate dall’ambiente ma interne e non urgenti ossia con consumo di tempo non nullo). Un ambiente è una tripla a = < a1, a2, a3> dove: a1: N 2S dà l’insieme dei segnali comunicati a ogni interazione a2: N Time dà il tempo a ogni interazione e soddisfa monotonicità e progresso; Time è un dominio del tempo denso a3: N Time dà la durata della comunicazionedurante l’interazione, ossia a2(i) + a3(i) ≤ a2(i+1) Automi temporizzati cooperanti (TCA) (2) La collezione PS delle condizioni ambientali su S è definita induttivamente come segue: True, a S p1 p2 , p1 p2 , p1 per p1 , p2 PS Per un insieme di simboli di stato Q la collezione delle condizioni interne GQ è definita induttivamente come segue: true, q = t, q[t], q{t} dove t Time p1 p2 , p1 p2 , p1 per p1 , p2 GQ Per consentire passi consistenti di sequenze di transizioni distinguiamo tra stati di input (che iniziano e terminano un’attività) e stati non di input (stati intermedi di un’attività interna. La condizione di accettazione è una condizione di Buchi. Automi temporizzati cooperanti (TCA) (3) Un TCA è una tupla M = <M1,…, Mn, I, F>, dove ogni automa sequenziale Mi è una tripla <Qi, q0i, di> tale che Qi è un insieme finito di stati Q1,…, Qn disgiunti, Q = 1≤i≤n Qi q0i Qi stato iniziale di sè la relazione di transizione l’insieme I degli stati di input è tale che 1≤i≤n {q0i} I Q F I è l’insieme degli stati accettanti. Una configurazione locale per un automa sequenziale Mi è Ci = <qi, ini, outi, si >, dove 1) qi Q è stato abilitato da Qi 2) ini : Qi Time funzione di abilitazione dello stato dà il tempo più recente in cui lo stato è stato abilitato ed è indefinito se non è stato mai abilitato 3) outi : Qi Time funzione di disabilitazione dello stato 4) si Time tempo locale. Automi temporizzati cooperanti (TCA) (4) Una configurazione locale Ci= <qi, ini, outi, si> è di input se qi I. Una configurazione locale Ci= <qi, ini, outi, si> è iniziale se qi = q0i si = 0, ini(q0i) = 0 e ini indefinito altrimenti, outi indefinito per ogni q (denotata C0i ). Una configurazione globale C è <C1, … Cn, a, m> dove: 1) Ci configurazione locale 2) a ambiente 3) m N indica che si tratta della m-esima iterazione, ossia a = <a1(m),a2(m),a3(m)>. Automi temporizzati cooperanti (TCA) (5) Sia C = <C1, … Cn, a, m> con Ci= <qi, ini, outi, si> allora le condizioni interne True, q[t], q{t}, q = t sono indefinite a s se si>s q[t] valuta a True al tempo s sse si≤s, q=qi e ini(q)≤ s-t, ossia q è stato abilitato per un tempo ≤ t q{t} valuta a True al tempo s sse q=qi oppure s-t ≤ out(qi)≤s, ossia q è stato disabilitato da al più t q = t valuta a True se e solo se q è stato abilitato da esattamente t. La proposizione di ambiente p P è valutata interpretando a True i simboli in {true} {a: a <a1(m), a2(m) ≤ s ≤ a2(m)+a3(m)}. Automi temporizzati cooperanti (TCA) (6) Data una configurazione C = <C1, … Cn, a, m> c’è una derivazione locale da Ci= <qi, ini, outi, si> a Ci’= <qi’, ini’, outi’, si’> denotata Ci C Ci’ se: 1) si’ a2(m) 2) <qi, p, g, qi’> di 3) ini’(qi’) = si’ e ini’(q) = ini(q) per qi ≠ q 4) outi’(qi) = si’ e outi’(q) = outi(q) per qi ≠ q 5) p valuta a True in a al tempo si’ e interazione m 6) g valuta a True in C al tempo si’ La derivazione è urgente se non c’è una derivazione locale Ci C Ci” al tempo s” con max{si, a2(m)} ≤ s”< si’ Automi temporizzati cooperanti (TCA) (7) Un passo locale da una configurazione C = <C1, … Cn, a, m> è una sequenza di derivazioni locali Ci C Ci1 … C Cin C Ci’ denotata Ci C Ci’ dove Ci e Ci’ sono configurazioni locali di input e Cin non è una configurazione di input per ogni 1 ≤ j ≤ n. Il passo è urgente se le configurazioni locali sono urgenti. Il passo locale Ci C Ci’ è ghost se Ci = Ci’ . Il comportamento di un TCA è una composizione di passi locali che garantisce causalità e massimalità. Il passo locale di una componente è fatto rispetto alle configurazioni locali delle altre componenti che sono o nelle configurazioni iniziali o nelle configurazioni raggiunte nello stesso passo purché ne sia data una giustificazione causale. Un passo è urgente se consiste solo di passi urgenti. Un passo è reattivo se ciascun passo locale termina prima della successiva interazione con l’ambiente. Automi temporizzati cooperanti (TCA) (8) Un run R è una sequenza di configurazioni globali C0 , C1, …, Ci , … tale che C0 è iniziale e Cj C Cj+1 per j 0. Se Inf(R) è l’insieme di stati attraversati infinite volte il run ha successo se Inf(R) F . Un ambiente è accettato da un TCA se esiste un run di successo a a partire dalla configurazione iniziale con ambiente a. Il linguaggio accettato dal TCA è l’insieme dei run di successo. Automi temporizzati cooperanti (TCA) (9) q1 a,True q2 True, q2[m] q3 a,q3=0 q4 a,True a,True F = {q4} True, q2[m] Automi temporizzati cooperanti (TCA) (10) M1 St1 q1 Start Not good and trash Q2[3]and St2[3] M2 (w1 or w2) and in q1[5] Tr1[0] good Q2[1]and St2[1] St2 Tr1 q3[1] q3 St2[0] St1[0] q2 cool Tr2 La macchina M1 riceve materiale rozzo e produce un prodotto finale, la macchina M2 fornisce a M1 il materiale e poi raccoglie il prodotto finale. Automi temporizzati cooperanti (TCA) (11) La macchina M1 finchè M2 è in grado di fornire il materiale (stato Tr1 abilitato) e l’ambiente dà il segnale start. Allora M1 fa la lavorazione se il materiale è presente (segnale in) e c’è una richiesta di produrre il prodotto finale p1 (segnale w1) oppure il prodotto finale p2 (segnale w2). Dopo almeno 5 unità di tempo il prodotto è completo (stato St2 abilitato) e la macchina M2 raggiunge uno stato in cui può raccoglierlo. Dopo una fase di raffreddamento M1 verifica la qualità del prodotto e raggiunge lo stato St1 in una unità di tempo se il prodotto è buono, in tre unità di tempo altrimenti. Dopo questa transizione di M1, M2 raccoglie il prodotto e dopo almeno una unità di tempo fornisce a M1 nuovo materiale. Proprietà di chiusura Siano M, M’ TCA. Allora L(M) L(M’) = L(M M’) L(M) L(M’) = L(M M’) Si ha chiusura per complementazione? Risultati di espressività (1) Gli automi con vincoli di orologio periodici TAP hanno vincoli ottenuti applicando liberamente connettivi booleani a proposizioni atomiche x Ts[t1, t2] dove x è un orologio e Ts[t1, t2] = { ks + t; k N, t1 ≤ t ≤ t2 } per s, t1, t2 Time. a, x T2[0,0], x:=0 a, true, x:=0 Risultati di espressività (2) Gli automi con transizioni silenti TAe hanno transizioni in E SSS{e}2Cf(C). e, t1≤x≤t2, x:=0 a, true, x:=0 a, x= 0 Vale L(TA) L(TAp) L(TAe) Risultati di espressività (3) Sia TCAI un TCA con soli stati di input. Sia STCA un TCA consistente di un solo automa sequenziale. Vale L(STCAIRU) | L(TA) | | L(TCAIRU) L(TCARU) L(TAP) | L(TAe) | L(TCAU) L(TCAR) | | L(STCAU) L(STCARU) L(STCAR) | L(STCA) Risultati di decisione La vuotezza è decidibile per L(STCAIRU). Prova. Dalla contenutezza di L(STCAIRU) in L(TA).