Come ti sei comportato? Equivalenze comportamentali e loro applicazioni Daniele Gorla Roma, 21 Settembre 2009.

Slides:



Advertisements
Presentazioni simili
Traduzione ed Interpretazione
Advertisements

Informatica Generale Marzia Buscemi
Sistemi dinamici discreti e computabilità intrinseca
Punti Fissi.
Linguaggi algoritmici
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Linguaggi di programmazione
IL COMPUTER Il computer, o elaboratore, è un insieme di dispositivi (meccanici, elettrici,ottici) predisposti per accettare dati dallesterno, elaborarli.
Semantica di linguaggi di programmazione Ne esistono differenti stili a seconda di paradigma di programmazione uso (validazione, prototyping, verifica.
Semantica operazionale
Generalità Linguaggio e Macchina Astratta
Introduzione Cosa sono le reti di Petri?
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Interpretazione Astratta
Analisi e Verifica di Programmi Laboratorio di AVP Corso di Laurea in Informatica AA Tino Cortesi.
1 Class Analyses as Abstract Interpretations of Trace Semantics Tratto da un testo di: Fausto Spoto & Thomas Jensen Brigo Matteo Vitturi Mattia.
Semantiche dei linguaggi di programmazione
Checking Security of Java Bytecode by Abstract Interpretation R. Barbuti - C. Bernardeschi - N. De Francesco Corso di Analisi e Verifica dei Programmi.
Analisi e Sintesi di circuiti sequenziali
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Alternative al Paradigma Rappresentazionale
Funzioni, Rappresentazioni e Coscienza
Programmazione a vincoli: algoritmi di scheduling in OPL
Modelli simulativi per le Scienze Cognitive
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
1 Generazione codice Daniela Briola Lorena Bellino.
Grafi triangolati e triangolazioni di grafi
Primi Elementi di Programmazione in C++
Intelligenza Artificiale
Progettazione di una base di dati
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
PROBLEMI RISOLUBILI E COMPUTABILITÀ
LINGUAGGI DI PROGRAMMAZIONE
Da Problema a Programmazione
Candidato : Giuseppe Circhetta Relatori :
1 Matteo Cristani Dipartimento di Informatica Facoltà di Scienze MM. FF. NN. Università degli Studi di Verona Corso di.
Elementi di Informatica di base
INFORMATICA MATTEO CRISTANI.
Automi LAVORO SVOLTO DA MARIO GERMAN O
Algoritmi e Strutture Dati
Problemi facili, problemi difficili
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 - Modelli di fase danalisi Ernesto Damiani Università degli Studi.
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si.
Automi temporizzati cooperanti (TCA) . Automi cooperanti (CA)  Un CA consiste di n automi finiti, ciascuno con insieme di stati, stato iniziale e tabella.
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
Informatica 3 V anno.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
4/26/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof.Anna Labella.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Linguaggi di programmazione: panoramica Linguaggi di programmazione ad alto livello: – –Programmazione procedurale – –Programmazione object oriented –
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
Elementi di semantica denotazionale ed operazionale
Macchine di Turing (1) Il modello di base ha un controllo finito, un nastro di input diviso in celle e una testa di lettura che esamina una cella alla.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
Automi temporizzati.
Problemi, algoritmi e programmazione
Corsi di Laurea in Biotecnologie
7/22/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella.
Politecnico di MilanoC.Brandolese, F.Salice Sintesi FSM – Prima parte Calcolatori Elettronici.
Algoritmi e Strutture Dati Luciano Gualà
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Transcript della presentazione:

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)