Macchine non completamente specificate

Slides:



Advertisements
Presentazioni simili
Cosa sono? Come si risolvono?
Advertisements

Premessa: si assume di aver risolto (correttamente
Automi temporizzati.
Algoritmi e Strutture Dati
Strutture dati per insiemi disgiunti
I SISTEMI LINEARI.
x+x=2x Consideriamo la seguente frase:
CON CONTAMINAZIONI TRATTE DAI FONDAMENTI DELLA GEOMETRIA DI D.HILBERT
Gli Elementi di Euclide
Algoritmi e Strutture Dati (Mod. B)
INSIEMI INSIEME= gruppo di oggetti di tipo qualsiasi detti elementi dell’insieme. Un insieme è definito quando viene dato un criterio non ambiguo che.
Macchine sequenziali Capitolo 4.
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.
= 2x – 3 x Definizione e caratteristiche
Esercitazioni su circuiti combinatori
Università degli Studi di Roma Tor Vergata
Algoritmi e Strutture Dati
Introduzione ai circuiti sequenziali
Sintesi FSM – Prima parte
Identificazione delle attività
Analisi e sintesi di circuiti combinatori
Analisi e Sintesi di circuiti sequenziali
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
EQUAZIONI DI PRIMO GRADO AD UNA INCOGNITA
EQUAZIONI DI PRIMO GRADO
Liceo Scientifico "A.Volta" Reggio Calabria
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati 20 aprile 2001
Teoria degli INSIEMI A cura Prof. Salvatore MENNITI.
Modelli simulativi per le Scienze Cognitive
Algoritmi e Strutture Dati
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)
Corso di Matematica Discreta cont. 2
Prima e Seconda Forma Canonica
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
Esempi di Automi a stati Finiti
Una rete sequenziale asincrona è dotata di due
PROGETTO 1 Un lettore di musica digitale è dotato di un sistema per la regolazione del volume composto da tre pulsanti + e – e [] e progettato in modo.
Lezione multimediale a cura della prof.ssa Maria Sinagra
GLI INSIEMI Presentazione a cura della Prof.ssa anNUNZIAta DI BIASE
MOLTIPLICAZIONE COMBINATORIA
Prof. Cerulli – Dott.ssa Gentili
Strutture dati per insiemi disgiunti
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Algoritmi e Strutture Dati
3/29/2017 Minimizzazione.
Sottospazi vettoriali
FONDAMENTI DI INFORMATICA
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
Algebra di Boole.
Calcolo letterale.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Grammatiche Grammatiche libere da contesto Grammatiche regolari
Corso di Matematica Discreta 4
Sintesi Reti Combinatorie
Automi temporizzati.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Reti Logiche A Lezione 2.1 Sintesi di reti combinatorie a due livelli
Politecnico di MilanoC.Brandolese, F.Salice Sintesi FSM – Prima parte Calcolatori Elettronici.
Trasformazioni geometriche
Sintesi Sequenziale Sincrona
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Raccogliamo x al primo membro e 2 al secondo:
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Transcript della presentazione:

Macchine non completamente specificate

Calcolatori Elettronici - Politecnico di Milano Sommario Macchine non completamente specificate Compatibilità Riduzione del numero degli stati Metodo generale Calcolatori Elettronici - Politecnico di Milano

Macchine non completamente specificate Sono macchine in cui per alcune configurazioni degli ingressi e stati correnti non sono specificati gli stati futuri e/o le configurazioni d'uscita Una sequenza di ingresso si dice applicabile se: Per ogni simbolo d'ingresso della sequenza, La funzione stato prossimo l è specificata, tranne, al più, l'ultimo Due stati si e sj si dicono compatibili se Partendo da si e da sj Usando ogni possibile sequenza di ingresso applicabile Ia si ottengono le stesse sequenze d'uscita ovunque queste siano specificate La compatibilità tra si e sj si indica con: si  sj Calcolatori Elettronici - Politecnico di Milano

Macchine non completamente specificate La compatibilità è una relazione meno forte di quella di indistinguibilità. Non vale la proprietà transitiva cioè se si  sj e sj  sk può non essere si  sk Si consideri a tale proposito il seguente esempio: sequenza si: u1 u2 - u4 - - u7 . . . sequenza sj: u1 u2 u3 - - u6 u7 . . . sequenza sk: u1 u2 - u8 - u6 u7 . . . valori d'uscita diversi Calcolatori Elettronici - Politecnico di Milano

Riduzione del numero degli stati La regola di Paull - Unger è stata estesa per trattare il caso delle macchine non completamente specificate Due stati sono compatibili se e solo se, per ogni simbolo di ingresso ia valgono le due seguenti relazioni: l ( si, ia ) = l (sj, ia ) Se ambedue sono specificati Se uno o entrambi non sono specificati l'uguaglianza si ritiene soddisfatta d ( si, ia )  d ( sj, ia ) Se uno o entrambi non sono specificati la compatibilità si ritiene soddisfatta Calcolatori Elettronici - Politecnico di Milano

Riduzione del numero degli stati Poiché gli insiemi S ed I hanno cardinalità finita, dopo un certo numero di passi ci si troverà in una delle due condizioni: si  sj Se i simboli d'uscita sono diversi Se gli stati prossimi sono già stati verificati come non compatibili Se i simboli d'uscita sono uguali Se gli stati prossimi sono già stati verificati come compatibili Se gli stati prossimi sono già stati parte della sequenza di controllo Calcolatori Elettronici - Politecnico di Milano

Riduzione del numero degli stati Le relazioni di compatibilità possono essere identificate grazie alla Tabella delle Implicazioni Ogni elemento della tabella contiene: Il simbolo di compatibilità, se gli stati corrispondenti sono compatibili Le coppie di stati a cui si rimanda la verifica, se non è possibile pronunciarsi sulla compatibilità degli stati corrispondenti La relazione di compatibilità non è transitiva: i vincoli vanno mantenuti anche nelle successive fasi della minimizzazione Non si può immediatamente concludere che tutte le compatibilità sono soddisfatte E’ necessaria una analisi ulteriore della tabella delle implicazioni Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli stati Tabella delle implicazioni Tablla degli stati Grafo di compatibilità de  de x x ab ad ab ae ac a b c d b c d e bc 0 1 a e/0 a/0 b d/0 b/0 c e/- c/- d a/1 a/1 e a/- b/- a b c d e d,e a,b a,e a,c b,c Calcolatori Elettronici - Politecnico di Milano

Riduzione del numero degli stati Classe di compatibilità: Insieme di stati compatibili fra di loro a coppie Sul grafo di compatibilità una classe di compatibilità e rappresentata da un poligono completo Classe di massima compatibilità: Classe di compatibilità non contenuta in nessun altra classe Sul grafo di compatibilità una classe di massima compatibilità è individuata da un poligono completo non contenuto in nessun altro Insieme di classi di compatibilità chiuso: Per ogni classe dell'insieme tutti gli stati futuri ad essa relativi sono contenuti in almeno una classe dell'insieme, cioè, tutti i vincoli sono rispettati Copertura della tabella degli stati: Insieme di classi di compatibilità per cui ogni stato della tabella è contenuto in almeno una classe Calcolatori Elettronici - Politecnico di Milano

Riduzione del numero degli stati Risolvere il problema della minimizzazione del numero di stati significa: Trovare il più piccolo insieme chiuso di classi di compatibilità Verificare che l’insieme trovato copre l’insieme degli stati su cui è definita la macchina L'insieme di tutte le classi di massima compatibilità è chiuso e copre l’insieme S degli stati. Associando un nuovo stato ad una classe di massima compatibilità si ottiene una nuova macchina con un numero di stati: Possibilmente minore di quello della macchina di partenza Non necessariamente minimo Le classi di compatibilità non sono sempre disgiunte Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli stati Per prima cosa si individuano le classi di massima compatibilità: a c e a,b a,e b,c a b c d,e a b c d e d,e a,b a,e a,c b,c c d e a,b a,e - a,c Una copertura ammissibile è data dall’insieme delle classi di massima compatibilità: s0 = {a, b, c} s1 = {a, c, e} s2 = {c, d, e} Tale copertura non è necessariamente minima Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli stati Le classi che compongono la copertura proposta condividono diversi stati Si cerca un insieme più piccolo di classi di massima compatibilità che copra la la macchina data Si nota che gli stati nella classe {a, c, e} sono già coperti dalle due classi restanti a c e a,b a,e b,c a b c d,e a b c d,e c d e a,b a,e - a,c c d e a,b a,e - a,c Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli stati Le classi identificate sono dunque: s0 = {a, b, c} s2 = {c, d, e} Si deve verificare che tali classi formano un insieme chiuso: a b c d,e c d e a,b a,e a,c Le due classi s0={a, b, c} ed s2={c, d, e} non formano un insieme chiuso in quanto il vincolo (a,e) da cui dipende dc non è contenuto né in s0 né in s2 Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli stati Lo stato è già coperto dalla classe s0 per cui è possibile escluderlo dalla classe s2 Le classi risultanti da questa ultima scelta sono dunque: s0 = {a, b, c} s3 = {d, e} a b c d,e e a,b c d Le due classi s0={a, b, c} ed s3={d, e} formano un insieme chiuso: tutti i vincoli sono soddisfatti da un classe dell’insieme Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli stati Sulla base di: Tabella degli stati della macchina iniziale Insieme chiuso delle classi di compatibilità Si determina la nuova tabella degli stati corrispondente alla macchina ridotta Tablla degli stati Tablla ridotta degli stati 0 1 a e/0 a/0 b d/0 b/0 c e/- c/- d a/1 a/1 e a/- b/- 0 1 s0 s3/0 s0/0 s3 s0/1 s0/1 s0 = {a, b, c} s3 = {d, e} Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si consideri il seguente esempio più complesso Per prima cosa si determinano le classi di massima compatibilità: e a b c d f g h ad ab de be ab de ae ag de ab ad cd cd,fg ab ad eh {a,b,d,e} Ø {b,c,d} (a,b)(a,g)(d,e) {c,f,g} (c,d) (e,h) {d,e,h} (a,b) (a,d) {a,g} Ø Classi di massima compatibilità Vincoli Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si individuano le classi prime di compatibilità Si consideri la classe C0={a,b,d,e} Dato che l’insieme dei vincoli è vuoto, tale classe esclude tutte le sottoclassi C0,i infatti: C0,i C0 P0,i   Questa è una proprietà generale di tutte le classi di massima compatibilità il cui insieme dei vincoli è vuoto Le sottoclassi seguenti non sono quindi prime: {a,b,d}, {a,b,e}, {a,d,e}, {b,d,e} {a,b}, {a,d}, {a,e}, {b,d}, {b,e}, {d,e} {a}, {b}, {d}, {e} Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si consideri la classe C1={b,c,d} Le sottoclassi ed i relativi vincoli sono: {b,c}  prima {b,d} (a,b)(d,e) esclusa da C0 {c,d} (a,g)(d,e) prima {b}  esclusa da C0 {c}  esclusa da {b,c} {d}  esclusa da C0 Restano le due sottoclassi: {b,c}  {c,d} (a,g)(d,e) b c d ab de ag de Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si consideri la classe C2={c,f,g} Le sottoclassi ed i relativi vincoli sono: {c,f} (c,d) prima {c,g} (c,d)(f,g) prima {f,g} (e,h) prima {c}  esclusa da {b,c} {f}  prima {g}  esclusa da C4={a,g} Restano le quattro sottoclassi: {c,f} (c,d) {c,g} (c,d)(f,g) {f,g} (e,h) {f}  c f g cd cd,fg eh Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si consideri la classe C3={d,e,h} Le sottoclassi ed i relativi vincoli sono: {d,e}  esclusa da C0 {d,h}  prima {e,h} (a,b)(a,d) esclusa da C3 {d}  esclusa da C0 {e}  esclusa da C0 {h}  esclusa da {d,h} Restano le sola sottoclasse: {d,h}  e d h ab ad Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si consideri la classe C4={a,g} Essendo vuoto l’insieme dei vincoli, le sottoclassi non sono prime per la proprietà già vista a g Si costruisce quindi una tabella che raccoglie tutte le classi prime (massime e non) che sono state individuate nei passi precedenti Sulla base della tabella si procede alla selezione dell’insieme minimo di tali classi che siano una copertura per la macchina data Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale La tabella è la seguente: {a,b,d,e} Ø {b,c,d} (a,b)(a,g)(d,e) {c,f,g} (c,d) (e,h) {d,e,h} (a,b) (a,d) {a,g} Ø {d,h} Ø {c,f} (c,d) {c,g} (c,d) (f,g) {f,g} (e,h) {b,c} Ø {c,d} (a,g)(d,e) {f} Ø Classi prime Vincoli a 2 classi b 3 classi c 6 classi d 5 classi e 2 classi f 4 classi g 4 classi h 2 classi Stati Vincoli Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Il metodo per l’individuazione della copertura minima si basa sulla costruzione degli alberi di copertura Il metodo si divide in tre passi: Scelta delle radici degli alberi Costruzione degli alberi Individuazione dei cammini chiusi Scelta del cammino chiuso minimo Su ogni albero possono essere individuati più cammini Un cammino chiuso corrisponde ad una insieme chiuso di classi di compatibilità prime Un cammino chiuso è quindi una copertura Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Le radici sono scelte secondo il seguente metodo: Si scelgono gli stati con un numero minimo di vincoli (cioè gli stati che appartengono al minimo numero di classi prime di compatibilità Le radici degli alberi sono le classi di compatibilità cui gli stati scelti appartengono a 2 classi b 3 classi c 6 classi d 5 classi e 2 classi f 4 classi g 4 classi h 2 classi Stati Vincoli {a,b,d,e},{a,g} {a,b,d,e},{d,e,h} {d,e,h},{d,h} Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si consideri la costruzione dell’albero con radice {a,b,d,e} {a,b,d,e}  Tale scelta copre gli stati a,b,d ed e a 2 classi b 3 classi c 6 classi d 5 classi e 2 classi f 4 classi g 4 classi h 2 classi Stati Vincoli Già coperti da {a,b,d,e} Lo stato h è quello non coperto che compare nel numero minore di classi Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Lo stato h compare nelle due classi {d,e,h} ed {d,h} Si aggiungono all’albero due nodi corrispondenti alle due classi Si consideri ora solo il percorso formato con la classe {d,h} {a,b,d,e}  {d,h}  Ancora, degli stati rimasti si selezionano quelli che compaiono nel numero minore di classi: f e g Le classi in cui compaiono sono {c,f,g},{c,f},{c,g},{f,g}, {f} Si seleziona la classe {c,f,g} poiché: Copre entrambi gli stati Copre anche lo stato aggiuntivo c Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Il percorso diviene quindi: {a,b,d,e}  {d,h}  {C,f,g} (c,d)(e,h) Il nodo aggiunto al percorso ha un insieme dei vincoli non vuoto I vincoli introdotti non sono coperti da nessuna delle classi nel percorso, inclusa la classe appena aggiunta E’ quindi necessario aggiungere tutte le possibili combinazioni di classi che coprono tali vincoli Il vincolo (e,h) è coperto dalla classe {d,e,h} La classe {d,e,h} è aggiunta al percorso Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Il percorso diviene quindi: {a,b,d,e}  {d,h}  {C,f,g} (c,d)(e,h) {d,e,h} (a,d)(a,b) I nuovi vincoli introdotti sono soddisfatti dalla classe {a,b,d,e}, già presente nella catena Resta da soddisfare il vincolo: (c,d) dal nodo precedente Tale vincolo è coperto dalle classi {c,d} e {b,c,d} La scelta è arbitraria Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Selezionando {c,d} Il percorso diviene quindi: {a,b,d,e}  {d,h}  {C,f,g} (c,d)(e,h) {d,e,h} (a,d)(a,b) {c,d} (a,g)(d,e) Alcuni dei nuovi vincoli introdotti sono già coperti dalle classi presenti nel percorso Resta da soddisfare il vincolo: (a,g) introdotto dalla nuova classe Tale vincolo è coperto dalla classe {a,g} che va quindi aggiunta al percorso Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Il percorso diviene quindi: {a,b,d,e}  {d,h}  {c,f,g} (c,d)(e,h) {d,e,h} (a,d)(a,b) {c,d} (a,g)(d,e) {a,g}  La classe aggiunta non introduce nuovi vincoli Il procedimento di costruzione del percorso termina poiché: Tutti i vincoli sono soddisfatti dalle classi della catena Tutti gli stati sono coperti dalle classi della catena Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale La scelta della classe {d,h} al secondo passo è stata arbitraria La classe {d,e,h} costituisce una alternativa equivalente In questo caso il percorso è: {a,b,d,e}  {d,e,h} (a,d)(a,b) I vincoli sono soddisfatti ma gli stati c, f e g non sono coperti Si seleziona f (4 vincoli) e la classe {f,g} {a,b,d,e}  {d,e,h} (a,d)(a,b) {f,g} (e,h) Il vincolo è soddisfatti ma lo stato c non è coperto Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Lo stato c compare in 6 classi ma si nota che la classe {b,c} non introduce nuovi vincoli {a,b,d,e}  {d,e,h} (a,d)(a,b) {f,g} (e,h) {b,c}  Tutti gli stati sono coperti Tutti i vincoli introdotti sono soddisfatti dalle classi che compongono il percorso Il procedimento di costruzione termina Questo nuovo percorso utilizza solo 4 classi per cui la nuova macchina è composta da soli 4 stati Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale Si considerino i percorsi appena analizzati La scelta della radice è arbitraria in quanto esistono diverse classi i cui stati hanno il numero minore di vincoli di appartenenza La scelta delle classi successive non sempre risulta obbligata Il procedimento per la determinazione della macchina minima prevede la costruzione di tutti i percorsi possibili Il risultato consiste in un insieme di alberi con differenti radici La macchina minima è ottenuta selezionando le classi che costituiscono il percorso più breve tra tutti quelli possibili sugli alberi costruiti Alcuni percorsi possono essere identici a meno dell’ordinamento La macchina minima può non essere unica Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generale L’albero (incompleto) con radice {a,b,d,e} è il seguente: {a,b,d,e}  {d,h}  {d,e,h} (a,d)(a,b) {c,g} (c,d)(f,g) {c,f,g} (c,d)(e,h) {f,g} (e,h) {c,f} (c,d) {f}  {c,f,g} (c,d)(e,h) {f,g} (e,h) {c,f} (c,d) {d,e,h} (a,d)(a,b) {d,e,h} (a,d)(a,b) {c,d} (a,g)(d,e) {b,c}  {b,c,d} (a,b)(a,g)(d,e) {b,c,d} (a,b)(a,g)(d,e) {c,d} (a,g)(d,e) {b,c}  {c,d} (a,g)(d,e) {a,g}  {a,g}  {a,g}  {a,g}  {a,g}  Calcolatori Elettronici - Politecnico di Milano