public final class LP extends java.lang.Object implements FormatTypeInput
FormatTypeInput.FormatType
Modifier and Type | Field and Description |
---|---|
static double |
NaN |
Constructor and Description |
---|
LP(java.util.ArrayList<java.lang.String> inequality) |
LP(it.ssc.ref.Input input_natural)
Costruttore di un oggetto LP per la risoluzione di problemi espressi in formato a coefficienti.
|
LP(it.ssc.ref.Input input,
FormatTypeInput.FormatType format)
Costruttore di un oggetto LP per la risoluzione di problemi espressi in formato o sparso o a coefficienti.
|
LP(it.ssc.ref.Input input_natural,
it.ssc.context.Session session)
Costruttore di un oggetto LP per la risoluzione di problemi espressi in formato a coefficienti.
|
LP(it.ssc.ref.Input input,
it.ssc.context.Session session,
FormatTypeInput.FormatType format)
Costruttore di un oggetto LP per la risoluzione di problemi espressi in formato o sparso o a coefficienti.
|
LP(LinearObjectiveFunction fo,
java.util.ArrayList<Constraint> constraints)
Costruttore di un oggetto LP per la risoluzione di problemi espressi in formato matriciale.
|
LP(LinearObjectiveFunction fo,
ListConstraints constraints)
Costruttore di un oggetto LP per la risoluzione di problemi espressi in formato matriciale.
|
LP(java.lang.String path) |
Modifier and Type | Method and Description |
---|---|
int |
getNumMaxIteration()
Questo metodo ritorna il numero massimo di iterazioni del simplesso
|
Solution |
getSolution()
Se il problema ammette soluzione ottima , questo metodo ritorna tale soluzione ottima sotto forma di oggetto della
classe Solution
|
double[][] |
getStandartMatrixA()
Questo metodo ritorna la matrice A ottenuta in seguito al processo di riduzione in
forma standart (max z , Ax + s=b, x ≥ 0, b ≥ 0) del problema di programmazione lineare di partenza.
|
double[] |
getStandartVectorB()
Questo metodo ritorna il vettore b dei valori rhs ottenuto in seguito al processo di riduzione in
forma standart (max z , Ax+s=b, x ≥ 0, b ≥ 0) del problema di programmazione lineare di partenza.
|
double[] |
getStandartVectorC()
Questo metodo ritorna il vettore c dei coefficienti della f.o. in seguito al processo di riduzione
in forma standart (max z , Ax+s=b, x ≥ 0, b ≥ 0) del problema di programmazione lineare di partenza.
|
LPThreadsNumber |
getThreadsNumber() |
boolean |
isParallelSimplex() |
boolean |
isStopPhase2()
Restituisce true se se è impostato l'esecuzione della sola fase 1.
|
SolutionType |
resolve()
Esegue il simplesso (fase 1 + fase 2).
|
void |
setCEpsilon(EPSILON epsilon)
Questo metodo permette di settare il valore epsilon relativo alla tolleranza nel
determinare se una soluzione ottima espressa dalla fase 1 è prossima o uguale a zero e quindi da origine a
soluzioni ammissibili per il problema iniziale.
|
void |
setEpsilon(EPSILON epsilon)
Questo metodo permette di settare il valore epsilon relativo alla tolleranza che interviene in diversi ambiti.
|
void |
setNumMaxIteration(int num_max_iteration)
Questo metodo permette di limitare il numero massimo di iterazioni del simplesso (iterazioni fase 1 + iterazioni fase 2)
|
void |
setParallelSimplex(boolean isParallelSimplex)
Se il numero di core fisici dell'host su cui viene eseguito SSc è maggiore di 4 , può essere
migliorata la performance del simplesso facendo eseguire i processi di ottimizzazione in parallelo su pi ù
thread.
|
void |
setStopPhase2(boolean isStopPhase2)
Impostando a true permette di interromepre il simplesso alla fine della fase 1, in modo da determinare
non una soluzione ottima ma solamente una soluzione ammissibile del problema.
|
void |
setThreadsNumber(LPThreadsNumber threadsNumber) |
public LP(java.util.ArrayList<java.lang.String> inequality) throws java.lang.Exception
inequality
- Un ArrayList (di oggetti String) contenenti la formulazione del problema nel formato
a disequazionijava.lang.Exception
- Viene generata una eccezione se il problema non è formulato correttamentepublic LP(java.lang.String path) throws java.lang.Exception
path
- Path dove è localizzato il file contenente il problema di PL formulato con il formato a
disequazionijava.lang.Exception
- Viene generata una eccezione se il problema non è formulato correttamente o se il file non esistepublic LP(LinearObjectiveFunction fo, java.util.ArrayList<Constraint> constraints) throws java.lang.Exception
fo
- Un oggetto LinearObjectiveFunction che rappresenta la funzione obiettivoconstraints
- La lista dei vincoli espressa come ArrayList di Oggetti Constraintjava.lang.Exception
- Viene generata una eccezione se il problema non è formulato correttamentepublic LP(LinearObjectiveFunction fo, ListConstraints constraints) throws java.lang.Exception
fo
- Un oggetto LinearObjectiveFunction che rappresenta la funzione obiettivoconstraints
- La lista dei vincoli sotto forma di oggetto ListConstraintsjava.lang.Exception
- Viene generata una eccezione se il problema non è formulato correttamentepublic LP(it.ssc.ref.Input input, it.ssc.context.Session session, FormatTypeInput.FormatType format) throws java.lang.Exception
input
- Il problema formulato col formato sparsosession
- Una sessione di lavoro SSCformat
- Costante per esprimere con quale formato è formulato il problema (FormatType.SPARSE o FormatType.COEFF)java.lang.Exception
- Viene generata una eccezione se il problema è formulato in modo non correttopublic LP(it.ssc.ref.Input input, FormatTypeInput.FormatType format) throws java.lang.Exception
input
- Il problema formulato col formato sparsoformat
- Costante per esprimere con quale formato è formulato il problema (FormatType.SPARSE o FormatType.COEFF)java.lang.Exception
- Viene generata una eccezione se il problema è formulato in modo non correttopublic LP(it.ssc.ref.Input input_natural) throws java.lang.Exception
input_natural
- Il problema formulato col formato a coefficientijava.lang.Exception
- Viene generata una eccezione se il problema è formulato in modo non correttopublic LP(it.ssc.ref.Input input_natural, it.ssc.context.Session session) throws java.lang.Exception
input_natural
- Il problema formulato col formato a coefficientisession
- Una sessione di lavoro SSCjava.lang.Exception
- Viene generata una eccezione se il problema è formulato in modo non correttopublic void setEpsilon(EPSILON epsilon)
epsilon
- Tolleranza utilizzata in diverse fasi del simplesso. Valore default 1-E10public void setCEpsilon(EPSILON epsilon)
epsilon
- Tolleranza soluzione fase 1 rispetto allo zero. Valore default 1-E8public void setNumMaxIteration(int num_max_iteration) throws LPException
num_max_iteration
- Il numero di iterazioni che al massimo si vuole far eseguire.
Valore di default 10,000,000.LPException
- Se si imposta un numero errato (zero o negativo)public int getNumMaxIteration()
public SolutionType resolve() throws java.lang.Exception
java.lang.Exception
- Se il processo di esecuzione genera un errorepublic double[][] getStandartMatrixA() throws SimplexException, java.io.IOException
SimplexException
java.io.IOException
- se il problema non è stato ridotto in forma standartpublic double[] getStandartVectorB()
public double[] getStandartVectorC()
public Solution getSolution() throws SimplexException
SimplexException
- Se la soluzione ottima non è presentepublic boolean isParallelSimplex()
public void setParallelSimplex(boolean isParallelSimplex)
isParallelSimplex
- True per attivare la parallelizzazionepublic LPThreadsNumber getThreadsNumber()
public void setThreadsNumber(LPThreadsNumber threadsNumber)
threadsNumber
- Imposta il numero di Thread da utilizzare nell'esecuzione.
Se il valore impostato è AUTO è il sistema a decidere il numero di
Thread da utilizzare.public boolean isStopPhase2()
public void setStopPhase2(boolean isStopPhase2)
isStopPhase2
- true per interrompere il simplesso prima della fase 2.