Metodi formali nel progetto dellinterazione Anna Labella
Due aspetti La struttura del tempo Il tipo di interazione
Tempo discreto Tempo continuo a gradini Tempo continuo la struttura del tempo Qual è più facile e quale più utile?
Handshaking Broadcasting a braccetto Controllo Rilevamento di segnale Rendez-vous ecc. Il tipo di interazione
Esempi tratti dallinterazione Combinazione di diversi processi Per mezzo di rendez-vous
Esempi tratti dallinterazione Interfacce come tipici esempi di coesistenza di diversi tipi di tempo
Cosa ci interessa e cosa no Eventi istantanei Eventi a distanza sempre più ravvicinata Eventi che si svolgono e/o si evolvono in un intervallo di tempo Eventi che devono aspettare input dallesterno Latenze in informatica musicale Interpretazione legata alle durate (es. doppio click)
Il problema cruciale: linterpretazione Riconoscimento di comportamento
Una possibile soluzione: diversi livelli di astrazione Mieke Massink Giorgio P. Faconti, A reference framework for continuous interaction UAIS, 1 (2002) fisico percettivo proposizionale concettuale di gruppo Linee guida per disegnare interfacce ibride continue
Gestire linterazione trasformando linformazione dai sensori agli effettori Philip Barnard, Jon May, David Duke, David Duce Systems, interactions, and macrotheory ACM TOCHI,7 (2000)
Gli automi ibridi Una soluzione? Automa ibrido X n-uple di variabili reali, (V,E) grafo di controllo, modalità ed interruttori init, inv, flow condizioni che etichettano le modalità jump condizione che etichetta gli interruttori eventi Thomas A. Henzinger, The Theory of Hybrid Automata, Proc. 11th LICS Conf. (1996)
Gli automi ibridi Una soluzione? Sistema di transizione temporizzato Q,Q 0 V Rn, (v,x) Q sse inv(v)[X:=x] vero (v,x) Q 0 sse inv(v)[X:=x] e init(v)[X:=x] veri A= R + eventi e durate :(v,x) (v,x) sse cè e E v v jump(e)[X,X:=x,x] event(e)= :(v,x) (v,x) sse cè f:[0, ] R n differenziabile f(0) = x f( ) = x inv(v) [x:= f( ) ] 0 flow(v ) [x, := f( ), f( )] veri Thomas A. Henzinger, The Theory of Hybrid Automata, Proc. 11th LICS Conf. (1996) x.x
Esempio: un termostato off on = - 0,1 x = 5- 0,1 x x18 x22 x=20 x>21 x<19.x.x.x.x
Marionette virtuali
Il sistema Allesterno è un processo veramente continuo, almeno a tratti, che viene rilevato secondo certi intervalli di tempo dai sensori. Questi innescano delle procedure allinterno costanti, ma su intervalli di tempo reali (almeno in prima approssimazione). Esistono uno o più sistemi temporali sia interni che esterni.
Descrizione del sistema interno
Usare soltanto durate e corrispondenze temporali Non ci domandiamo perché e come accadano certe transizioni, Ma le osserviamo
Osservabilità e nondeterminismo Un processo può essere descritto osservando il suo comportamento dallesterno. Non è detto che la stessa osservazione porti nello stesso stato È suggerita una struttura ad albero a bc d a bc
La nozione di processo a.P a P P i a Q i P 1 +P 2 a Q i ed altri operatori…..
Il tempo discreto N A = {a,b,c,d,…} aacb
Alberi discreti N Set
Il tempo continuo a gradini A = {a,b,c,d,…} (a,r 1 ) (a,r 2 - r 1 ) (c, r 3 - r 2 ) (b, r 4 - r 3 ) R+R+ 0 r1r1 r2r2 r3r3 r4r4
Il tempo continuo F = {f,g,h,k,…} (f |r 1 ) (f |r 2 - r 1 ) (h |r 3 - r 2 ) (g |r 4 - r 3 ) R+R+ 0 r1r1 r2r2 r3r3 r4r4
Alberi continui Set R+R+ 0 r1r1 r2r2 r3r3 r4r4
Le categorie di alberi Un albero è un insieme di cammini etichettati ed incollati lungo unetichetta che è un prefisso comune. Questo significa che, a sua volta un albero è una categoria arricchita su una 2-categoria localmente posetale L Un morfismo di L-alberi è un L-funtore: una funzione tra cammini che rispetta strettamente letichettatura e può far crescere lincollamento, cioè una simulazione che tende a diminuire il non determinismo
Esempi di 2-categorie di base: le strutture temporali A* monoide libero sullalfabeto A, funzioni parziali da N ad A CA funzioni parziali costanti a gradino da R + ad A CF funzioni parziali continue a tratti TA monoide a tracce, ecc. In generale: L monoide che sia anche un inf-semireticolo Più in generale sistemi di tracce con rendez-vous (vedremo più avanti)
t = (X, e, d) : i. un insieme di cammini: X ii. una funzione etichettatura e: X L, ii. una funzione incollamento d : X X L t.c. per ogni x, y, z in X, - d (x, x) = e(x) - d(x, y) e (x) e (y) - d(x, y) d(y, z) d(x, z) - d (x, y) = d (y, x) Gli alberi su L
Un morfismof : t 1 t 2 è una funzione f : X 1 X 2 tale che i. e 2 (f(x)) = e 1 (x) ii. d 1 (x, y) d 2 (f(x), f(y))
a c bc b b a a bc c b a a Il caso L=A* Si etichetta con A* e si incolla per prefisso
Operazioni tra alberi Somma: t 1 + t 2 =, dove - X = X 1 X 2 - e (x 1 ) = e 1 (x 1 ) - e (x 2 ) = e 2 (x 2 ) d i (x, y) se x, y X i - d ( x, y) = altrimenti 0 = è lunità
Esempio
Operazioni tra alberi Concatenazione: t 1 t 2 =, dove - X = X 1 X 2 - e ( ) = e 1 (x 1 ). e 2 (x 2 ) d 1 (x 1, y 1 ).d 2 (x 2, y 2 ) se x 1 = y 1 - d (, ) = d 1 (x 1, y 1 ) altrimenti 1 = is lelemento neutro Tree(A) monoidale chiusa a destra La concatenazione distribuisce a destra sulla somma
Esempio
Etichettatura con funzioni a gradino Si incolla per prefisso Il tempo continuo CA
Etichettatura con tracce di Mazurkiewicz: A*/I Parole con possibilità di invertire certe lettere [a,b] Il tempo non completamente ordinato c b [a,b] c
Sincronizzazione e fusione Tempo globale: Sincronizzazione Tempi relativi: Rendez-vous
Sincronizzazione Definiamo una tabella di sincronizzazione per coppie di mosse contemporanee e costruiamo lalbero che viene etichettato con i risultati. La sicronizzazione può essere: handshaking, a braccetto, ecc. t 1 t 2 =, dove - X X 1 X 2 - e ( ) = e 1 (x 1 ) * e 2 (x 2 ) - d (, ) = (e 1 (x 1 ) * e 2 (x 2 )) (e 1 (y 1 ) * e 2 (y 2 )) Tagliato eventualmente alla lunghezza minima tra d 1 (x 1, y 1 ) e d 2 (x 2, y 2 ) altrimenti
Esempio d b a a a a b c d d a b a
Fusione Etichettatura sui prefissi, ma incollamento su opportuni sottoinsiemi: Ogni sottoprocesso ha il suo tempo
Una nuova struttura di base A N Si etichetta ancora con le parole di A*, ma non si incolla per prefisso
Due cammini x e y e(x) = abac, cioè {(1,a),(2,b),(3,a),(4,c) } e(y) = cbabb, cioè {(1,c),(2,b),(3,a),(4,b),(5,b)} a(x,y) = {(3,a)}. Thread o dendroide
(X, e, d) (X, e, d) : i. un insieme di cammini: X X ii. una funzione etichettatura e e: X X A *, NN ii. una funzione incollamento : X X A NN t.c. per ogni x, y in X, x, y in X - (x,x) s.i. consistente di e(x) e di e(x) - d (y, x) (x,x) (y,x) - (x,x) d(x, y) (x,y) - (x, x) = (x, x) Fusione tra alberi (caso discreto)
Notare lanalogia con la nozione di albero In realtà sono cambiate soltanto le frecce della categoria di base: Gli oggetti continuano ad essere prefissi, le frecce sono soltanto insiemi consistenti x y e(x)e(y) a(x,y)
Arricchimenti doppi Coesistenza di due tipi di tempo Loro sincronizzazione per prefisso
Caso di comportamento ibrido t = (X, e, d) : i. un insieme di cammini: X ii. una funzione etichettatura e: X CF CA, cioè e - : X CF ed e + : X CA iii. per ogni x, y in X una funzione incollamento monotona d x,y : [e - (x), e - (y) ] [e + (x), e + (y) ] t.c. per ogni x, y, z in X, -d x,x [e - (x), e - (x) ] [e + (x), e + (x) ] rispetta il massimo - d(x, y) e (x) e (y) - d x,y d y,z d x,z - d x,y = d y,x
Attenzione! la situazione non è simmetrica rispetto alle due etichettature Da una parte dobbiamo prendere tutti i prefissi comuni, dallaltra no: questo vuol dire che abbiamo nondeterminismo soltanto a destra. Si potrebbe generalizzare prendendo relazioni al posto di funzioni
Esempio x d x,x [e - (x), e - (x) ] [e + (x), e + (x) ] potrebbe essere indotta dalla funzione sugli istanti di tempo {r i } {s i }, così d x,y [e - (x), e - (y) ] [e + (x), e + (y) ] e - (x) = (f |r 1 ) (f |r 2 - r 1 ) (h |r 3 - r 2 ) (g |r 4 - r 3 ) e + (x) = (a,s 1 ) (a,s 2 - s 1 ) (c, s 3 - s 2 ) (b, s 4 - s 3 ) e - (x) e + (x) e - (y) = (f |r 1 ) (f |r 2 - r 1 ) (h |r 3 - r 2 ) (k |r 4 - r 3 ) e + (y) = (a,s 1 ) (a,s 2 - s 1 ) (c, s 3 - s 2 ) (d, s 4 - s 3 ) y e - (y) e + (y)
La nozione di stato La logica associata Ulteriori possibilità del modello
Il caso degli alberi a bc c b a a Ogni nodo è uno stato
Il caso dei dendroidi Non ogni nodo è uno stato
A che servono i metodi formali?
Servono a capire
Vengono prima o dopo la pratica? Si intercalano