390 likes | 484 Views
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.
E N D
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) ~2E(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-styleper λ-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 6 2 4 4 3 5
4 2 4 3 2 7 9 6 2 1 4 4 3 5
2 4 3 2 2 7 9 6 1 4 3 4 3 5
2 4 2 1 2 7 9 8 6 5 1 3 4 3 5
2 4 1 2 1 7 8 5 1 0 3 2 4 3 5
2 4 1 1 0 7 8 6 5 4 0 2 0 4 3 5
2 4 3 1 0 7 6 5 4 0 0 4 3 5
Canale () 2 3 1 0 source 7 6 4 target 0 4 0 3 5
Flusso () 4 4 3 2 : P N 7 che rispetta le energie di ogni vertice 9 6 1 7 4 Il valore di è = pP (p) 3 5
Esempio di Flusso 4 4 3 2 ( )= 2 7 ( )= 1 9 6 = 3 1 7 4 3 5
Transizioni 4 4 4 4 0 3 2 0 7 7 5 9 2 6 0 1 7 2 4 4 3 3 4 5 ( )= 2 ( )= 1 = 3
Tracce 2 1 . . . 5 3 2 Una traccia di un canale è una sequenza n1, n2 ... t.c. n1 n2 ...
Tracce 2 1 . . . ( ) = 2, 1 , 2, 1, 2 , 1, 1, 1, 1 , 5 , ... 2 3 5 Una traccia di un canale è una sequenza n1, n2 ... t.c. () è l’insieme delle computazioni di n1 n2 ...
Equivalenza ( ) 2 ?! 5 5 4 sse () = () Teor: sse max() = max() 2 ( facile ) 5 4
Equivalenza ( ) 2 5 4 2 5 4
Equivalenza ( ) 2 0 5 1 4 0 2 4 4 2 2 5 4
Equivalenza ( ?) 2 5 5 4 Una traccia (completa) di un canale è una sequenza n1 , ... , nk t.c. tr() è l’insieme delle tracce complete 2 n1 nk ... 5 4
Equivalenza ( tr ) 2 tr ≁tr 5 5 4 Una traccia (completa) di un canale è una sequenza n1 , ... , nk t.c. tr() è l’insieme delle tracce complete 2 n1 nk ... 5 trsse tr() = tr() 4
Equivalenza ( tr ) 2 tr ≁tr 5 5 4 mif = 5 mif = 5 mif = 4 mif() è il valore del minimum inhibiting flow di Teor: trsse max() = max() e mif() = mif() 2 ( difficile ) 5 4
Complessità ( tr ) max() è polinomiale mif() NPC ? ridurre MinMaxMatching in un grafo bipartito di grado al più 3 a MIF
Altre possibili equivalenze? 1 tr 2 1 mif = 2 max = 3 mif = 2 max = 3 1 3 1 1
Altre possibili equivalenze? 1 tr 2 1 mif = 2 max = 3 mif = 2 max = 3 1 3 1 1
Altre possibili equivalenze? 1 0 1 2 2 1 1 1 2 1 3 1 1
Altre possibili equivalenze? 1 ≉ 2 1 tr 1 (bisimulazione) 3 1 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)