SSC (Software for Simplex Calculation) è una libreria Java open-source per la risoluzione di problemi
di programmazione lineare. Distribuita come software libero (FOSS: free and open-source software), SSC è
disponibile per il download su GitHub e
Maven. La libreria è corredata
da esempi e da una documentazione completa e offre un'integrazione semplice nei progetti Java, rendendola ideale per
chiunque cerchi una soluzione efficiente per problemi di ottimizzazione.
La libreria SSC supporta la formulazione del problema di programmazione lineare in diversi formati: testo, coefficienti,
matriciale, sparso e anche in formato JSON. È possibile specificare il problema direttamente nel codice o
attraverso un file esterno, semplificando l'integrazione con progetti esistenti e facilitando la gestione di input complessi.
La libreria SSC è inoltre in grado di risolvere problemi di programmazione lineare con variabili semicontinue
e supporta Special Ordered Sets (SOS) di tipo 1 e 2. Questo permette di affrontare una vasta gamma di problemi di
ottimizzazione, come quelli che richiedono la selezione di variabili binarie o la gestione di variabili consecutive con vincoli particolari.
SSC utilizza l'algoritmo del Simplesso per risolvere questa classe di problemi, comunemente indicati con la sigla LP
(Linear Programming), ma supporta anche problemi con variabili libere, intere, binarie, semicontinue e semicontinue intere,
comunemente noti come MILP (Mixed Integer Linear Programming). Per la risoluzione di MILP, che includono variabili
intere o binarie, SSC adotta l'algoritmo del Branch and Bound (B&B) .
Online LP Solver
La libreria di programmazione lineare SSC, oltre a fornire una documentazione completa ed esempi pratici, puoi sfruttarla
direttamente online con il risolutore Online LP Solver. Grazie al motore interno SSC-LP, puoi risolvere
problemi di programmazione lineare comodamente dal tuo browser, ottenendo risultati rapidi.
Un problema da risolvere
La forma di problemi che le API fornite da SSC risolvono è la seguente :
\( \hspace{3cm} \text{ max/min } \hspace{0.3cm} c^{\mathrm{T}}x \hspace{1cm} \text{è la funzione obiettivo (f.o.) } \)
\( \hspace{3cm} x\, \in \mathbb{R}^{n} \hspace{5cm} \text{è il vettore delle variabili}\, x_{i} \)
\( \hspace{3cm} A \in \mathbb{Q}^{m \times n} \hspace{4.4cm} \text{è la matrice dei coefficienti} \)
\( \hspace{3cm} c\,\, \in \mathbb{Q}^{n} \hspace{5cm} \text{è il vettore dei coefficienti della f.o.} \)
\( \hspace{3cm} b\,\, \in \mathbb{Q}^{m} \hspace{4.9cm} \text{è il vettore dei coefficienti RHS} \)
\( \hspace{3cm} l\,\,\, \in \mathbb{Q}^{n} \hspace{5cm} \text{è il vettore dei lower bound }\, l_{i} \)
\( \hspace{3cm} u\, \in \mathbb{Q}^{n} \hspace{5cm} \text{è il vettore degli upper bound }\, u_{i} \)
\( \hspace{3cm} \text{I}\,\, \subseteq \{1,..,n\} \hspace{3.7cm} \text{è un sottoinsieme degli indici relativo alla variabili intere} \)
\( \hspace{3cm} \text{B} \subseteq \{1,..,n\}\, : \, (\text{I} \cap \text{B}) = \emptyset \hspace{0.9cm} \text{è un sottoinsieme degli indici relativo alla variabili binarie} \)
Requisiti tecnici
Il requisito per far eseguire i programmi SSC è quello di
poter disporre di un JDK (o SDK) java versione 10.x o successive. Nessun altro
requisito è richiesto.
Questo sito utilizza esclusivamente cookie tecnici per garantire il monitoraggio e funzionamento. Continuando la navigazione acconsenti all'uso dei cookie.
SSC (Software for Simplex Calculation) è una libreria Java open-source per la risoluzione di problemi di programmazione lineare. Distribuita come software libero (FOSS: free and open-source software), SSC è disponibile per il download su GitHub e Maven. La libreria è corredata da esempi e da una documentazione completa e offre un'integrazione semplice nei progetti Java, rendendola ideale per chiunque cerchi una soluzione efficiente per problemi di ottimizzazione.
La libreria SSC supporta la formulazione del problema di programmazione lineare in diversi formati: testo, coefficienti, matriciale, sparso e anche in formato JSON. È possibile specificare il problema direttamente nel codice o attraverso un file esterno, semplificando l'integrazione con progetti esistenti e facilitando la gestione di input complessi.
La libreria SSC è inoltre in grado di risolvere problemi di programmazione lineare con variabili semicontinue e supporta Special Ordered Sets (SOS) di tipo 1 e 2. Questo permette di affrontare una vasta gamma di problemi di ottimizzazione, come quelli che richiedono la selezione di variabili binarie o la gestione di variabili consecutive con vincoli particolari.
SSC utilizza l'algoritmo del Simplesso per risolvere questa classe di problemi, comunemente indicati con la sigla LP (Linear Programming), ma supporta anche problemi con variabili libere, intere, binarie, semicontinue e semicontinue intere, comunemente noti come MILP (Mixed Integer Linear Programming). Per la risoluzione di MILP, che includono variabili intere o binarie, SSC adotta l'algoritmo del Branch and Bound (B&B) .