Nel caso di formulazione di un problema di LP senza vincoli (ma con definizione di f.o. e upper o lower bound) è
stato inserito una statement per gestire e risolvere un problema con queste caratteristiche. È stata modificata la locazione della directory
dove creare le directory di work temporanee per SSC (da "user.dir" a "java.io.tmpdir").
È stato aggiunto un messaggio di errore mancante. In caso di una specifica e non corretta formulazione del problema,
il messaggio di errore non veniva visualizzato se la lingua (LOCALE) era l'inglese.
È possibile, nel salvataggio di una soluzione in formato JSON, in un file esterno o in una stringa,
formattarlo ovvero che presenti indentazione e ritorni a capo.
Correzione sull'inclusione di definizioni di upper o lower bound su variabili binarie definite tramite SOS
ed invio su standard output dell'avviso dell'avvenuta esclusione.
Da questa versione è possibile dichiarare, nel formato testo, variabili Special Ordered Sets (SOS) di tipo 1 e 2
(vedi esempio 2.19 o la documentazione).
Implementazione del metodo resolve() con parametro Object sia per LP che MILP, per permettere chiamate in Chain
(vedi esempio 2.16).
Corretto problema sul getType della classe Variable nella costruzione del JSON.
Corretta problematica inerente la soluzione relativa al rilassamento lineare in caso di variabili semicontinue.
È possibile salvare la soluzione ottenuta e le informazioni dell'elaborazione in formato JSON,
sia come Stringa JSON che come file esterno JSON (vedi esempio 1.18).
Le classi del package org.ssclab.log sono state aggiornate con l'introduzione nella
classe SscLogger dei metodi error(), info(), fine() etc. La classe SscLevel ha il nuovo livello ERROR.
E' stata corretta la classe org.ssclab.pl.milp.MILP, in quanto era assente il costruttore che accettava come parametro
un oggetto ListConstraints. E' stata corretta la classe org.ssclab.pl.milp.Constraint, in quanto era assente il
costruttore che accettava come parametro una stringa indicante l'etichetta del vincolo.
E' ora possibile dichiarare, in un problema MILP in formato testo, tutte le variabili come appartententi
ad una specifica tipologia tramite l'istruzione "ALL" (ad esempio, se si vogliono tutte intere "INT ALL").
E' inoltre possibile. sempre nel formato testo, dichiarare in un problema MILP un sottoinsieme di variabili
come facenti parte di una specifica tipologia usando l'istruzione jolly "*" (vedi esempio 2.9).
Nel formato di tipo testo ora è possibile esplicitare i vincoli ponendo le variabili sia sulla parte sinistra che destra (RHS).
Inoltre, sempre nel formato testo, non è necessario inserire tutte le varaibili nella f.o, ma solo quelle con coefficienti diverso da zero (vedi esempio
1.2 ).E' possibile fornire un problema in formato testo inserendolo in una stringa (vedi esempio
1.2 ). Infine nei problemi con formato testo memorizzati in file esterni adesso non è più
possibile passare al costruttore il semplice path come stringa, ma come istanza della classe Path (vedi esempio 1.11 )
Attenzione ! La libreria presenta nuovi prefissi relativi ai nomi dei package che sono stati modificati da 'it.ssc' a 'org.ssclab'
per garantirne l'unicità, allineando tali denominazioni al nome di dominio reso disponibile su internet.
Malgrado ciò i nomi delle classi e le loro funzionalità rimangono invariati rispetto alle versioni precedenti.
Inoltre, questa nuova versione introduce diverse ottimizzazioni nell'utilizzo della memoria.
Attenzione ! Se scarichi questa versione, tieni presente che per far funzionare gli esempi aggiornati o utilizzare la documentazione API,
dovrai adattare i nomi dei package (il cui prefisso cambierà nella versione successiva da 'it.ssc' a 'org.ssclab').
Ad esempio, se il codice di un esempio contiene la dichiarazione del tipo 'import org.ssclab.pl.milp.LP', dovrai
cambiarla in 'import it.ssc.pl.milp.LP' per usarla con questa versione della libreria.
A partire da questa versione è possibile interrompere il simplesso o il B&B per
ottenere una soluzione ammissibile non necessariamente ottima (vedi esempi
1.10 e 2.14) .
A partire dalla versione 3, nei problemi con formato a matrici, il
wrapper Double non è più utilizzato per memorizzare i
coefficienti della matrice A e i valori rhs, ma si usa il tipo
primitivo double. Di conseguenza i valori null non sono più
memorizzabili in tali variabili, ma saranno rappresentati con la
notazione NaN (vedi esempio
1.4). Inoltre il formato a
disequazioni è stato modificato in modo da essere più
flessibile (vedi esempio
1.6). Infine nell'utilizzo del formato
di tipo Sparso occorre passare al costruttore LP (o MILP) la costante
FormatType.SPARSE (vedi esempio
1.7).
SSC4.1.0r1.jar.zip
SSC4.1.0r1.src.zip
Ottimizzazione pulizia tabella finale Phase 1 del simplesso.
SSC4.1.0r0.jar.zip
SSC4.1.0r0.src.zip
Nel formato di tipo testo ora è possibile esplicitare i vincoli ponendo le variabili sia sulla parte sinistra che destra (RHS). Inoltre, sempre nel formato testo, non è necessario inserire tutte le varaibili nella f.o, ma solo quelle con coefficienti diverso da zero (vedi esempio 1.2 ).E' possibile fornire un problema in formato testo inserendolo in una stringa (vedi esempio 1.2 ). Infine nei problemi con formato testo memorizzati in file esterni adesso non è più possibile passare al costruttore il semplice path come stringa, ma come istanza della classe Path (vedi esempio 1.11 )
SSC4.0.0r0.jar.zip
SSC4.0.0r0.src.zip
Attenzione ! La libreria presenta nuovi prefissi relativi ai nomi dei package che sono stati modificati da 'it.ssc' a 'org.ssclab' per garantirne l'unicità, allineando tali denominazioni al nome di dominio reso disponibile su internet. Malgrado ciò i nomi delle classi e le loro funzionalità rimangono invariati rispetto alle versioni precedenti. Inoltre, questa nuova versione introduce diverse ottimizzazioni nell'utilizzo della memoria.
SSC3.0.1r3.jar.zip
SSC3.0.1r3.src.zip
Attenzione ! Se scarichi questa versione, tieni presente che per far funzionare gli esempi aggiornati o utilizzare la documentazione API, dovrai adattare i nomi dei package (il cui prefisso cambierà nella versione successiva da 'it.ssc' a 'org.ssclab'). Ad esempio, se il codice di un esempio contiene la dichiarazione del tipo 'import org.ssclab.pl.milp.LP', dovrai cambiarla in 'import it.ssc.pl.milp.LP' per usarla con questa versione della libreria.
SSC3.0.1r0.jar.zip
SSC3.0.1r0.src.zip
A partire da questa versione è possibile interrompere il simplesso o il B&B per ottenere una soluzione ammissibile non necessariamente ottima (vedi esempi 1.10 e 2.14) .
SSC3.0.0r2.jar.zip
A partire dalla versione 3, nei problemi con formato a matrici, il wrapper Double non è più utilizzato per memorizzare i coefficienti della matrice A e i valori rhs, ma si usa il tipo primitivo double. Di conseguenza i valori null non sono più memorizzabili in tali variabili, ma saranno rappresentati con la notazione NaN (vedi esempio 1.4). Inoltre il formato a disequazioni è stato modificato in modo da essere più flessibile (vedi esempio 1.6). Infine nell'utilizzo del formato di tipo Sparso occorre passare al costruttore LP (o MILP) la costante FormatType.SPARSE (vedi esempio 1.7).