Grundformen för linjära programmeringsproblem består av en linjär målfunktion som skall minimeras
min f1 x1 + f2 x2 + ... + fN xN
och ett antal linjära bivillor i form av likheter
a1,1 x1 +
a1,2 x2 + ... +
a1,N xN = b1
a2,1 x1 +
a2,2 x2 + ... +
a2,N xN = b2
...
aM,1 x1 +
aM,2 x2 + ... +
aM,N xN = bM
där fi, ai,k och bk är konstanter medan xi är de variabler vars värden sökes. Variablerna skall alla vara positiva eller noll.
xi >= 0
För att systemet skall kunna optimeras bör antalet variabler bör vara större än antalet linjärt oberoende bivillkor (N > M). Ifall de är lika många är systemet bestämt, d.v.s. det finns bara en möjlig lösning, och om antalet variabler är färre än bivillkoren är systemet överbestämt.
Ekvationssystemet kan även skrivas i matrisform
min fT x
A x = b
Linjära modeller byggs oftas upp av bivillkor i form av olikheter istället för likheter som i grundproblemet. Olikheterna kan omformas till likheter genom att använda extra variabler.
Olikheten
5 x1 + 4 x2 <= 10
kan omvandlas genom att addera en extra variabel x3
5 x1 + 4 x2 + x3 = 10
För varje olikhet kommer man alltså att få en extra variabel. Denna omformning kan de flesta datorprogram ämnade för lösning av linjära programmeringsproblem göra automatiskt varvid de extra variablerna och deras värden göms undan för användaren.