Aby rozwiązanie takiego zadania rzeczywiście pozwoliło podjąć najlepszą decyzję, trzeba je tak sformułować, żeby dokładnie opisywało rzeczywistą sytuację decyzyjną. W tym celu należy ustalić:
-jakie wielkości mają być wyznaczone, tzn. podać zmienne decyzyjne; -jakie wielkości są dane (znane), tzn. określić parametry zadania;
- jakie ograniczenia musi spełnić dopuszczalna decyzja i sformułować je w postaci równań lub nierówności, wiążąc zmienne decyzyjne - zapisać warunki ograniczające;
- jaki cel chce osiągnąć decydent, tzn. sformułować funkcję zmiennych decyzyjnych, określającą poziom realizacji założonego celu (podać funkcję celu / kryterium).
Jeżeli w zadaniu decyzyjnym funkcja celu oraz warunki ograniczające są liniowe (wszystkie zmienne występują w pierwszej potędze), to zadanie takie nazywamy zadaniem programowania liniowego (PL).
2.1. Podstawowe postacie zagadnienia programowania liniowego
Zagadnienie programowania liniowego polega na wyznaczeniu maksimum lub minimum liniowej funkcji celu w ogólnej postaci:
[2.1]
[2.2]
FC = clxl + c2x2 +... + cnxn przy liniowych warunkach ograniczających:
allxl +al2x2 +... + ainxn <b{
a21*, +a22x2 +... +a2nxn <b2
cimlx, + am2x2 +... + amnxn <bm
oraz warunkach brzegowych:
*t>0 dla k =1,2,...n oraz fc. >0 dla i = 1,2,..., m [2.3]
Powyższy zapis stanowi klasyczną postać zadania programowania liniowego, dość często nazywaną postacią standardową. Ogólna postać zadania PL przedstawia się na ogół w skróconej formie. Gdy funkcja celu jest maksymalizowana, jej postać jest następująca:
FC = YcjXj —> max [2.4]
j=i
przy warunkach ograniczających:
y, ajXj < b) i = 1,2,..., m j = 1,2,..., n [2.5]
oraz warunku nieujemności zmiennych decyzyjnych (warunku brzegowym):
Xj > 0 [2.6]
Funkcja celu może być oczywiście minimalizowana - wtedy w warunkach ograniczających występuje zazwyczaj inny kierunek nierówności, lecz nie ma to żadnego wpływu ani na postaci ogólnego zapisu PL, ani na sposób wyznaczenia wartości funkcji.