Nel formato testo, è possibile scrivere i coefficienti delle variabili, sia nella funzione obiettivo che nei vincoli,
senza doverli necessariamente attaccare alla variabile. È consentito quindi inserire spazi tra il coefficiente e la variabile.
È possibile formulare nel formato testo un vincolo anche con la seguente sintassi "u <= C1X1 + C2X2 + .... + CnXn <= l"
(vedi esempio 1.21). È inoltre possibile, sempre nel formato testo, solo per le definizione degli uppur e lower bound, inserire
piu di una delle dichiariazioni "l <= x <= u" , "x >= l" e "x <= u" relative ai limiti delle variabili su una stessa riga, separandole da virgola
(vedi esempio 1.21).
Risolto un bug che causava la mancata segnalazione di errore quando alcune variabili venivano impropriamente chiamate con il prefisso
riservato "SOS".
Corretto un bug relativo al recupero dei valori originali dei limiti superiori (upper bound) e inferiori (lower bound) nella soluzione ottenuta.
Aggiunto supporto per l'inserimento dello scalare zero come argomento nella funzione obiettivo nei problemi formulati
in formato testo (esempio: min/max: 0).
Introdotta la possibilità di includere calcoli e funzioni matematiche direttamente nella
formulazione del problema in formato testo, utilizzando la notazione con parentesi quadre
(vedi esempio 1.20 o la documentazione).
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 tali caratteristiche.
Modificata la directory predefinita (work area) per la creazione delle cartelle di lavoro temporanee da "user.dir" a "java.io.tmpdir"
per garantire maggiore compatibilità con i sistemi operativi.
È 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).
- Download compilati:SSC-LP-4.7.8.jar.zip
- Download sorgenti:SSC-LP-4.7.8.src.zip
- Link GitHub:GitHub
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.7.8</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:07/02/2025
- Versione JDK:JDK 10.0 o superiore
Nel formato testo, è possibile scrivere i coefficienti delle variabili, sia nella funzione obiettivo che nei vincoli, senza doverli necessariamente attaccare alla variabile. È consentito quindi inserire spazi tra il coefficiente e la variabile.- Download compilati:SSC-LP-4.7.6.jar.zip
- Download sorgenti:SSC-LP-4.7.6.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.7.6</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:02/02/2025
- Versione JDK:JDK 10.0 o superiore
È possibile formulare nel formato testo un vincolo anche con la seguente sintassi"u <= C1X1 + C2X2 + .... + CnXn <= l"(vedi esempio 1.21). È inoltre possibile, sempre nel formato testo, solo per le definizione degli uppur e lower bound, inserire piu di una delle dichiariazioni"l <= x <= u","x >= l"e"x <= u"relative ai limiti delle variabili su una stessa riga, separandole da virgola (vedi esempio 1.21).- Download compilati:SSC-LP-4.7.4.jar.zip
- Download sorgenti:SSC-LP-4.7.4.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.7.4</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:09/01/2025
- Versione JDK:JDK 10.0 o superiore
Risolto un bug che impediva il corretto recupero dell'informazione originaria relativa al target (max/min) nella soluzione esportata in formato JSON.- Download compilati:SSC-LP-4.7.3.jar.zip
- Download sorgenti:SSC-LP-4.7.3.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.7.3</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:05/01/2025
- Versione JDK:JDK 10.0 o superiore
Risolto un bug che causava la mancata segnalazione di errore quando alcune variabili venivano impropriamente chiamate con il prefisso riservato "SOS". Corretto un bug relativo al recupero dei valori originali dei limiti superiori (upper bound) e inferiori (lower bound) nella soluzione ottenuta.- Download compilati:SSC-LP-4.7.1.jar.zip
- Download sorgenti:SSC-LP-4.7.1.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.7.1</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:03/01/2025
- Versione JDK:JDK 10.0 o superiore
Aggiunto supporto per l'inserimento dello scalare zero come argomento nella funzione obiettivo nei problemi formulati in formato testo (esempio: min/max: 0).- Download compilati:SSC-LP-4.7.0.jar.zip
- Download sorgenti:SSC-LP-4.7.0.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.7.0</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:24/12/2024
- Versione JDK:JDK 10.0 o superiore
Introdotta la possibilità di includere calcoli e funzioni matematiche direttamente nella formulazione del problema in formato testo, utilizzando la notazione con parentesi quadre (vedi esempio 1.20 o la documentazione).- Download compilati:SSC-LP-4.6.7.jar.zip
- Download sorgenti:SSC-LP-4.6.7.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.6.7</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:04/12/2024
- Versione JDK:JDK 10.0 o superiore
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 tali caratteristiche. Modificata la directory predefinita (work area) per la creazione delle cartelle di lavoro temporanee da "user.dir" a "java.io.tmpdir" per garantire maggiore compatibilità con i sistemi operativi.- Download compilati:SSC-LP-4.6.5.jar.zip
- Download sorgenti:SSC-LP-4.6.5.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.6.5</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:01/12/2024
- Versione JDK:JDK 10.0 o superiore
È 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.- Download compilati:SSC-LP-4.6.4.jar.zip
- Download sorgenti:SSC-LP-4.6.4.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.6.4</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:13/11/2024
- Versione JDK:JDK 10.0 o superiore
In caso di soluzione non fattibile è stata corretta l'informazione presente sul JSON dei risultati.- Download compilati:SSC-LP-4.6.3.jar.zip
- Download sorgenti:SSC-LP-4.6.3.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.6.3</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:01/11/2024
- Versione JDK:JDK 10.0 o superiore
È 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.- Download compilati:SSC-LP-4.6.2.jar.zip
- Download sorgenti:SSC-LP-4.6.2.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.6.2</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:15/10/2024
- Versione JDK:JDK 10.0 o superiore
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.- Download compilati:SSC-LP-4.6.1.jar.zip
- Download sorgenti:SSC-LP-4.6.1.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.6.1</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:13/10/2024
- Versione JDK:JDK 10.0 o superiore
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).- Download compilati:SSC-LP-4.5.3.jar.zip
- Download sorgenti:SSC-LP-4.5.3.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.5.3</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:06/10/2024
- Versione JDK:JDK 10.0 o superiore
Ottimizzata parte relativa alle soluzioni rilassate in presenza di variabili semicontinue.- Download compilati:SSC-LP-4.5.2.jar.zip
- Download sorgenti:SSC-LP-4.5.2.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.5.2</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:04/10/2024
- Versione JDK:JDK 10.0 o superiore
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.- Download compilati:SSC-LP-4.5.0.jar.zip
- Download sorgenti:SSC-LP-4.5.0.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.5.0</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:02/10/2024
- Versione JDK:JDK 10.0 o superiore
È 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).- Download compilati:SSC-LP-4.4.2.jar.zip
- Download sorgenti:SSC-LP-4.4.2.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.4.2</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:22/09/2024
- Versione JDK:JDK 10.0 o superiore
Sostituita la libreria esterna per il parsing JSON javax.json con la più recente jakarta.json.- Download compilati:SSC-LP-4.4.1.jar.zip
- Download sorgenti:SSC-LP-4.4.1.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.4.1</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:20/09/2024
- Versione JDK:JDK 10.0 o superiore
Corretto problema bug nella definizione degli lower bound sul formato json.- Download compilati:SSC-LP-4.4.0.jar.zip
- Download sorgenti:SSC-LP-4.4.0.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.4.0</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:17/09/2024
- Versione JDK:JDK 10.0 o superiore
È possibile formulare il problema in formato json contenuto sia in una stringa che in un file esterno utilizzando la classe JsonProblem.- Download compilati:SSC-LP-4.3.0.jar.zip
- Download sorgenti:SSC-LP-4.3.0.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.3.0</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:12/09/2024
- Versione JDK:JDK 10.0 o superiore
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.- Download compilati:SSC-LP-4.2.1.jar.zip
- Download sorgenti:SSC-LP-4.2.1.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.2.1</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:27/08/2024
- Versione JDK:JDK 10.0 o superiore
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.- Download compilati:SSC4.2.0.jar.zip
- Download sorgenti:SSC4.2.0.src.zip
- Link Maven:Link Maven
- Dipendenza Maven:Maven
<dependency>
<groupId>org.ssclab</groupId>
<artifactId>SSC-LP</artifactId>
<version>4.2.0</version>
</dependency>
- Licenza:General Public License, Version 3.
- Data:18/04/2024
- Versione JDK:JDK 10.0 o superiore
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
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).