Professional Documents
Culture Documents
0/1 1/0 B
A/0
0 B/1
0 1
C/1 1
Mealy
Moore
Motivazione
Elementi di memoria necessari per memorizzare lo stato: N log2|S| Possono esistere stati ridondanti Eliminazione ridondanza
Diminuzione del numero di elementi di memoria Reti combinatorie pi semplici
Obiettivo
Individuazione di una macchina minima equivalente
Eliminazione degli stati non raggiungibili (dallo stato iniziale) Identificazione Stati equivalenti (per le macchine completamente specificate) Stati compatibili (per le macchine non completamente specificate)
Stato Irragiungibile
Dati:
Definizioni
I : sequenza di ingresso {i1, i2, i3, ..., iN} U : sequenza di uscita associata a I si , sj due stati generici
Non esiste alcuna sequenza di transizione che porti dallo stato iniziale (I) allo stato considerato ( Q)
I Q Lo stato Q irragiungibile I Q
Propriet:
Riflessiva: si ~ si Simmetrica:si ~ sj sj ~ si Transitiva: si ~ sj si ~ sk si ~ sk
Eliminazione di stati
Due stati indistinguibili sono equivalenti e possono essere sostituiti da un singolo stato
S1 ~ S2 S4 ~ S5 S5 ~ S6 S2 S3 S6 S4' S1' S3 S4
Regola di Paull-Unger
Definizione di indistinguibilit
Si devono considerare tutte le sequenze di ingresso Difficile applicabilit
Regola di Paull-Unger
Dopo aver esaminato tutte le coppie di stati, per ogni si e sj
si ~ sj perch esiste almeno un ingresso per cui le uscite sono diverse perch esiste un ingresso che porta a stati successivi distinguibili oppure si ~ sj perch per ogni ingresso dipendono da: coppie di cui stata provata la indistinguibilit la coppia in esame (si , sj) oppure Dipendono da un'altra coppia di stati di cui non si ancora provata la distinguibilit
Regola di Paull-Unger
Due stati si e sj sono indistinguibili se e solo se: (si , i) = (sj , i) i I (le uscite sono uguali per tutti i simboli di ingresso) (si , i) ~ (sj , i) i I (gli stati successivi sono indistinguibili per tutti i simboli di ingresso) La regola ricorsiva
Esempio
S0 S1 S2 S3 S4 0 S3/0 S4/0 S0/1 S1/1 S0/1 1 S1/1 S1/1 S2/1 S2/0 S2/0 S0 e S1 hanno la stessa uscita se gli stati successivi sono indistinguibili, S0~S1 S3 e S4 hanno la stessa uscita se gli stati successivi sono indistinguibili, S3~S4
Regola di Paull-Unger
Le relazioni di indistinguibilit si identificano con la Tabella delle Implicazioni
Mette in relazione ogni coppia di stati triangolare e manca della diagonale principale (simmetria e riflessivit)
L'indistinguibilit tra S0 e S1 dipende da quella tra S3 e S4 (e viceversa). Possiamo concludere che: S0~S1 e S3~S4 macchina equivalente S01' S2' S34' 0 1 S34'/0 S01'/1 S01'/1 S2'/1 S01'/1 S2'/0 [ (S0,S1) S01' ; S2 S2' ; (S3,S4) S34' ] S1 S2 S3
~ X S1
X S2
Regola di Paull-Unger
Per ogni coppia di stati Si , Sj
Se marcata come equivalente: non richiesta altra verifica Se si rimanda a un'altra coppia Sp , Sq se Sp , Sq sono equivalenti, Si , Sj sono equivalenti se Sp , Sq sono non equivalenti, Si , Sj sono non equivalenti se Sp , Sq dipendono da un'altra coppia, ripetere il procedimento iterativamente a b c d e f g
X X e
ad f
L'analisi termina quando ulteriori eliminazioni non sono possibili Le coppie rimanenti sono equivalenti
X X X d
X X e
X f
X X X d
X X e
X f
Analisi delle coppie di stati: a-b: c-g indistinguibile se lo a-e a~b a-d: b-g distinguibile a~d b-d: b-c distinguibile b~d b-e: c-g indistinguibile se lo a-e b~e e-d: b-g distinguibile e~d c-f: d-e indistinguibile se lo b-g f~c c-g: a-e indistinguibile g~c f-g: a-d indistinguibile se lo b-g g~f Stati equivalenti: S0: {a,b,e} S1: {c,g} S2: {d} S3: {f} Nuova tabella degli stati: S0 S1 S2 S3 0 S1/0 S0/1 S0/0 S2/1 1 S0/1 S1/0 S0/1 S3/0
Regola di Paull-Unger
Per una FSM completamente specificata, l'agoritmo di Paull-Unger
X be cf X d
X X e
X f
b c d e f g
~ X X ~ X X a
X X ~ X X b
~ X ~ X c
X ~ X d
X X e
X f
ab d
Si devono verificare i vincoli che discendono dall'imposizione delle uscite non specificate esempio: be se si scelgono entrambe le uscite nello stato e pari a 0, in questo caso per de e viceversa
ab d
Grafo di compatibilit
I nodi corrispondono agli stati
ab d
I nodi ni e nj sono collegati se gli stati corrispondenti sono compatibili I nodi ni e nj sono collegati se la loro compatibilit dipende dalla compatibilit del loro stato successivo Su ogni arco sono riportati i vincoli sulla compatibilit degli stati successivi
ab de X ad b e ae ac ae bc c ab d ab d ae bc ae ac c a de b de
b c d e
de X ab a
Grafo di compatibilit
I nodi corrispondono agli stati I nodi ni e nj sono collegati se gli stati corrispondenti sono compatibili I nodi ni e nj sono collegati se la loro compatibilit dipende dalla compatibilit del loro stato successivo Su ogni arco sono riportati i vincoli sulla compatibilit degli stati successivi
Grafo di compatibilit
Classe di compatibilit
Insieme di stati a coppie compatibili un poligono completo sul grafo di compatibilit Le classi di compatibilit non sono necessariamente disgiunte
Esempi di classi di compatibilit: ab la compatibilit tra due stati (nodi) sussiste solo se tutti i vincoli vengono accettati e utilizzati e ab d ae bc ae ac c a de b de a,b,c a,c,e c,d,e a,b c,e ... ab e ab d ae bc ae ac c a de b de
Grafo di compatibilit
Classe di massima compatibilit
Classe di compatibilit non contenuta in nessuna altra classe Sul grafo un poligono completo non contenuto in nessun altro poligono
Grafo di compatibilit
Insieme chiuso di classi di compatibilit
Insieme di classi di compatibilit i cui vincoli sono contenuti in almeno una classe dell'insieme Garantito che tutti i vincoli siano rispettati
de b de c c e ab d ae ac e
ab ae bc c
a ae bc
de b de c c
OK
Grafo di compatibilit
Copertura della Tabella degli Stati
Insieme di classi di compatibilit per cui ogni stato della Tabella degli Stati contenuto in almeno una classe di compatibilit
Minimizzazione Stati
Trovare il pi piccolo insieme chiuso di classi di compatibilit che copre l'insieme di stati su cui la macchina definita
L'insieme di tutte le classi di massima compatibilit chiuso e copre l'insieme degli stati della macchina
Esempi: {{a,b,c} , {a,c,e} , {c,d,e}} {{a,b} , {b,c} , {a,c,e} , {c,d,e}} ab e ab d ae bc ae ac c a de b de
Se si associa uno stato ad ogni classe di massima compatibilit si ottiene una nuova macchina con un numero di stati Possibilmente minore di quello di partenza Non necessariamente minimo
Esempio copertura
ab e ab d ae bc ae ac c a de b de e ab d ae ac ab e ae bc c ae bc c c a a de b de
Algoritmo
1. Inizializzare una lista L vuota 2. Finch il grafo non vuoto:
a. Individuare e ordinare le classi di massima compatibilit presenti sul grafo per dimensione b. Individuare la classe di compatibilit massima di dimensione massima presente sul grafo c. Inserire nella lista L tutti i vincoli presenti nella classe di compatibilit considerata d. Eliminare dalla lista L e dal grafo i vincoli soddisfatti dalla classe considerata
Copertura ammissibile: A={a,b,c} B={a,c,e} C={c,d,e} Non minima Condivisione di stati tra diverse classi
e. Eliminare dal grafo tutti i nodi (ed i relativi archi) appartenenti alla classe di compatibilit considerata che non appartengono a nessun vincolo presente nella lista L e/o nel grafo
3. Le classi cos individuate formano una partizione di compatibilit (insieme di classi di compatibilit chiuso)
Algoritmo - Esempio
ab e ab d ae bc ae ac c a de b de e ab d ae bc ae ac c ab a de b de d c e ae a de b de d d e a e
Algoritmo - Esempio
grafo
L = {de} classi di massima compatibilit: abc ace cde classe selezionata: abc vincoli nella classe selezionata: de
Algoritmo - Esempio
a b c d e 0 e/0 d/0 e/x a/1 a/x 1 a/0 b/0 c/x a/1 b/x S0 S1 0 S1/0 S0/1 1 S0/0 S0/1 a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0
Algoritmo Esempio 2
10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x b c d e f X bf ce ce bc a
X bf ad X b
X X ab c
ad X d
X e
b e c sono incompatibili a e f sono incompatibili c e e sono incompatibili a e e sono incompatibili a e e sono incompatibili d e e sono incompatibili
Algoritmo Esempio 2
a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0 10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x b c d e f X X X X a a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0
Algoritmo Esempio 2
10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x b c d e f X X X X a
X X X b
X X ab c
X X d
X e
X X X b
X X ab c
X X d
X e
b e f sono incompatibili a e d sono incompatibili b e f sono incompatibili b e d sono incompatibili b e c sono incompatibili a e f sono incompatibili c e e sono incompatibili a e e sono incompatibili a e e sono incompatibili d e e sono incompatibili f e ab
a b c d
Algoritmo Esempio 2
a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0 10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x S0 S1 S2 S3 00 S0/0 S1/0 S2/1 S2/x 01 S2/x S1/1 S0/0 S1/1 10 S1/1 S1/1 S0/0 -/x 11 S3/0 S3/0 S1/1 S0/0 a b c d e f 00 b/0 b/0 f/1 f/x -/x -/x 01 c/x -/x a/0 e/1 e/1 b/0
Algoritmo Esempio 2
10 -/x e/1 b/x -/x e/1 b/0 11 d/0 d/0 e/1 a/0 d/0 -/x S0 S1 S2 S3 00 S0/0 S1/0 S2/1 S2/x 01 S2/x S1/1 S0/0 S1/1 10 S1/1 S1/1 S0/0 -/x 11 S3/0 S3/0 S1/1 S0/0
Le classi non sono disgiunte: lo stato b appartiene sia a S0 che a S1 Al momento della realizzazione della macchina minima si deve stabilire la corrispondenza ogni volta che b compare come prossimo stato
(2 ) S! S
N
per 3 stati, codificati con 2 bit, si hanno 24 possibili codifiche per 4 stati, codificati con 2 bit, si hanno 24 possibili codifiche per 5 stati, codificati con 3 bit, si hanno 6720 possibili codifiche per 6 stati, codificati con 3 bit, si hanno 20160 possibili codifiche per 7 stati, codificati con 3 bit, si hanno 40320 possibili codifiche per 8 stati, codificati con 3 bit, si hanno 40320 possibili codifiche per 9 stati, codificati con 4 bit, si hanno 4151347200 possibili codifiche
Stati sj e sk tali che sj = (si , ia) e sk = (si , ib) con Hamming(ia , ib)=1
codifiche adiacenti
semplificazione di