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 implementato in questa libreria, utilizzato per risolvere problemi di programmazione lineare intera, non è ottimizzato ed è una semplice implementazione didattica; 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.r6 è 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.