max/min cTx è la funzione obiettivo (f.o.)vincolato a
Ax (≤,=,≥) b l ≤ x ≤ u oppure xᵢ=0 xᵢ∈ ℤ ∀i ∈ I xᵢ∈ {0,1} ∀i ∈ B xᵢ∈ ℝ ∀i∉ (I ∪ B);dove
x ∈ ℝn è il vettore delle variabili A ∈ ℚmxn è la matrice dei coefficienti c ∈ ℚn è il vettore dei coefficienti della f.o. b ∈ ℚm è il vettore dei coefficienti RHS l ∈ ℚn è il vettore dei lower bound u ∈ ℚn è il vettore degli upper bound I ∈ {1,...,n} è un sottoinsieme degli indici B ∈ {1,...,n} : (I ∩ B) = ∅
In SSC quando una variabile viene definita come una variabile intera o binaria, la procedura utilizza l'algoritmo del Branch and Bound per l'ottimizzazione. Nel Branch and Bound si risolve una successione di problemi rilassati (ovvero privati dei vincoli di interezza); per risolvere questi problemi rilassati si utilizza l'algoritmo del Simplesso.
Al contrario il metodo del Branch and Bound è un algoritmo più oneroso e quello implementato in questa libreria, utilizzato per risolvere problemi di programmazione lineare intera, non è altamente ottimizzato; inoltre esistono in letteratura metodi certamente molto più efficienti dal punto di vista della complessità computazionale e nell'utilizzo della memoria; di conseguenza la dimensione dei problemi di MILP risolvibili non può che essere limitata.
In SSC è possibile risolvere anche problemi con variabili libere, intere, binarie, semicontinue e semicontinue intere. Questa sottoclasse di problemi sono di norma denominati con la sigla MILP (Mixed Integer Linear Programming). Nel caso di problemi MILP, che presentano tutte o una parte di variabili intere o binarie o semicontinue, SSC utilizza l'algoritmo del Branch and Bound (B&B) per la loro risoluzione.
A partire dalla versione 2.1.0 è possibile eseguire una implementazione del metodo del simplesso parallelo. Questa opzione (vedi esempio 1.14) permette di sfruttare thread multipli per la risoluzione del simplesso è da significativi vantaggi nel caso di architetture con almeno 4 o più core fisici.