Contiene tutti i metodi necessari per ottenere una funzione booleana in sintesi minima partendo dalla sua rappresentazione postfissa. Ogni metodo risulta essere una trasposizione di un determinato step dell’algoritmo di quine-mccluskey. Poichè non risulta necessario instanziare più di un oggetto della classe, la suddetta è stata pensata come un singleton.
ExpSolver | Contiene tutti i metodi necessari per ottenere una funzione booleana in sintesi minima partendo dalla sua rappresentazione postfissa. |
Functions | |
insertValues | Restituisce una stringa ottenuta sostituendo in exp i lettarali con i valori ad essi associati. |
getValue | Restituisce il valore (carattere) associato alla variabile in input. |
computeTruthTable | 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. |
computeMinTermTab | Restituisce la truthTab privata dei Term in corrispondenza dei quali la funzione assume valore 0. |
hammingDist | Restituisce la distanza di hamming che intercorre tra i termini l ed l1. |
branchAndBound | Implementa l’algoritmo di branchAndBound al fine di trovare tutte le possibili forme di sintesi minima della funzione. |
duplicateMinCover | Duplica la tabella di copertura in ingresso. |
simplifyCouples | Riempie fimpTab con tutti gli implicanti primi che riesce a trovare. |
checkCondition | Controlla se i due termini differisco di un solo valore positivo e se la distanza di hamming tra i due termini è uno. |
computeFimpTab | Calcola la tabella degli implicanti primi |
computeFimpTab | Restituisce la tabella di copertura che può essere vuota nel caso in cui tutti gli imlicanti primi essenziali siano stati |
simplifyCoverTab | Semplifica la tabella di copertura controllando un’eventuale dominanza di riga o di colonna. |
getCountOfObj | Ritorna il numero degli elementi non nulli,per ogni riga, nella tabella. |
simplifyRows | Restituisce la tabella privata della riga. |
simplifyRows | Restituisce la tabella privata della colonna. |
getExpVar | Restituisce la lista delle variabili presenti in exp. |
getCountExpVar | Restituisce il numero delle variabili presenti in exp. |
simplifyTerm | Restituisce il termine ottenuto applicando l’OR logico a t e t1, tenendo conto delle condizioni di indifferenza “-”. |
getCountTrue | Restituisce il numero di 1 presenti in term |
computeExp | Calcola e restituisce il valore della funzione in input. |
getBinaryRep | Restituisce una contenente la rappresentazione binaria di n. |
static List<Term> computeTruthTable( List<List<String>> inputValues, List<Character> variables, String exp )
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.
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 il valore (carattere) associato alla variabile in input.
private static char getValue( char x, List<String> inputValues, List<Character> variables )
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 )
Restituisce la truthTab privata dei Term in corrispondenza dei quali la funzione assume valore 0.
public static List<Term> computeMinTermTab( List<Term> truthTab )
Restituisce la distanza di hamming che intercorre tra i termini l ed l1.
private static int hammingDist( List<String> l, List<String> l1 )
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 )
Duplica la tabella di copertura in ingresso.
private static List<List<ImpTerm>> duplicateMinCover( List<ImpTerm> minCover, int n )
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 )
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 )
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 )
Semplifica la tabella di copertura controllando un’eventuale dominanza di riga o di colonna.
private static List<List<ImpTerm>> simplifyCoverTab( List<List<ImpTerm>> coverTab )
Ritorna il numero degli elementi non nulli,per ogni riga, nella tabella.
private static List<Integer> getCountOfObj( List<List<ImpTerm>> coverTab )
Restituisce la tabella privata della riga.
private static List<List<ImpTerm>> simplifyRows( List<List<ImpTerm>> coverTab, List<Integer> count )
Restituisce la lista delle variabili presenti in exp.
static List<Character> getExpVar( String exp )
Restituisce il numero delle variabili presenti in exp.
static int getCountExpVar( String exp )
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 )
Restituisce il numero di 1 presenti in term
private static int getCountTrue( List<String> term )
Calcola e restituisce il valore della funzione in input.
private static String computeExp( String exp )
Restituisce una contenente la rappresentazione binaria di n.
private static List<String> getBinaryRep( int n, int dim )