La programmazione lineare (PL) è quella branca della ricerca operativa che si occupa di studiare algoritmi di risoluzione per problemi di ottimizzazione lineari[1].
Un problema è detto lineare se sia la funzione obiettivo sia i vincoli sono funzioni lineari.
Questo significa che la funzione obiettivo può essere scritta come: avendo indicato con
Esistono tre grandi classi di problemi lineari:
1) Problemi lineari continui (Linear Programming =>LP)
2) Problemi lineari interi (Integer Linear Programming =>ILP)
3) Problemi lineari misto-interi (Mixed Integer Linear Programming => MILP)