Automi temporizzati.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Automi finiti deterministici (DFA) (1)
Automi temporizzati.
Sistemi dinamici discreti e computabilità intrinseca
Alfabeti, Stringhe e Linguaggi
LR Parser Giuseppe Morelli. La maggior parte dei parser Bottom-Up è costituita dai cosiddetti parser LR(k) dove: L indica il verso dellanalisi della stringa.
Linguaggi Regolari e Linguaggi Liberi
Tabelle LALR Costruzione delle tabelle LALR Metodo LALR Introduciamo lultimo metodo di costruzione di tabelle per il parsing LR Nome: lookahead-LR abbreviato.
Costruzione delle tabelle di parsing LR canoniche
Costruzione di tabelle di Parsing SLR
Matematica I: Calcolo differenziale, Algebra lineare, Probabilità e statistica Giovanni Naldi, Lorenzo Pareschi, Giacomo Aletti Copyright © The.
Algebra parziale con predicati
Informazioni sul Corso
1. Classificazione dei sistemi e dei modelli
1. Classificazione dei sistemi e dei modelli
1 2. Introduzione alla probabilità Definizioni preliminari: Prova: è un esperimento il cui esito è aleatorio Spazio degli eventi elementari : è linsieme.
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.
4. Automi temporizzati Il comportamento dei sistemi ad eventi temporizzati non è definito semplicemente da una sequenza di eventi o di valori dello stato,
Model Checking.
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Macchine non completamente specificate
Analisi e sintesi di circuiti combinatori
Analisi e Sintesi di circuiti sequenziali
Il problema del minimo albero ricoprente in un grafo con archi privati
Algoritmi e Strutture Dati (Mod. B)
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
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)
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Alfabeti, Stringhe e Linguaggi Def: un insieme è una collezione non ordinata di oggetti o elementi Gli insiemi sono scritti tra { }. Gli elementi sono.
Semantica di Tarski.
Corso di Matematica Discreta cont. 2
Intelligenza Artificiale
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
LINGUAGGI DI PROGRAMMAZIONE
Algoritmi e Programmazione strutturata
Automi LAVORO SVOLTO DA MARIO GERMAN O
Introduzione ai linguaggi formali e alle stringhe
Facoltà di Ingegneria Corso di Laurea: Insegnamento: Lezione n°: Titolo: Docenti: INGEGNERIA AUTOMAZIONE II 2 LINGUAGGI FORMALI ED AUTOMI PROF. ALESSANDRO.
Università degli studi di Lecce
Che cosa è un insieme convesso?
è … lo studio delle caratteristiche di regolarità dei fenomeni casuali
Automi temporizzati cooperanti (TCA) . Automi cooperanti (CA)  Un CA consiste di n automi finiti, ciascuno con insieme di stati, stato iniziale e tabella.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
1 Informazioni sull’esame §Esame orale su tutti gli argomenti trattati a lezione §Seminario: studio di un argomento avanzato, tipicamente di un formalismo.
Algebra di Boole.
Informatica 3 V anno.
Calcolo letterale.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
4 < 12 5 > −3 a < b a > b a ≤ b a ≥ b
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Circuiti di memorizzazione elementari: i Flip Flop
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Automi a pila (1) Un automa a pila (PDA) è M = (Q, S, G, d, q0, Z0, F) dove: Q insieme finito di stati S alfabeto finito di input 3. G alfabeto di pila.
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Grammatiche non contestuali (1)
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.
Espressioni regolari (1)
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
Problemi, algoritmi e programmazione
APPUNTI DI GEOMETRIA ANALITICA DELLA RETTA
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
GLI INSIEMI per la classe 1ai Prof: Paolo Govoni
1 VARIABILI CASUALI. 2 definizione Una variabile casuale è una variabile che assume determinati valori in modo casuale (non deterministico). Esempi l’esito.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Luoghi di punti In geometria il termine
Transcript della presentazione:

Automi temporizzati

Automi e Linguaggi Formali Vari tipi di macchine a stati finiti (automi) e relazioni con le grammatiche Classi di linguaggi, la gerarchia di Chomsky Applicazioni importanti di questi risultati teorici: compilatori, parser…..

Automi e Verifica di Sistemi Gli automi sono utilizzati anche in molti metodi formali (e realtivi tool) per la verifica di sistemi per esempio tramite la specifica di proprieta’ con logiche temporali Varie estensioni per modellare sistemi concorrenti e distribuiti Automi concorrenti, cooperanti, gerarchici Non avremo tempo di studiare questi modelli (argomenti di seminari)

Automi Temporizzati L’obiettivo e’ di avere uno strumento di specifica per sistemi real-time, il cui comportamento dipende da vincoli temporali Si estendono gli automi a stati finiti (in realta’ gli automi su stringhe infinite) con una nozione di tempo continuo Rajeev Alur and David L. Dill, A Theory of Timed Automata, Theoretical Computer Science 126:183-235, 1994.

w-linguaggi e w-automi (1) Un w-linguaggio su un alfabeto finito S e’ un sottoinsieme di Sw, l’insieme di tutte le stringhe infinite su S. Una tabella di transizione A e’ una quadrupla <S,S,S0,E> dove S alfabeto di input S insieme finito di stati S0S insieme di stati iniziali E  SSS insieme di archi etichettati

w-linguaggi e w-automi (2) L’automa descritto dalla tabella - parte da uno stato iniziale, - se <s,s’,a>E e si trova nello stato s leggendo il simbolo a passa nello stato s’ Per una stringa s = s1 s2 s3 … su S r = s0 s1 s2 … e’ un run di A su S purche’ s0S0 e <si-1,si,si>E per i1. s1 s2 s3

w-linguaggi e w-automi (3) Per un run, l’insieme inf(r) consiste degli stati sS tali che s=si per un numero infinito di i0.

Automi di Büchi (1) Un automa di Büchi e’ una tabella di transizione <S,S,S0,E> con un insieme addizionale FS di stati di accettazione. Un run di A su una stringa sSw e’ un run di accettazione se inf(r)F. Almeno uno stato di accettazione deve essere ripetuto infinite volte.

Automi di Büchi (2) Il linguaggio accettato da A consiste delle stringhe sSw tali che A ha un run di accettazione leggendo s. s0 s1 a a,b a L’automa accetta tutte le stringhe su {a,b} con un numero finito di b. Un w-linguaggio e’ regolare se e’ accettato da un automa di Büchi.

Automi di Büchi (3) s0 a s1 b b,c a,c s0 a s1 Sw – L1 a,c a,b,c L1 dopo una occorrenza di a ci sono occorrenze di b b b,c a,c s0 a s1 Sw – L1 a,c a,b,c

Automi di Büchi (4) s0 a s1 s2 b, c b, c b,c a tra due occorrenze di a, c’e’ un numero pari di occorrenze di b e c (anche zero)

Automi di Büchi (5) Sugli automi di Buchi sono state studiate tutta una serie di proprieta’ ed algoritmi (che estendono i risultati visti per i linguaggi regolari) Caretterizzazione alternativa: Automi di Muller Non approfondiremo (anche questo argomento potrebbe essere argomento di un seminario)

Automi di Büchi (7) Un automa di Büchi A=<S,S,S0,E> e’ deterministico se e solo se c’e’ un singolo stato iniziale (|S0|=1), il numero di archi etichettati da s, uscenti dallo stato s, e’ al piu’ uno per tutti gli stati sS e tutti i simboli sS. La classe dei linguaggi riconosciuti dagli automi deterministici e’ strettamente contenuta in quella degli w-linguaggi regolari.

Automi di Büchi (8) s0 s1 a a,b a Non c’e’ nessun automa deterministico che riconosce (a+b)*aw

Linguaggi temporizzati (1) Modello del tempo: numeri reali non negativi, R. Una sequenza temporale t = t1 t2 t3 … e’ una sequenza infinita di valori tiR che soddisfa: monotonicita’: t1 < t2 , i1. progresso: per ogni t R c’e’ un i1 tale che ti > t.

Linguaggi temporizzati (2) Una stringa temporizzata su S e’ (s,t) dove = s1 s2 s3 … e’ una stringa infinita su S e t e’ una sequenza temporale. Una stringa temporizzata puo’ essere vista come input di un automa. Il simbolo si e’ letto al tempo ti. Un linguaggio temporizzato su S e’ un insieme di stringhe temporizzate su S.

Linguaggi temporizzati (3) Il Linguaggio L1={(s,t)| per ogni i, (ti>5.6)=>(si=a)} su {a,b} e’ il linguaggio delle stringhe temporizzate in cui non ci sono b dopo il tempo 5.6. L1={((ab)w,t)| per ogni i, (t2i- t2i-1) < (t2i+2- t2i+1)} su {a,b} e’ il linguaggio delle sequenze di a e b in cui le differenze tra i tempi delle a e delle b aumentano.

Linguaggi temporizzati (4) Per un linguaggio L su S, Untime(L) e’ l’w-linguaggio composto dalle stringhe s  Sw tali che per (s,t) L per qualche sequenza temporale t. Esempio Untime(L1)=(a+b)*aw Untime(L2)=(ab)w

Automi temporizzati (1) La tabella di transizione e’ estesa a tabella di transizione temporizzata. Alla tabella e’ associato un insieme di orologi (variabili a valori reali) Gli orologi avanzano tutti contemporaneamente Un orologio puo’ essere azzerato da una transizione. In qualsiasi istante il valore di un orologio da’ il tempo passato dal suo ultimo azzeramento.

Automi temporizzati (1) Ogni transizione puo’ avere un vincolo sul valore degli orologi. Lo stato successivo dipende non solo dal simbolo letto, ma anche dal tempo del simbolo letto rispetto ai tempi dei simboli precedenti.

Automi temporizzati (2) s0 a, x:=0 s1 b, (x<2)? L1={((ab)w,t)| per ogni i, t2i<t2i-1 + 2} Il ritardo tra ogni a e il b successivo e’ al massimo 2

Automi temporizzati (3) d, (y>2)? s0 s1 s2 s3 b, y:=0 c, (x<1)? a, x:=0 L1={((abcd)w,t)| per ogni i, (t4j+3<t4j+1 + 1) e (t4j+4>t4j+2 + 2) } Il clock x misura il ritardo tra a e il c successivo (< 1) Il clock y misura il ritardo tra b e il d successivo (> 2)

Automi temporizzati (4) Dato un insieme di orologi X, l’insieme F(X) di vincoli sugli orologi d e’ definito induttivamente come = xc | cx |  | 1  2 c costante intera Un’interpretazione n per un insieme di orologi X e’ una funzione da X a R, n: X  R. Una interpretazione n per X soddisfa un vincolo d se e solo se d e’ valutato a “vero” per i valori dati da d.

Automi temporizzati (5) Per t  R, n+t denota l’interpretazione che assegna a x il valore n(x)+t . Per YX, [Yt] n denota l’interpretazione che assegna t a ciascun orologio yY e assegna n(z) a tutti gli orologi zY.

Automi temporizzati (6) Una tabella di transizione temporizzata A e’ data da una quintupla <S,S,S0,C,E>, dove S alfabeto di input S insieme finito di stati S0S insieme di stati iniziali C insieme di orologi E  SSS(C)F(C) insieme di archi Una transizione e’ <s,s’,a,l,d> dove: a e’ il simbolo di input lC e’ l’insieme di orologi che la transizione azzera d e’ il vincolo temporale

Linguaggio Accettato Un automa temporizzato e’ dato da una tabella temporizzata e da un insieme FS di stati di accettazione. Per definire il linguaggio accettato dobbiamo estendere il concetto di computazione, run Le stringhe temporizzate accettate saranno quelle che contengono almeno uno stato di F infinite volte

Computazioni Data una tabella temporizzata <S,S,S0,C,E>, uno stato esteso e’ dato da una coppia <s,n>, dove sS e n e’ una interpretazione per i clock C. Un run e’ una sequenza infinita di stati estesi, in cui ad ogni mossa viene letto un simbolo, e viene fatto avanzare il tempo in modo conforme ai vincoli temporali Inizialmente, l’automa si trova in uno dei suoi stati iniziali e i valori dei clocks sono tutti zero

Run Data una tabella temporizzata <S,S,S0,C,E>, un run r su una stringa temporizzata (s,t) e’ una sequenza infinita di stati estesi, <s_0,n_0>, <s_1,n_1>, <s_2,n_2>,….. dove n_0(x)=0 per ogni orologio x e s_0  S0 per ogni i>=1 esiste <s_i-1,s_i, s _i,l,d>  E dove 1) n _i -1 + (t _i - t _i -1) soddisfa d 2) n _i = [Y0] n _i -1 + (t _i - t _i -1) per ogni clock Y di l o stato esteso e’ dato da una coppia <s,n>, dove sS e n e’ una interpretazione per i clock C. Un run e’ una sequenza infinita di stati estesi, in cui ad ogni mossa viene letto un simbolo, e viene fatto avanzare il tempo in modo conforme ai vincoli temporali Inizialmente, l’automa si trova in uno dei suoi stati iniziali e I valori dei clocks sono tutti zero

Linguaggio Accettato Un run r su una stringa temporizzata (s,t) e’ accettante sse inf(r)F. Il linguaggio accettato e’ quello delle stringhe temporizzate che hanno almeno un run accettante Un linguaggio temporizzato e’ regolare se esiste un automa di Büchi temporizzato che lo accetta.

Automi temporizzati (7) s0 s1 s2 b, (x<2) s3 b a, {x} a a, {x} L1={((ab)w,t)| per ogni i esiste ji: t2j<t2j-1 + 2}

Automi temporizzati (8) a,b, x<3 s0 a, {x}, x=3 L1={(s,t)| per ogni i esiste ji: tj=3i e sj = a}

Automi temporizzati (9) In un linguaggio temporizzato i simboli possono essere arbitrariamente vicini s0 s1 s2 a, {x}, x=1 s3 b, {y} a, {x}, x=1 b, {y}, y<1 L1={((ab)w,t)| per ogni i: (t2i-1=i) e (t2j - t2j-1 > t2j+2 -t2i+1)} La differenza dei tempi di una a e la b successiva e’ strettamente decrescente.

Automi temporizzati (17) Sono state studiate varie proprieta’ (classici problemi di decisione) dei TA Alcuni problemi sono decibili (esistono algoritmi effettivi), altri problemi sono indecidibili In generale gli stati estesi sono infiniti! Presenteremo un algoritmo (un risultato importante) che permette di verificare se il linguaggio accettato da un automa temporizzato e’ vuoto: esiste almeno una stringa temporizzata in L(A) ?

Automi temporizzati (17) Idea: costruire un automa di Buchi (senza tempo) a stati finiti che accetta tutte e sole le stringhe di Untime(L(A)) Ricordiamo che Untime(L(A)) sono le stringhe s  Sw tali che per (s,t) L(A) E’ evidente che esiste una stringa s  Untime(L(A)) sse esiste una sequenza temporizzata t tale che (s,t) L(A) Non e’ possibile buttare via il tempo ed i vincoli di tempo perche’ Untime(L(A)) dipende dal tempo Infatti i vincoli temporali sulle transizioni influenzano le mosse possibili in un certo stato esiste almeno una stringa temporizzata in L(A) ?

Automa delle Regioni In generale gli stati estesi sono infiniti, ma si possono raggruppare in un numero finito di insiemi con le stesse proprieta’. In particolare, gli stati estesi possono essere partizionati in classi di equivalenza, che mettono insieme le interpretazioni che sono simili

Automa delle Regioni Se per due stati estesi i valori clock hanno la stessa parte intera e lo stesso ordinamento sulla parte frazionaria di tutti i clock, allora i cammini a partire dai due stati sono gli stessi. Li possiamo identificare Dato tR, fract(t) denota la parte frazionaria e t la parte intera. t = t +fract(t)

Automa delle regioni (1) Sia A=<S,S,S0,C,E> una tabella temporizzata. Per ogni xC sia cx la piu’ grande costante tale che xcx o xcx occorre in E. La relazione di ~ equivalenza e’ definita sull’insieme delle interpretazioni per C: n~n’ se e solo se valgono le seguenti condizioni: per tutti gli xC n(x) e n’(x) hanno lo stesso valore oppure n(x) e n’(x) sono entrambi maggiori di cx per tutti gli x,yC con n(x) cx e n(y) cy, fract(n(x))  fract(n(y)) se e solo se fract(n’(x))  fract(n’(y)) per tutti gli xC con n(x) cx, fract(n(x)) =0 se e solo se fract(n’(x)) =0 Una “clock region” e’ una classe di equivalenza di ~, denotata [n]

Automa delle regioni (2) Si consideri una tabella temporizzata con due orologi, x e y, e cx=2, cy=1. Regioni 6 vertici (es. [(0,1])) segmenti (es. 0<x=y<1) 8 regioni (es 1<x<2  0<y<1  fract(x)<fract(y)) y 1 1 2 x

Automa delle regioni (intuizione) s2 b, y=1 c, x<1 c, x=1 a, {y} s0 s1 s3 d, x>2 n(x)=1.5, n(y)=2.2 n’ (x)=1.5, n’(y)=1.9 a, {y}, y<1 y n(x)=1.2, n(y)=0.9 n’ (x)=1.4, n’(y)=0.7 1 n(x)=1, n(y)=0.6 n’ (x)=1, n’(y)=0.4 1 2 x

Automa delle Regioni Dato A=<S,S,S0,C,E> costruiamo l’automa delle regioni (A). Uno stato di (A) consiste in uno stato di A e di una classe di equivalenza del valore degli orologi, s,[n]> . Lo stato s,[n]> simula tutti gli stati estesi <s,n> di A per ogni interpretazione n

Automa delle Regioni Proprieta’ importanti delle clock regions: Le clock regions sono finite (gli stati sono finiti) Ogni interpretazione all’interno di una classe di equivalenza soddisfa esattamente gli stessi vincoli le interpretazioni nella classe soddisfano gli stessi vincoli (possono eseguire la stessa transizione, ma con tempi diversi)!!! Rimane da capire come definire le mosse dell’automa delle regioni

Successore Temporale Una regione a’ e’ un successore temporale della regione a se e solo se per ogni na, esiste un tR, positivo, tale che n+ta’. Data la forma dei clocks e la definizione di equivalenza tra interpretazioni esiste un semplice algoritmo per determinare tutti e soli i successori temporali di una clock region Facciamo vedere un esempio

Automa delle regioni (4) Costruiamo i successore temporali di una regione a. Ricordiamo che una regione e’ definita da: per ogni orologio un vincolo x=c, c-1<x<c oppure x>cx. per ogni coppia x e y tale che c-1<x<c e d-1<y<d compaiono in 1. l’ordine tra fract(x) e fract(y). linea dei successori temporali y 1 1 2 x

Automa delle regioni (6) Dato A=<S,S,S0,C,E> il corrispondente automa delle regioni (A) e’ definito nel modo seguente: Gli stati di (A) sono coppie <s,a> dove sS e a e’ una regione. Gli stati iniziali sono della forma <s0,[n0]> dove s0S0 e n0(x)=0 per tutti gli orologi di C. (A) ha un arco <<s,a>,<s’,a’>,a> se e solo se c’e’ un arco <s,s’,a,l,d>E e una regione a’’ tale che (1) a’’ e’ un successore temporale di a, (2) a’’ soddisfa d, e (3) a’=[l0]a’’.

Automa delle regioni (7) s2 b, y=1 c, x<1 c, x<1 a, {y} s0 s1 s3 d, x>1 a, {y}, y<1 s0 x=y=0 a a b a b s1 0=y<x<1 s1 0=y, 1=x s1 0=y, 1<x s2 1=y<x b a a c d a d a s3 0<y<x<1 d s3 0<y<1<x d s3 1=y<x d s3 1<y, 1<x d d d

Automa delle regioni (8) Per un automa temporizzato A=<S,S,S0,C,E>, il suo automa delle regioni puo’ essere utilizzato per accettare Untime(L(A)) Teorema Dato un automa temporizzato A=<S,S,S0,C,E>, esiste un automa di Büchi su S che accetta Untime(L(A)). L’automa delle regioni puo’ essere utilizzato per dimostrare che il linguaggio accettato da un automa temporizzato e’ vuoto. La costruzione e’ comunque alla base di altri algoritmi per TA, anche per la verifica di sistemi