Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
notatki:badania_operacyjne_teoria [2025/05/16 15:07] – usunięto administrator | notatki:badania_operacyjne_teoria [2025/05/16 17:32] (aktualna) – administrator | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
+ | ===== Badania operacyjne: Rozwiązywanie ZPL (zadań programowania liniowego) metodą graficzną ===== | ||
+ | |||
+ | Geogebra: {{ : | ||
+ | |||
+ | źródło: [[https:// | ||
+ | |||
+ | Metoda graficzna służy do rozwiązywania tylko takich zadań programowania liniowego, które mają maksymalnie 2 zmienne, gdyż tylko takie można przedstawić w układzie współrzędnych. Oto przykład takiego zadania: | ||
+ | |||
+ | $$ | ||
+ | \begin{align*} | ||
+ | \text{Maximize} \quad & z = 6x_1 + 6x_2 \\ | ||
+ | \text{subject to} \quad | ||
+ | & 2x_1 + 3x_2 \leq 12 \\ | ||
+ | & 4x_1 + 2x_2 \leq 16 \\ | ||
+ | & x_1 \geq 0,\ x_2 \geq 0 | ||
+ | \end{align*} | ||
+ | $$ | ||
+ | |||
+ | Należy rozpocząć od zaznaczenia w układzie współrzędnych obszaru danego za pomocą ograniczeń. W pierwszym kroku rysujemy układ współrzędnych (należy pamiętać o opisaniu osi oraz o zaznaczeniu skali) | ||
+ | |||
+ | Następnie numerujemy ograniczenia. Warto to robić, szczególnie w przypadku zadań, gdy liczba ograniczeń jest większa niż 2. | ||
+ | |||
+ | $$ | ||
+ | \begin{align} | ||
+ | \text{1) } 2x_1 + 3x_2 &\leq 12 \\ | ||
+ | \text{2) } 4x_1 + 2x_2 &\leq 16 | ||
+ | \end{align} | ||
+ | $$ | ||
+ | |||
+ | Rysujemy pierwsze ograniczenie. Obrazem graficznym ograniczenia 1 jest półpłaszczyzna, | ||
+ | Najpierw należy sporządzić wykres prostej | ||
+ | |||
+ | \[ | ||
+ | 2x_1 + 3x_2 = 12 | ||
+ | \] | ||
+ | |||
+ | |||
+ | Prosta ta przechodzi przez punkty (0,4) i (6,0). Następnie należy zdecydować, | ||
+ | |||
+ | \[ | ||
+ | 0 \leq 12 | ||
+ | \] | ||
+ | |||
+ | |||
+ | Jest to zdanie prawdziwe, zatem punkt (0,0) należy do tej półpłaszczyzny. Półpłaszczyznę zaznaczamy strzałką. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Analogicznie sporządzamy wykres ograniczenia 2. Także rysujemy wykres prostej: | ||
+ | |||
+ | \[ | ||
+ | 4x_1 + 2x_2 = 16 | ||
+ | \] | ||
+ | |||
+ | |||
+ | Przechodzi ona przez punkty (0,8) i (4,0). Następnie wstawiając do ograniczenia drugiego współrzędne punktu (0,0) znajdujemy właściwą półpłaszczyznę. | ||
+ | |||
+ | \[ | ||
+ | 0 \leq 16 | ||
+ | \] | ||
+ | |||
+ | |||
+ | Zatem punkt (0,0) należy do tej półpłaszczyzny. Podobnie jak w przypadku ograniczenia 1 półpłaszczyznę zaznaczamy strzałką. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Pamiętając o ograniczeniach brzegowych, tj. x1 ≥ 0, x2 ≥ 0, zaznaczamy część wspólną wszystkich narysowanych obszarów. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Zaznaczony obszar nosi nazwę " | ||
+ | |||
+ | Gradient jest to wektor, który wskazuje kierunek najszybszego wzrostu funkcji. Wyznacza się go jako pochodne cząstkowe funkcji po wszystkich współrzędnych. W naszym zadaniu gradient funkcji celu będzie miał następującą postać: | ||
+ | |||
+ | gradz=[6,6] | ||
+ | |||
+ | Wyznaczony gradient, czyli wektor [6,6] należy zaznaczyć na rysunku. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Następnie należy narysować prostą prostopadłą do gradientu. Jest to warstwica funkcji celu. Ma ona równanie: | ||
+ | |||
+ | \[ | ||
+ | 6x_1 + 6x_2 = c | ||
+ | \] | ||
+ | |||
+ | |||
+ | gdzie c jest stałą. W zależności od tej stałej możemy przesuwać równolegle warstwicę po rysunku. Aby odnaleźć punkt optymalny, którego współrzędne dają nam największą wartość funkcji celu, należy warstwicę przesuwać równolegle, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Przesuwana prosta prostopadła do gradientu (warstwica) ma ostatni raz punkt wspólny z obszarem dopuszczalnym w punkcie przecięcia się prostych 1 i 2. Tam też leży rozwiązanie zadania - punkt optymalny. Znajdujemy go poprzez rozwiązanie następującego układu równań: | ||
+ | |||
+ | \[ | ||
+ | \begin{cases} | ||
+ | 2x_1 + 3x_2 = 12 \\ | ||
+ | 4x_1 + 2x_2 = 16 | ||
+ | \end{cases} | ||
+ | \] | ||
+ | |||
+ | |||
+ | W wyniku rozwiązania powyższego układu równań otrzymujemy: | ||
+ | |||
+ | \[ | ||
+ | x_1 = 3, \quad x_2 = 2 | ||
+ | \] | ||
+ | |||
+ | |||
+ | Zaznaczamy punkt optymalny na rysunku. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Należy jeszcze wyznaczyć wartość funkcji celu w punkcie optymalnym: | ||
+ | |||
+ | \[ | ||
+ | z(3,2) = 3 \times 6 + 2 \times 6 = 30 | ||
+ | \] | ||
+ | |||
+ | |||
+ | Podsumowjąc, | ||
+ | |||
+ | \[ | ||
+ | z = 2x_1 + 6x_2 \to \max | ||
+ | \] | ||
+ | |||
+ | |||
+ | to gradient byłby wektorem [2,6], a punkt optymalny znalazłby się w punkcie (0,4). Sytuacja taka została przedstawiona na rysunku poniżej. | ||
+ | |||
+ | {{: | ||