Implementa l’algoritmo di branchAndBound al fine di trovare tutte le possibili forme di sintesi minima della funzione.
static List<ImpTerm> branchAndBound( List<ImpTerm> minCover, List<List<ImpTerm>> coverTab )
L’unico oggetto instanziabile della classe.
private static PostFixCoder C
Controlla se i due termini differisco di un solo valore positivo e se la distanza di hamming tra i due termini è uno.
private static boolean checkCondition( List<ImpTerm> impTable, int i, int k )
Controlla se la tabella di parsing contiene l’elemento ricercato, un mancato riscontro nella ricerca implica la non appartenenza della stringa al linguaggio.
protected boolean checkIfExists()
Restituisce true se la pila e’ vuota(quindi se l’automa ha riconosciuto la stringa).
protected boolean checkIsEnd()
Inserisce nello stack l’operatore p se questo ha una priorita minore uguale.
private void codOperator( String t )
Calcola e restituisce il valore della funzione in input.
private static String computeExp( String exp )
Calcola la tabella degli implicanti primi
static List<ImpTerm> computeFimpTab( String exp, List<Term> minTab, List<ImpTerm> fimpTab, List<List<ImpTerm>> tempFimpTab, List<List<ImpTerm>> couples )
Richiama tutti i metodi necessari al compimento dell’algoritmo
private static String computeMinSinFunc( String t )
Restituisce la truthTab privata dei Term in corrispondenza dei quali la funzione assume valore 0.
public static List<Term> computeMinTermTab( List<Term> truthTab )
Restituisce una lista contenente in ogni riga un oggetto Term, che contiene il valore di verita’ che la funzione descritta da exp assume in corrispondenza dei valori di inputValue.
static List<Term> computeTruthTable( List<List<String>> inputValues, List<Character> variables, String exp )
Concatena il contenuto dello stack e lo inserisce in postExp.
private void concatStack()
Trasforma Expression in una espressione comprensibile all’automa.
protected void convertVariable()
tabella di copertura.
private static List<List<ImpTerm>> coverTab
Duplica la tabella di copertura in ingresso.
private static List<List<ImpTerm>> duplicateMinCover( List<ImpTerm> minCover, int n )
tabella contenente tutti gli implicanti primi essenziali (primari e secondari ..)
private static List<ImpTerm> eimpTab
L’espressione in input.
private String Expression
tabella dei implicanti primi.
private static List<ImpTerm> fimpTab
Restituisce una contenente la rappresentazione binaria di n.
private static List<String> getBinaryRep( int n, int dim )
Restituisce il numero delle variabili presenti in exp.
static int getCountExpVar( String exp )
Ritorna il numero degli elementi non nulli,per ogni riga, nella tabella.
private static List<Integer> getCountOfObj( List<List<ImpTerm>> coverTab )
Restituisce il numero di 1 presenti in term
private static int getCountTrue( List<String> term )
Codifica il carattere in input nell’indice della tabella tabella di parsing.
protected int getCulumIndex( char c )
Restituisce la rapressentazione alfanumerica della funzione minimizzata.
private static String getExpRep( List<ImpTerm> terms )
Restituisce la lista delle variabili presenti in exp.
static List<Character> getExpVar( String exp )
Restituisce in output expression in notazione postfissa.
public String getPostFixNotation( String expression )
Restituisce la priorita’ di t.
protected byte getPriority( String t )
Codifica il carattere in input nell’indice della tabella di parsing.
protected int getRowIndex( char c )
Restituisce il letterale associato all’elemento in input.
private static String getStringRep( String element, int index )
Restituisce la reppresentazione dell’implicante primo in input per la tabella di copertura.
private static String getTermRep( ImpTerm x )
Restituisce il valore (carattere) associato alla variabile in input.
private static char getValue( char x, List<String> inputValues, List<Character> variables )
Restituisce la distanza di hamming che intercorre tra i termini l ed l1.
private static int hammingDist( List<String> l, List<String> l1 )
Restituisce true se l’operatore t ha priorita’ minore di t1.
protected boolean hasLowerPriority( String t, String t1 )
Restituisce true se l’operatore t ha priorita’ maggiore uguale di t1.
protected boolean hasSameOrBiggerPriority( String t, String t1 )
L’indice della tabella di parsing.
private int index
private void insertSimbol( String Simbol )
Restituisce una stringa ottenuta sostituendo in exp i lettarali con i valori ad essi associati.
private static String insertValues( String exp, List<String> inputValues, List<Character> variables )
Restituisce true se la l’espressione contenuta in Expression e’ ben formata.
public boolean isWellFormed()
tabella di copertura.
private static List<List<ImpTerm>> minCoverTab
tabella dei mintermini.
private static List<Term> minTab
public Parser( String Expression )
La tabella di parsing.
private String[][] ParsingTable
private String postExp
Stampa a terminale le istruzioni d’uso del programma.
private static void printHelp()
Legge il prossimo carattere in input.
protected Character ReadCharacter()
Struttura di supporto.
private Stack<Character> S
private Stack<String> S
Riempie fimpTab con tutti gli implicanti primi che riesce a trovare.
public static List<ImpTerm> simplifyCouples( List<ImpTerm> impTable, List<ImpTerm> fimpTab, List<List<ImpTerm>> couples )
Semplifica la tabella di copertura controllando un’eventuale dominanza di riga o di colonna.
private static List<List<ImpTerm>> simplifyCoverTab( List<List<ImpTerm>> coverTab )
Restituisce la tabella privata della riga.
private static List<List<ImpTerm>> simplifyRows( List<List<ImpTerm>> coverTab, List<Integer> count )
Restituisce il termine ottenuto applicando l’OR logico a t e t1, tenendo conto delle condizioni di indifferenza “-”.
private static List<String> simplifyTerm( List<String> t, List<String> t1 )
tabella della verita’ della funzione.
private static List<Term> truthTab
lista contenente le variabili utilizzate nell’espressione.
private static List<Character> variables