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
Sintassi (termini leciti) Semantica (significato) Operazionale (dinamica, implementazione) Astrazione Comportamentale (osservatore) Denotazionale Assiomatica ………… Linguaggi di programmazione
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 : Ling 1 → Ling 2 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
target Canale ( ) source
Cammini ( P ) 2
: P N Flusso ( ) che rispetta le energie di ogni vertice Il valore di è = p P (p)
Esempio di Flusso ( )= 2 ( )= = 3
( )= 2 ( )= Transizioni = 3
Tracce Una traccia di un canale è una sequenza n 1, n 2... t.c. n 1 n 2...
Tracce Una traccia di un canale è una sequenza n1, n2... t.c. n 1 n 2... ( ) è l’insieme delle computazioni di ( ) = 2, 1 , 2, 1, 2 , 1, 1, 1, 1 , 5 ,...
Teor: sse max( ) = max( ) ?! Equivalenza ( ) sse ( ) = ( ) ( facile )
Equivalenza ( )
4
Equivalenza ( ? ) 5 tr( ) è l’insieme delle tracce complete Una traccia (completa) di un canale è una sequenza n 1,..., n k t.c. ... n 1 n k
Equivalenza ( tr ) 5 tr sse tr( ) = tr( ) Una traccia (completa) di un canale è una sequenza n1,..., nk t.c. ... n 1 n k tr( ) è l’insieme delle tracce complete tr ≁ tr
Equivalenza ( tr ) 5 Teor: tr sse max( ) = max( ) e mif ( ) = mif ( ) tr ≁ tr ( difficile ) mif ( ) è il valore del minimum inhibiting flow di mif = 5mif = 4mif = 5
Complessità ( tr ) max( ) mif ( ) è polinomiale ? ridurre MinMaxMatching in un grafo bipartito di grado al più 3 a MIF NPC
Altre possibili equivalenze? tr mif = 2 max = 3 mif = 2 max = 3
Altre possibili equivalenze? tr mif = 2 max = 3 mif = 2 max = 3
Altre possibili equivalenze? 1 2
Altre possibili equivalenze? ≉ tr (bisimulazione)
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)