Metodi formali nel
progetto
dell’interazione
Anna Labella
Due aspetti
• La struttura del tempo
• Il tipo di interazione
la struttura del tempo
Tempo discreto
Tempo continuo a gradini
Tempo continuo
Qual’è più “facile” e quale più utile?
Il tipo di interazione
Handshaking
Broadcasting
“a braccetto”
Controllo
Rilevamento di segnale
Rendez-vous
ecc.
Esempi tratti dall’interazione
Combinazione di diversi processi
Per mezzo di rendez-vous
Esempi tratti dall’interazione
Interfacce come tipici esempi di
coesistenza di diversi “tipi di tempo”
Cosa ci interessa e cosa no
Eventi che si svolgono e/o si evolvono in un intervallo di tempo
Eventi che devono aspettare input dall’esterno
Latenze in informatica musicale
Interpretazione legata alle durate (es. doppio click)
Eventi istantanei
Eventi a distanza sempre più ravvicinata
Il problema cruciale:
l’interpretazione
Riconoscimento di comportamento
Una possibile soluzione:
diversi livelli di astrazione
Linee guida per disegnare interfacce ibride continue
Mieke Massink Giorgio P. Faconti,
A reference framework for continuous interaction
UAIS, 1 (2002) 237-251
http://www.springerlink.com/index/10.1007/s10209-002-0027-5
• fisico
• percettivo
• proposizionale
• concettuale
• di gruppo
Gestire l’interazione
trasformando l’informazione dai
sensori agli effettori
Philip Barnard, Jon May, David Duke, David Duce
Systems, interactions, and macrotheory
ACM TOCHI,7 (2000) 222--262
http://doi.acm.org/10.1145/353485.353490
Gli automi ibridi
Una soluzione?
Thomas A. Henzinger,
The Theory of Hybrid Automata,
Proc. 11th LICS Conf. (1996) 278-292
Automa ibrido
X
(V,E)
init, inv, flow
jump

<X,(V,E), init, inv, flow, jump, , E   >
n-uple di variabili reali,
grafo di controllo, modalità ed interruttori
condizioni che etichettano le modalità
condizione che etichetta gli interruttori
eventi
Gli automi ibridi
Una soluzione?
Thomas A. Henzinger,
The Theory of Hybrid Automata,
Proc. 11th LICS Conf. (1996) 278-292
Sistema di transizione temporizzato
Q,Q0 V Rn,
<Q,Q0,A,  >
(v,x)Q sse inv(v)[X:=x] vero
(v,x)Q0 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,  ]  Rn differenziabile
f(0) = x f() = x’
inv(v) [X:= f() ]
0≤≤
flow(v ) [X, •X:= f(), •f()] veri
Marionette virtuali
Il sistema
All’esterno è un processo veramente continuo, almeno a tratti,
che viene rilevato secondo certi intervalli di tempo dai sensori.
Questi innescano delle procedure all’interno 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 dall’esterno.
Non è detto che la stessa osservazione porti nello stesso stato
È suggerita una struttura ad albero
a
d
b c
a
b
c
La nozione di processo
a.P a P
ed altri operatori…..
Pi  a Qi

P1+P2  a Qi
Il tempo discreto
0
1
2
3
4
N
A = {a,b,c,d,…}
aacb
Alberi discreti
0
1
2
3
N
Set
Il tempo continuo a gradini
0
r1
r2
r3
r4
R+
A = {a,b,c,d,…}
(a,r1 ) (a,r2 - r1 ) (c, r3 - r2 ) (b, r4 - r3 )
Il tempo continuo
0
r1
r2
r3
r4
R+
F = {f,g,h,k,…}
(f |r1 ) (f |r2 - r1 ) (h |r3 - r2 ) (g |r4 - r3 )
Alberi continui
0
r1
r2
r3
r4
R+
Set
Le categorie di alberi
Un albero è un insieme di cammini etichettati ed incollati
lungo un’etichetta 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 l’etichettatura e può far
crescere l’incollamento, cioè una simulazione che tende a
diminuire il non determinismo
Gli alberi
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)
Un morfismo f : t1  t2
è una funzione f : X1 X2
tale che
i.
e2 (f(x)) = e1 (x)
ii.
d1 (x, y) ≤ d2 (f(x), f(y))
a
b c
a
c b
a
a
b
b
c
a
b
c
Operazioni tra alberi
Somma:
t1 + t2 = < X, e, d> , dove
- X = X1  X2
- e (x1) = e1 (x1)
- e (x2) = e2 (x2)
- d ( x, y)
=
•0 = <Ø , Ø , Ø>
 di (x, y) se x, y Xi


altrimenti
è l’unità
Esempio

Operazioni tra alberi
Concatenazione:
t1  t2 = < X, e, d> , dove
- X = X1  X2
- e (< x1, x2 >) = e1 (x1) . e2 (x2)
 d1 (x1, y1).d2 (x2, y2) se x1 = y1
- d (< x1, x2 >, < y1, y2 >) = 
 d1 (x1, y1)
altrimenti
•1 = <{ x } , e (x) =  , d (x, x) = > is l’elemento neutro
•Tree(A) monoidale chiusa a destra
•La concatenazione distribuisce a destra sulla somma
Esempio

Esempi di 2-categorie di base: le strutture temporali
•A* monoide libero sull’alfabeto 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)
Il tempo non completamente ordinato
Etichettatura con tracce di Mazurkiewicz: A*/I
Parole con possibilità di invertire certe lettere [a,b]
c
[a,b]
b
c
Sincronizzazione e fusione
Tempo globale: Sincronizzazione
Tempi relativi: Rendez-vous
Sincronizzazione
t1 ※ t2 = < X, e, d> , dove
- X  X1  X2
- e (< x1, x2 >) = e1 (x1) * e2 (x2)
- d (< x1, x2 >, < y1, y2 >) = (e1 (x1) * e2 (x2))  (e1 (y1) * e2 (y2))
Tagliato eventualmente alla lunghezza minima tra d1(x1, y1) e d2(x2, y2)
Definiamo una tabella di sincronizzazione per coppie di mosse
“contemporanee” e costruiamo l’albero che viene etichettato con i
risultati.
La sicronizzazione può essere: handshaking, a braccetto, ecc.
Esempio
a
a
a
a
b
c
※
d
d
a
a
b
d
b
Fusione
Etichettatura sui prefissi,
ma incollamento su opportuni sottoinsiemi:
Ogni sottoprocesso ha il suo tempo
Una nuova struttura di frecce tra le parole
Fusione tra alberi (caso discreto)
(X, e, d)  (X’, e’, d’) :
i. un insieme di cammini: X  X’
ii. una funzione etichettatura e  e’: X  X’  A *,
ii. una funzione incollamento  : X  X’  ANN
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)
Notare l’analogia 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
e(x)
a(x,y)
y
e(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
dx,y : [e-(x), e-(y) ]  [e+(x), e+(y) ]
t.c. per ogni x, y, z in X,
-dx,x [e-(x), e-(x) ]  [e+(x), e+(x) ] rispetta il massimo
- d(x, y) ≤ e (x)  e (y)
- dx,y  dy,z ≤ dx,z
- dx,y = dy,x
Attenzione!
la situazione non è simmetrica
rispetto alle due etichettature
Da una parte dobbiamo prendere tutti i prefissi comuni, dall’altra no:
questo vuol dire che abbiamo nondeterminismo soltanto a destra.
Si potrebbe generalizzare prendendo relazioni al posto di funzioni
Esempio
e-(x) = (f |r1 ) (f |r2 - r1 ) (h |r3 - r2 ) (g |r4 - r3 )
e+(x) = (a,s1 ) (a,s2 - s1 ) (c, s3 - s2 ) (b, s4 - s3 )
e-(x)
e+(x)
x
e-(y) = (f |r1 ) (f |r2 - r1 ) (h |r’3 - r2 ) (k |r’4 - r’3)
e+(y) = (a,s1 ) (a,s2 - s1 ) (c, s’3 - s2 ) (d, s’4 - s’3 )
e-(y)
e+(y)
y
dx,x [e-(x), e-(x) ]  [e+(x), e+(x) ] potrebbe essere indotta
dalla funzione sugli istanti di tempo {ri}  {si}, così
dx,y [e-(x), e-(y) ]  [e+(x), e+(y) ]
A che servono i metodi formali?
A che servono i metodi formali?
Servono a capire
Vengono prima o dopo la pratica?
Si intercalano
Scarica

metodiformali