Download

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.

In caso di soluzione non fattibile è stata corretta l'informazione presente sul JSON dei risultati.

È 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).

Ottimizzata parte relativa alle soluzioni rilassate in presenza di variabili semicontinue.

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).

Sostituita la libreria esterna per il parsing JSON javax.json con la più recente jakarta.json.

Corretto problema bug nella definizione degli lower bound sul formato json.

È possibile formulare il problema in formato json contenuto sia in una stringa che in un file esterno utilizzando la classe JsonProblem.

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).

SSC4.1.0r1.jar.zip
SSC4.1.0r1.src.zip

  • 11/04/2024
  • JDK 10.0 o superiore

Ottimizzazione pulizia tabella finale Phase 1 del simplesso.

SSC4.1.0r0.jar.zip
SSC4.1.0r0.src.zip

  • 03/04/2024
  • JDK 10.0 o superiore

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

  • 22/03/2024
  • JDK 10.0 o superiore

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

  • 18/06/2019
  • JDK 8.0 o superiore

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

  • 20/10/2018
  • JDK 8.0 o superiore

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

  • 12/10/2018
  • JDK 8.0 o superiore

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).