Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

34
Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate

Transcript of Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Page 1: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Macchine non completamente specificate

Page 2: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

SommarioSommario

• Macchine non completamente specificate

• Compatibilità

• Riduzione del numero degli stati

• Metodo generale

Page 3: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

• 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

è 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 I• si ottengono le stesse sequenze d'uscita ovunque queste siano

specificate

• La compatibilità tra si e sj si indica con: si sj

Macchine non completamente specificateMacchine non completamente specificate

Page 4: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

• 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

Macchine non completamente specificateMacchine non completamente specificate

Page 5: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

• 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 ivalgono le due seguenti relazioni:

( si, i) = (sj, i) • Se ambedue sono specificati• Se uno o entrambi non sono specificati l'uguaglianza si ritiene soddisfatta

( si, i) ( sj, i) • Se ambedue sono specificati • Se uno o entrambi non sono specificati la compatibilità si ritiene

soddisfatta

Riduzione del numero degli statiRiduzione del numero degli stati

Page 6: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

• 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

• si sj

• 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

Riduzione del numero degli statiRiduzione del numero degli stati

Page 7: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

• 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

Riduzione del numero degli statiRiduzione del numero degli stati

Page 8: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

a

b

cd

e

d,e

d,e

a,b

a,b

a,ea,c

a,eb,c

Esempio - Riduzione del numero degli statiEsempio - Riduzione del numero 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/-

Tablla deglistati

Tabella delleimplicazioni

de

de

x x

ab ad ab

aeac

a b c d

b

c

d

eaebc

Grafo dicompatibilità

Page 9: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

• 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

Riduzione del numero degli statiRiduzione del numero degli stati

Page 10: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

• 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

Riduzione del numero degli statiRiduzione del numero degli stati

Page 11: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli statiEsempio - Riduzione del numero degli stati

a

b

cd

e

d,e

d,e

a,b

a,b

a,ea,c

a,eb,c

a

b

c

d,e

d,e

a

c

e

a,b

a,eb,c

cd

e

a,b

a,e - a,c

• Per prima cosa si individuano le classi di massima compatibilità:

• 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

Page 12: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli statiEsempio - Riduzione del numero degli stati

a

b

c

d,e

d,e

a

c

e

a,b

a,eb,c

cd

e

a,b

a,e - a,c

• 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

b

c

d,e

d,e

cd

e

a,b

a,e - a,c

Page 13: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli statiEsempio - 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

d,e

cd

e

a,b

a,ea,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 dc non è contenuto né in s0 né in s2

Page 14: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli statiEsempio - 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

d,e

cd

e

a,b

• 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

Page 15: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio - Riduzione del numero degli statiEsempio - 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

0 1

a e/0 a/0

b d/0 b/0

c e/- c/-

d a/1 a/1

e a/- b/-

Tablla deglistati

s0 = {a, b, c} s3 = {d, e}

0 1

s0 s3/0 s0/0

s3 s0/1 s0/1

Tablla ridottadegli stati

Page 16: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – Metodo generale

• Si consideri il seguente esempio più complesso• Per prima cosa si determinano le classi di massima compatibilità:

e

a

b

c

df

g

had

ab de

be abde

ae

agde

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

Page 17: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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}

Page 18: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 19: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 20: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 21: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 22: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 23: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 24: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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}

Page 25: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 26: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 27: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 28: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 29: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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)

• 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

{c,d}

(a,g)(d,e)

Page 30: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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)

• 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

{c,d}

(a,g)(d,e)

{a,g}

Page 31: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 32: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – Metodo generale

• Lo stato c compare in 6 classi ma si nota che la classe {b,c} non introduce nuovi vincoli

{b,c}

{a,b,d,e}

{d,e,h}

(a,d)(a,b)

{f,g}

(e,h)

• 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

Page 33: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – 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

Page 34: Calcolatori Elettronici - Politecnico di Milano Macchine non completamente specificate.

Calcolatori Elettronici - Politecnico di Milano

Esempio – Metodo generaleEsempio – Metodo generale

• L’albero (incompleto) con radice {a,b,d,e} è il seguente:{a,b,d,e}

{d,e,h}

(a,d)(a,b)

{d,e,h}

(a,d)(a,b)

{d,h}

{c,f,g}

(c,d)(e,h)

{c,g}

(c,d)(f,g)

{f,g}

(e,h)

{c,f}

(c,d)

{d,e,h}

(a,d)(a,b)

{b,c,d}

(a,b)(a,g)(d,e)

{c,d}

(a,g)(d,e)

{a,g}

{a,g}

{b,c}

{c,d}

(a,g)(d,e)

{a,g}

{f}

{c,f,g}

(c,d)(e,h)

{f,g}

(e,h)

{c,f}

(c,d)

{c,d}

(a,g)(d,e)

{b,c}

{b,c,d}

(a,b)(a,g)(d,e)

{a,g}

{a,g}