Corso di Reti Logiche Minimizzazione degli Stati nelle Macchine Sequenziali Dipartimento di Informatica e Sistemistica Università Degli Studi di Napoli Federico II 1
Le Macchine o Automi E necessario individuare il comportamento del sistema che stiamo realizzando indipendentemente da come questo viene fisicamente costruito Gli Automi sono un buono strumento per rappresentare questo comportamento
Il Modello Matematico Macchina di Mealy Una macchina sequenziale (a stati finiti) è una quintupla ordinata di enti M(Q,I,U,t,w), dove: Q è un insieme finito di Stati Interni I è un insieme finito di Stati di Ingresso U è un insieme finito di Stati di Uscita t è una funzione D Q I Q w è una funzione D Q I U
Il Modello Matematico Macchina di Moore Una macchina sequenziale (a stati finiti) è una quintupla ordinata di enti M(Q,I,U,t,w), dove: Q è un insieme finito di Stati Interni I è un insieme finito di Stati di Ingresso U è un insieme finito di Stati di Uscita t è una funzione D Q I Q w è una funzione D Q U
Descrizione della macchina Il comportamento della macchina può essere descritto come una tabella o come un grafo: Tabella Stato/Ingresso prossimo stato Grafo Passaggi di stato Mealy: uscita associata all arco Moore: uscita associata al nodo
Esempio Automa in grado di riconoscere la sequenza 101 0/0 S 0 1/1 1/0 0/0 S S 1 0/0 1/0 0 1 S 0 S 0 /0 S 1 /0 S 1 S /0 S 1 /0 S S 0 /0 S 0 /1 6
Modello generale Una Macchina Sequenziale può essere realizzata con: Una macchina Combinatoria Un elemento di ritardo Stato Ingresso d Macchina Combinatoria Stato Prossimo Uscita 7
Le Parti della Macchina L ingresso della macchina combinatoria è l ingresso della macchina sequenziale più l uscita del ritardo (lo stato precedente). L uscita della macchina combinatoria è l uscita della macchina sequenziale più il prossimo stato della macchina. 8
Funzioni uscita e stato prossimo L uscita e lo stato prossimi possono considerarsi funzioni della sequenza di ingressi applicata a partire da un certo stato iniziale, e dallo stato iniziale stesso: u k = λ(q 0, J k ) q k+1 = δ(q 0, J k ) Se λ è definita ovunque, la macchina si dice non completa Un uscita potrebbe essere definita per J k e non per un J j con k>j Sequenza J j non applicabile in q 0 9
Equivalenza Occorre formalizzare il fatto che due macchine possano avere lo stesso funzionamento reagire nello stesso modo (con le stesse uscite) alle stesse sequenze di ingressi Definizione di stati equivalenti in macchine complete: Producono la stessa sequenza di uscite per qualsiasi sequenza di ingressi 10
Equivalenza Un modo per riconoscere stati equivalenti (fondamentale negli algoritmi che vedremo) è usare la proprietà ricorsiva degli stati equivalenti: Due stati sono equivalenti se lo sono tutte le possibili coppie di stati successivi, e sono uguali tutte le possibili uscite successive 11
Equivalenza I due stati possono appartenere anche alla stessa macchina Due macchine complete M e M' sono equivalenti se per ciascuno stato q di M esiste almeno uno stato q di M ad esso equivalente e, viceversa 1
Equivalenza e macchine incompete La definizione precedente non può essere applicata così com è non tutte le possibili sequenze sono applicabili a tutti gli stati Si introducono i concetti di Compatibilità tra stati Inclusione tra macchine 1
Stati compatibili Due stati sono compatibili se per ogni sequenza di ingressi applicabili ad entrambi le uscite prodotte sono identiche A differenza della relazione vista prima per macchine complete, la compatibilità NON è una relazione di equivalenza: Gode delle proprietà Riflessiva Simmetrica Ma NON di quella transitiva Ciò complica la ricerca di macchine equivalenti minime 1
Compatibilità Così come l equivalenza, anche la compatibilità può essere definita ricorsivamente Due stati sono compatibili se tutti i possibili stati prossimi sono compatibili, e tutte le possibili uscite prossime sono uguali Non essendo una relazione di equivalenza, non è possibile utilizzare le proprietà delle classi di equivalenza. Si generalizza con il concetto di famiglia di insiemi di stati compatibili massimi 1
Compatibilità Per le macchine incomplete, non si parla quindi di equivalenza, ma di inclusione: Una macchina M ne include una M in una coppia di stati q e q se tutte le sequenze di ingressi applicabili ad M a partire da q lo sono anche per M a partire da q producendo la stessa uscita Se è possibile trovare per ciascuno stato di M uno q che soddisfa la precedente definizione, allora M include M è possibile usare M in luogo della M M ed M possono includersi l un l altra diremo in questo caso che le due macchine sono equivalenti 16
Compatibilità ed equivalenza Nel caso di macchine complete le due definizioni di equivalenza coincidono Tra due macchine equivalenti, conviene scegliere quella con meno stati problema di minimizzazione individuare la macchina con il minor numero di stati tra tutte le possibili macchine equivalenti 17
Problema della Minimizzazione Partendo da una macchina M(Q,I,U,τ,ω), ne vogliamo trovare a macchina M (Q,I,U,τ,ω ) equivalente ad M e con il minor numero di stati Partiamo dalla famiglia di insiemi di stati compatibili massimi F=(S 1,S,...,S n ) 18
Problema della Minimizzazione La F gode delle seguenti proprietà, essenziali nei metodi di minimizzazione: Gli elementi S di F sono disgiunti Gli elementi S di F coprono l insieme degli stati Q Tutti gli stati di un elemento S di F portano alla stessa uscita (eventualmente non definita) F è chiusa: da due stati di uno stesso elemento S di F si arriva a due stati che appartengono ad una stessa S Ricerchiamo la M'(F,I,U,τ,ω') ha un numero di stati non superiore a M 19
Ricerca della famiglia F Algoritmo del partizionamento Metodo tabellare di Paull-Unger Procedono per eliminazione Partono da una presunta F (inizialmente coincidente con Q) e cercano di individuare incompatibilità fin quando è possibile 0
Algoritmo del partizionamento Si individuano gli stati incompatibili rispetto alle uscite per ciascun ingresso Le partizioni individuate si esaminano rispetto allo stato prossimo Si itera fintantoché tutte le partizioni non verificano la definizione di compatibilità 1
Algoritmo del partizionamento
Metodo di Paull-Unger Riorganizza il procedimento visto prima in forma di griglia diagonale incompatibilità stati Possibili coppie di stati prossimi
Metodo di Paull-Unger Si marcano come incompatibili le coppie di stati che portano ad uscite differenti per almeno un ingresso Si indicano le coppie di possibili stati prossimi in ogni casella Si continua iterativamente il procedimento partizionando rispetto agli stati
Metodo di Paull-Unger 1 i 1 /A /B /A i /B /A /B Ogni stato è confrontato con tutti gli altri, ma solo una volta: 1 è confrontato con 6 è confrontato con 6 etc etc. 6 /B /B /A /B /A /B 6 1
Metodo di Paull-Unger i 1 i Confrontiamo lo stato 1 con : Per entrambi gli ingressi, le uscite sono diverse 1 e sono non-equivalenti 1 /A /B /B /A /A /B /B /B 6 /B /A /A /B 6 1 6
Metodo di Paull-Unger i 1 i Confrontiamo lo stato 1 con : Le uscite sono uguali per entrambi gli ingessi 1 e potrebbero essere equivalenti 1 6 /A /B /A /B /B /A /B /A /B /B /A /B 6 - Per la proprietà ricorsiva dell equivalenza, 1 e sono effettivamente equivalenti se lo sono tutte le possibili coppie di stati prossimi: e (per i 1 ) e e (per i ), che è sempre vera 1 7
Metodo di Paull-Unger 1 6 Confrontiamo lo stato 1 con : C è almeno un ingresso per cui le uscite i 1 i sono diverse 1 e sono non-equivalenti /A /B /B /A /A /B /B /B /B /A /A /B 6-1 8
Metodo di Paull-Unger 1 6 i 1 /A /B /A /B /B /A i /B /A /B /B /A /B 6 - - - - Al termine del primo passo, abbiamo individuato tutte le coppie che sono sicuramente non-equivalenti in base alle uscite (considerate per tutti i possibili ingressi). Le caselle non barrate sono coppie di possibili stati equivalenti. Bisogna adesso ripercorre la tabella per verificare l equivalenza degli stati prossimi - - 1 9
Metodo di Paull-Unger Scorriamo come prima la tabella L equivalenza 1- dipende dall equivalenza -, che al momento non è nota - - 6 - - - - 1 0
Metodo di Paull-Unger Gli stati 1 e 6 sono sicuramente non-equivalenti poiché non lo sono e - 6 - - - - - Il procedimento si itera fino quando non è più possibile individuare coppie non equivalenti. In questo caso si vede continuando che non sono presenti stati equivalenti 1 1
Row-merging 1 I 1 6/A 6/A i /B /B Nel caso che per due stati (ad ed. 1 e ) siano uguali tutte le possibili uscite e tutti i possibili stati prossimi, l equivalenza è sempre garantita I due stati sono di fatto un unico stato e possono subito essere accorpati. Nella tabella può essere effettuato un rowmerging 6 1
Row-merging 1 I 1 6/A i /B 6/A /B Si elimina uno dei due (ad esempio lo stato ) Nella tabella, dovunque compaia come stato prossimo, si sostituisce 1
Paull-Unger: esempio Riconosciamo immediatamente le equivalenze tra 10-1: sostituiti con 10 (row-merging) 8 16 (essendo 10 1): sostituiti con 8 1 (essendo 8 16): sostituiti con 7 (essendo 10 1): sostituiti con 11 1-1: sostituiti con 11 i 1 i q q / u 1 q q q q q 6 q 7 / u 1 q q 8 q 9 q 0 1 q 6 q 1 q 7 q 1 q 8 /u q 1 q 9 q 9 0 q 1 q 6 q 9 q q q 6 /u 0
Paull-Unger: esempio Riconosciamo immediatamente le equivalenze tra 10-1: sostituiti con 10 (row-merging) 8 16 (essendo 10 1): sostituiti con 8 1 (essendo 8 16): sostituiti con 7 (essendo 10 1): sostituiti con 11 1-1: sostituiti con 11 i 1 i q q / u 1 q q q q q 6 q 7 / u 1 q q 8 q 9 q 0 1 q 6 q 1 q 7 q 1 q 8 /u q 1 q 9 q 9 0 q 1 q 6 q 9 q q q 6 /u 0
Paull-Unger: esempio i 1 i q q / u 1 q q q q q 6 q / u 1 q q 8 q 9 q 0 1 q 6 q 1 q 8 /u q 0 1 q 9 q 9 0 q 1 q In questo caso, gli stati hanno tutti insiemi di uscite uguali, tranne 8, che quindi sicuramente è non-equivalente rispetto a tutti gli altri. Procediamo quindi con il metodo di Paull-Unger cercando equivalenze tra gli stati rimanenti: 1,,,,,6,9,10,11 6
Paull-Unger: esempio 6 9 - - -6 - -8-9 -10-11 - -11 1- -9-6 -8-9 -10-11 -11 1- -9 6-8 -9 6-10 -11-6 -11 1-6 -9 8-10 9-11 -8 9-11 1-8 -10 1-10 9-11 1-9-11 i 1 i q q / u 1 q q q q q 6 q / u 1 q q 8 q 9 q 0 1 q 6 q 1 q 9 q 9 0 q 1 q 10-1- 1- -6 1- -8 1-9 -10 1-11 1-11 1-1-9 11 1- - 1- -6 1- -8 1-9 -10 1-11 - 1-11 1-1.-8-1 6 9 10 7
Paull-Unger: esempio 6 9 10 11 - - -6 - -8-9 -10-11 - -11 1- -9-1- 1-1 -6-8 -9-10 -11-11 1- -9 1- - 1-6-8-9 6-10 -11-6 -11 1-6 -9-6 1- -6 1-8-10 9-11 -8 9-11 1-8 -8 1-9 -8 1-9 Essendo 8 non equivalente con nessun altro stato, possono essere barrate tutte le caselle che contengono 8-10 1-10 9-11 -10 1-11 -10 1-11 1-9-11 1-11 - 1-11 6 1-1-9 1-1.-8 9-10 8
Paull-Unger: esempio 6 9 10 11 - - -6 - -8-9 -10-11 - -11 1- -9-1- 1-1 -6-8 -9-10 -11-11 1- -9 1- - 1-6-8-9 6-10 -11-6 -11 1-6 -9-6 1- -6 1-8-10 9-11 -8 9-11 1-8 -8 1-9 -8 1-9 Si procede cercando ulteriori nonequivalenze -10 1-10 9-11 -10 1-11 -10 1-11 1-9-11 1-11 - 1-11 6 1-1-9 1-1.-8 9-10 9
Paull-Unger: esempio 6 9 10 11 - - -6 - -8-9 -10-11 - -11 1- -9-1- 1-1 -6-8 -9-10 -11-11 1- -9 1- - 1-6-8-9 6-10 -11-6 -11 1-6 -9-6 1- -6 1-8-10 9-11 -8 9-11 1-8 -8 1-9 -8 1-9 Si itera il procedimento fin quando non è possibile trovare ulteriori condizioni di nonequivalenza. La situazione stabile così trovata corrisponde al fatto che la partizione degli stati così trovata è chiusa -10 1-10 9-11 -10 1-11 -10 1-11 1-9-11 1-11 - 1-11 6 1-1-9 1-1.-8 9-10 0
Paull-Unger: esempio 6 9 10 11 - - -6 - -8-9 -10-11 - -11 1- -9-1- 1-1 -6-8 -9-10 -11-11 1- -9 1- - 1-6-8-9 6-10 -11-6 -11 1-6 -9-6 1- -6 1-8-10 9-11 -8 9-11 1-8 -8 1-9 -8 1-9 Osservando la griglia, si nota che: - gli stati 1,,,11 sono tra loro equivalenti -,6,10 sono tra loro equivalenti - non è equivalente a nessun altro - 9 non è equivalente a nessun altro -10 1-10 9-11 -10 1-11 -10 1-11 1-9-11 1-11 - 1-11 6 1-1-9 1-1.-8 9-10 1
Paull-Unger: esempio i 1 i q q / u 1 q q q q q 6 q / u 1 q q 8 q 9 q 0 1 q 6 q 1 q 8 /u q 0 1 q 9 q 9 0 q 1 q - gli stati 1,,,11 sono equivalenti -,6,10 sono equivalenti - non è equivalente a nessun altro - 9 non è equivalente a nessun altro - 8 non è equivalente a nessun altro Possiamo quindi creare i nuovi stati da usare nella macchina ridotta: S 0 = (1,,,11) S 1 = (,6,10) S = () S = (9) S = (8)
Paull-Unger: esempio i 1 i q q / u 1 q q q q q 6 q / u 1 q q 8 q 9 q 0 1 q 6 q 1 q 8 /u q 0 1 q 9 q 9 0 q 1 q i 1 i S 0 S 1 S 0 / u 1 S 1 S S 0 S S S / u 1 S S 0 S S S 0 /u S 1 S 0 = (1,,,11) S 1 = (,6,10) S = () S = (9) S = (8)
Minimizzazione per macchine incomplete Come osservato in precedenza, nel caso di macchine incomplete non è possibile ottenere una partizione degli stati I differenti insiemi di stati compatibili possono sovrapporsi non è detto che il numero di insiemi non possa essere superiore al numero di singoli stati Procediamo innanzitutto per ricerca degli insiemi compatibili massimi Risolviamo poi un problema di copertura minima con gli insiemi così individuati
Minimizzazione per macchine incomplete L algoritmo procede creando tutti i possibili insiemi compatibili eventualmente scorporando un insieme in due separando SOLTANTO eventuali stati incompatibili Es: (1,,,) (1,,) (1,,) se Essendo interessati ad insiemi massimi, elimineremo di volta in volta insiemi contenuti in altri
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- 6
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- Consideriamo inizialmente come famiglia di insiemi di compatibilità massimi quella costituita da un unico insieme che include tutti gli stati q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- 7
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- Gli stati e 7 sono sicuramente incompatibili poiché per i producono uscite diverse (risp. u e u ) Scorporiamo l insieme iniziale (1,,,,,6,7) (1,,,,,6) (1,,,,6,7) 8
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- Gli stati e 7 sono sicuramente incompatibili poiché per i producono uscite diverse (risp. u e u ). Scorporiamo l unico dei due insiemi precedenti che contiene entrambi e 7 (1,,,,6,7) (1,,,6,7) (1,,,,6) 9
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- Osserviamo che tra i tre insiemi che abbiamo ottenuto è presente uno incluso in uno degli altri due. Essendo interessati ad insiemi massimi, possiamo eliminarlo Rimangono i due insiemi (1,,,,,6) e (1,,,6,7) 0
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- A questo punto, dobbiamo cominciare a verificare la proprietà di chiusura sulla famiglia di insiemi correntemente definita. Per ciascuno insieme della famiglia, e per ciascuno degli ingessi dobbiamo verificare che l insieme degli stati successivi sia incluso in un unico insieme della famiglia Applicando l ingresso i 1 Applicando gli stati (1,,,,,6) generano rispettivamente gli stati (1,1,,1,-,). Questi Partiamo dall ingresso i 1 sono TUTTI inclusi in un unico insieme tra quelli correntemente definiti 1
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- Applicando l ingresso i all insieme (1,,,,,6) otteniamo l insieme di stati prossimi (,,,,7,-). Questi NON appartengono tutti ad uno stesso insieme della famiglia. In particolare, 7 è incompatibile con e. Dato che è lo stato a generare 7, scorporiamo insieme a tutti gli stati non incompatibili con esso (ovvero soltanto 6) Consideriamo l ingresso i
Esempio Riconosciamo delle inclusioni in altri sottoinsiemi della famiglia (ovviamente non consideriamo quello che abbiamo diviso!) (1,,,,6) (-,,-,,-) (1,,,,6) (6,-,6,-,6) Iteriamo in maniera simile con gli altri ingressi ed i nuovi insiemi
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- Trovati gli insiemi, è possibile costruire le nuove funzioni uscita e stato prossimo q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- -
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- Trovati gli insiemi, è possibile costruire le nuove funzioni uscita e stato prossimo q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- In alcuni casi, la scelta NON è univoca!! -
Esempio - i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- (1,,,,6) S 1 (,6,7) S i 1 i i i S S 1 S 1 S 1 /u S /- 1 o S /u S S 1 /- S /u S /u S 1 o S /u 6
Esempio i 1 i i i q /- -/- q 6 /- q /- q /u q /- -/- q q q /- -/- q 6 /- q /- q /u q /- -/- q -/- q 7 /- q /u q 6 /- q 6 q /- -/- q /- q 6 / u q 7 q /- q 7 /u q /- -/- (1,,,,6) S 1 (,6,7) S Apparentemente controintuitivo i 1 i i i S 1 S 1 S 1 /u S /- S 1 o S /u S S 1 /- S /u S /u S 1 o S /u Cosa succede applicando le sequenze di ingressi i, i, i 1 partendo dallo stato per ciascuna delle quattro possibili scelte? Non sembra che sia indifferente scegliere S 1 o S come stato prossimo per la coppia S 1 /i! In realtà, questa sequenza corrisponde ad una condizione di don t care 7
Metodo di Paull Unger per macchine incomplete Il metodo di Paull Unger può ancora essere applicato converge ad uno schema nel quale è possibile identificare tutte le coppie di stati compatibili Costruire la famiglia di insiemi di compatibilità massimi è tuttavia meno ovvio che nel caso di macchine complete 8
Paull Unger: esempio Partiamo dal confrontare lo stato 6 con tutti i precedenti, poi con tutti i precendenti, etc: (,6) 6, => (,,6) 6 => (,) => (,6) (,,6) 6. 1. (,,,6) (1,,,6) (1,,,6) 9