Definicja problemu programowania matematycznego minimalizacja lub maksymalizacja funkcji min (max) f(x) gdzie: x 1 x R n x 2, czyli: x = [ ] x n przy ograniczeniach (w skrócie: p.o.) p.o. g i (x) = b i i = 1 m
gdzie: f funkcja celu (kosztu), kryterium x wektor zmiennych decyzyjnych (niewiadomych) X zbiór rozwiązań dopuszczalnych (spełniających ograniczenia) g i funkcje rzeczywiste występujące w ograniczeniach b i stałe rzeczywiste, b i R Problem polega na znalezieniu takiego rozwiązania x X zwanego rozwiązaniem optymalnym, dla którego funkcja f osiąga ekstremum (minimum lub maksimum) globalne na zbiorze X.
Przykład: min f(x) = x 1 2 + 2 cos x 2 p. o. e x 1+x 2 + x 2 3 4 log(2x 1 + 3x 2 ) sin(3 x 1 2 ) 5 W powyższym przykładzie n = m = 2. Prosty przykład: Znaleźć wierzchołek paraboli będącej wykresem funkcji f(x) = x 2 + 5x + 4 (min funkcji kwadratowej jednej zmiennej).
Programowanie Matematyczne (PM) Programowanie Liniowe (PL) Programowanie NieLiniowe (PNL) Problem Programowania Liniowego (PL) otrzymujemy wtedy, gdy wszystkie funkcje f, g i (i = 1 m) są liniowe.
Ogólna postać problemu PL: max (min) z = c j x j n p. o. a ij x j = j=1 n j=1 b i i = 1 m
Reprezentacja macierzowa: x = [ x 1 c 1 x 2 ] ; x n c 2 c = [ b 1 b 2 ] ; Am n = [ b m max (min) z = c T x p. o. Ax= b c n ] ; b = [ a 11 a 1n a mn a 1 a m1 a n ]
Reprezentacja wektorowa: max (min) z = c T x p. o. a 1 x 1 + a 2 x 2 + + a n x n = b
Przykład interpretacji graficznej problemu PL: max z = x 1 + x 2 p. o. x 1 2 x 1 + 2x 2 4 x 1, x 2 0 I ograniczenie: x 1 2 II ograniczenie: x 1 + 2x 2 4 x 2 1 2 x 1 + 2
Równanie warstwicy funkcji celu: z = x 1 + x 2 x 2 = x 1 + z z równanie f. celu 0 x 2 = x 1 1 x 2 = x 1 + 1 Porównujemy dwie proste: x 1 + 2x 2 = 4 i x 1 = 2 2x 2 = 2 x 2 = 1 (x 1, x 2 ) = (2,1)
Rozwiązanie: x 1 = 2 x 2 = 1 z = 3 x = [ 2 1 ]
Postać standardowa problemu PL Można wykazać, że każdy problem PL można sprowadzić do tzw. postaci standardowej, w której spełnione są warunki: 1) maksymalizacja z (funkcji celu) 2) stałe w ograniczeniach są nieujemne b i 0 i = 1 m 3) układ ograniczeń w postaci równań
Sprowadzenie do postaci standardowej: 1) min z max z (zmiana funkcji celu na przeciwną) 2) jeżeli b i < 0, to pomnożyć i-te ograniczenie przez ( 1) 3) jeżeli ograniczenie jest nierównościowe to należy wprowadzić tzw. zmienną osłabiającą s j i zamienić nierówność na równanie, przy czym: a. przy ograniczeniach typu wprowadzić zmienną ze współczynnikiem +1 b. przy ograniczeniach typu wprowadzić zmienną ze współczynnikiem 1
Przykład Zamiana: a) max z = 2x 1 + x 2 b) 2x 1 3x 2 2 ( 1) 2x 1 + 3x 2 2 c) x 1 + 2x 2 s 1 = 4 2x 1 + 3x 2 + s 2 = 2 min z = 2x 1 x 2 p. o. x 1 + 2x 2 4 2x 1 3x 2 2 x 1, x 2 0
Problem w postaci standardowej: Liczba zmiennych: n = 4 Liczba ograniczeń: m = 2 max z = 2x 1 + x 2 p. o. x 1 + 2x 2 s 1 = 4 2x 1 + 3x 2 + s 2 = 2 x 1, x 2, s 1, s 2 0 2 c = [ 1 ] ; b = [ 4 a 1 a 2 0 2 ] ; A2 4 = [ 1 2 2 3 0 a 3 a 4 1 0 ] 0 1
Przykład praktyczny problem wytwórcy Zakład produkcyjny może produkować n typów wyrobów. Do produkcji wykorzystuje m typów surowców, przy czym dostępne zasoby i -tego surowca wynoszą b i (i = 1 m). Nakład i -tego surowca potrzebny do produkcji jednostkowej ilości j-tego produktu jest znany i wynosi a ij (i = 1 m; j = 1 n). Sformułować plan produkcji maksymalizujący sumaryczny zysk ze sprzedaży wyrobów, przyjmując, że cena rynkowa jednostki produktu typu j jest znana i wynosi c j.
Zmienna decyzyjna: x j ilość j-tego produktu, którą należy wyprodukować c j x j zysk ze sprzedaży j-tego produktu n j=1 c j x j sumaryczny zysk ze sprzedaży Ograniczenia: a ij x j nakład i-tego surowca do produkcji j-tego produktu n j=1 a ij x j sumaryczne zużycie i tego surowca
Model liniowy problemu: n max z = c j x j j=1 n p. o. a ij x j b i j=1 x j 0 i = 1 m j = 1 n