Come ti sei comportato? Equivalenze comportamentali e loro applicazioni Daniele Gorla Roma, 21 Settembre 2009 Sommario Linguaggi di programmazione ed equivalenze comportamentali Dinamica e comportamento di canali di comunicazione con energia consumabile Linguaggi di programmazione Sintassi (termini leciti) Semantica (significato) Operazionale (dinamica, implementazione) Astrazione Comportamentale (osservatore) Denotazionale Assiomatica … Equivalenze comportamentali |[ - ]| associa a ogni programma il suo comportamento P ~ P’ sse |[ P ]| = |[ P’ ]| Esempi: Macchine di Turing: |[ P ]| è il linguaggio accettato da P Ling. Funzionali: |[ P ]| è la funzione che calcola P Ling. Non-deterministici: |[ P ]| è l’insieme delle sequenze di azioni osservabili (tracce) che P produce Ling. Imperativi: |[ P ]|μ è lo stato di memoria che P produce partendo dallo stato di memoria iniziale μ Applicazioni Correttezza di programmi Spec ~ Impl Ottimizzazione del codice Input ~ Output, ma Output è più efficiente Proprietà di sicurezza Riservatezza: s,s’. P(s) ~ P(s’) Integrità Autenticità Correttezza di codifiche E : Ling1 → Ling2 tale che P ~1 P’ sse E(P) ~2 E(P’) Note dolenti In generale, ~ è indecidibile Equivalenza per linguaggi di MT Equivalenza Morris-style per λ-termini … Per alcune equivalenze e con opportune restrizioni sui programmi leciti, si passa al decidibile Equivalenza per linguaggi di automi finiti Equivalenza Morris-style per λ-calcolo tipato semplice Equivalenza a tracce per processi non-deterministici a stati finiti Di solito, la complessità computazionale non è polinomiale (NPC, EXP, P-Space-C, …) Tecniche di prova corrette (ma non complete) polinomiali Dinamica e comportamento di canali di comunicazione con energia consumabile assieme a Pietro Cenciarelli e Ivano Salvo 4 4 3 2 7 9 2 6 4 3 4 5 4 2 4 3 2 7 9 1 2 6 4 3 4 5 2 4 3 2 2 7 9 1 6 4 3 3 4 5 2 4 2 1 2 7 9 8 1 6 5 3 3 4 5 2 4 1 2 1 7 8 1 0 5 3 2 3 4 5 2 4 1 1 0 7 6 8 0 5 4 2 0 3 4 5 2 4 3 1 0 7 6 0 5 4 0 3 4 5 Canale () 2 source 3 1 0 7 6 4 target 0 0 3 4 5 Cammini (P ) 2 Flusso () 4 3 :P N 2 7 che rispetta le energie di ogni vertice 9 1 Il valore di è = pP (p) 4 6 7 3 4 5 Esempio di Flusso 4 4 3 ( )= 2 ( )= 1 = 3 2 7 9 1 6 7 3 4 5 Transizioni 4 4 3 4 2 4 0 0 7 9 7 5 6 1 7 4 3 5 ( )= 2 ( )= 1 = 3 0 2 2 3 4 4 Tracce 2 5 1 3 ... 2 Una traccia di un canale è una sequenza n1, n2 ... t.c. n1 n2 ... Tracce ( 5 2 1 ) =3 2, 1 , 2, 1, 2 ,21, 1, 1, 1 , 5. ., .... Una traccia di un canale è una sequenza n1, n2 ... t.c. n1 n2 ... () è l’insieme delle computazioni di Equivalenza ( ) 2 5 ?! 5 4 sse () = () Teor: sse max() = max() ( facile ) 2 5 4 Equivalenza ( ) 2 5 2 5 4 4 Equivalenza ( ) 2 4 5 4 2 2 0 4 5 2 4 1 0 Equivalenza ( ? ) 2 5 5 4 2 Una traccia5(completa) di un canale è una sequenza n1 , ... , nk t.c. n n 1 k 4 ... tr() è l’insieme delle tracce complete Equivalenza ( tr ) 2 tr 2 ≁tr 5 5 4 5 4 Una traccia (completa) di un canale è una sequenza n1 , ... , nk t.c. n1 nk ... tr() è l’insieme delle tracce complete tr sse tr() = tr() Equivalenza ( tr ) 2 tr 2 ≁tr 5 5 5 4 4 mif = 5 mif = 5 mif = 4 mif() è il valore del minimum inhibiting flow di Teor: tr sse max() = max() e mif() = mif() ( difficile ) Complessità ( tr ) max() è polinomiale mif() NPC ? ridurre MinMaxMatching in un grafo bipartito di grado al più 3 a MIF Altre possibili equivalenze? 1 1 2 tr 1 3 1 1 mif = 2 max = 3 mif = 2 max = 3 Altre possibili equivalenze? 1 1 2 tr 1 3 1 1 mif = 2 max = 3 mif = 2 max = 3 Altre possibili equivalenze? 1 0 1 2 2 1 1 1 1 3 1 1 2 Altre possibili equivalenze? 1 2 ≉ 1 1 tr 3 1 (bisimulazione) 1 Sviluppi futuri • Studio della bisimulazione • caratterizzazione • complessità • Modello più sofisticato (fallimenti, strategie di routing, …) • Problemi di ottimizzazione (es: caratterizzazione di reti che soffrono del paradosso di Braess)