Przykład 1 — rozwiązanie graficzne zadania PL
Zmaksymalizuj z = 3x + 5y przy ograniczeniach x + 2y ≤ 14, 3x + y ≤ 18, x − y ≤ 4, x, y ≥ 0.
1. Obszar dopuszczalny to część wspólna pięciu półpłaszczyzn — wielokąt wypukły.
Jego wierzchołki znajdujemy, przecinając ograniczenia parami i odrzucając punkty
niedopuszczalne.
2. Kandydaci:
• x = 0, y = 0 → (0, 0), z = 0
• y = 0 ∩ x − y = 4 → (4, 0), z = 12
• x − y = 4 ∩ 3x + y = 18 → 3x + (x−4) = 18, x = 5,5, y = 1,5 → z = 24
• 3x + y = 18 ∩ x + 2y = 14 → y = 18 − 3x, x + 36 − 6x = 14, x = 4,4, y = 4,8 → z = 37,2
• x = 0 ∩ x + 2y = 14 → (0, 7), z = 35
3. Punkt y = 0 ∩ 3x + y = 18 dałby (6, 0), ale narusza x − y ≤ 4 (6 > 4) — odpada.
4. Największa wartość: z* = 37,2 w punkcie (4,4 ; 4,8).
5. Które ograniczenia są tam aktywne (spełnione z równością)? Sprawdzamy:
x + 2y = 4,4 + 9,6 = 14 ✓ oraz 3x + y = 13,2 + 4,8 = 18 ✓. Trzecie: x − y = −0,4 < 4 —
nieaktywne. Wierzchołek leży na przecięciu dwóch aktywnych ograniczeń, co w ℝ² jest regułą.
6. Interpretacja poziomicy: prosta 3x + 5y = z przesuwa się równolegle; ostatni jej kontakt
z wielokątem to właśnie ten wierzchołek. Gdyby wektor celu był równoległy do którejś
krawędzi (np. c = (3 ; 6) przy krawędzi x + 2y = 14), optimum przyjmowałby cały odcinek —
rozwiązań byłoby nieskończenie wiele, ale wartość z* wciąż jedna.
Przykład 2 — pierwsza iteracja sympleksu dla tego samego zadania
1. Dodajemy zmienne swobodne s₁, s₂, s₃, zamieniając nierówności w równania:
x + 2y + s₁ = 14, 3x + y + s₂ = 18, x − y + s₃ = 4.
2. Baza początkowa to {s₁, s₂, s₃}, czyli wierzchołek x = y = 0 (z = 0). Wiersz celu
zapisujemy jako z − 3x − 5y = 0, więc w tablicy stoją współczynniki −3 i −5.
3. Kolumna wejściowa: najbardziej ujemny współczynnik to −5 przy y — wprowadzamy y
do bazy (kryterium największego wzrostu na jednostkę).
4. Test ilorazów (tylko dodatnie elementy kolumny y):
wiersz s₁: 14/2 = 7 · wiersz s₂: 18/1 = 18 · wiersz s₃: −1 < 0, pomijamy.
Najmniejszy iloraz to 7 → z bazy wychodzi s₁. Element centralny: 2.
5. Po przeliczeniu tablicy nowa baza to {y, s₂, s₃}, a wierzchołek to (0 ; 7), z = 35.
Odpowiada to przejściu wzdłuż osi y aż do ograniczenia x + 2y ≤ 14.
6. W wierszu celu zostaje jeszcze jeden ujemny współczynnik (przy x), więc nie
jesteśmy w optimum — kolejna iteracja wprowadza x i prowadzi do (4,4 ; 4,8) z z = 37,2,
zgodnie z Przykładem 1.
7. Dlaczego test ilorazów pomija ujemne elementy: zwiększanie zmiennej wchodzącej
zwiększa tam wartość zmiennej bazowej, więc to ograniczenie nigdy nie zostanie
naruszone. Gdyby cała kolumna była niedodatnia, zadanie byłoby nieograniczone.
Zakładka „Metoda sympleks” pokazuje każdą tablicę i równolegle sprawdza wynik pełnym
przeglądem wierzchołków.
Przykład 3 — KKT: najbliższy punkt koła
Zminimalizuj f(x,y) = (x−3)² + (y−1)² przy warunku g(x,y) = x² + y² − 4 ≤ 0.
1. Cel (3, 1) leży w odległości √(9+1) = √10 ≈ 3,162 od początku, a promień to 2.
Cel jest więc poza zbiorem dopuszczalnym — ograniczenie będzie aktywne.
2. Zapisujemy stacjonarność: ∇f = (2(x−3), 2(y−1)), ∇g = (2x, 2y), więc
2(x−3) + λ·2x = 0 i 2(y−1) + λ·2y = 0.
3. Stąd x(1+λ) = 3 oraz y(1+λ) = 1, czyli (x, y) = (3, 1)/(1+λ) — rozwiązanie leży
na półprostej od początku do celu. Geometrycznie oczywiste: najbliższy punkt koła to
rzut celu na okrąg.
4. Z komplementarności λ > 0 wymusza g = 0, czyli x² + y² = 4. Podstawiając:
10/(1+λ)² = 4, więc (1+λ)² = 2,5 i 1 + λ = √2,5 ≈ 1,5811, czyli λ ≈ 0,5811.
5. Rozwiązanie: x* = 3/1,5811 ≈ 1,8974, y* = 1/1,5811 ≈ 0,6325.
Kontrola: x*² + y*² = 3,600 + 0,400 = 4,000 ✓ leży na okręgu.
6. Wszystkie cztery warunki KKT: stacjonarność ✓ (z konstrukcji), dopuszczalność
g = 0 ≤ 0 ✓, λ = 0,5811 ≥ 0 ✓, komplementarność λ·g = 0,5811 · 0 = 0 ✓.
7. Przypadek przeciwny: gdyby cel leżał wewnątrz koła, np. (0,5 ; 0,5),
ograniczenie by nie działało — rozwiązaniem byłby sam cel, λ = 0, a g = −3,5 < 0.
Komplementarność znów spełniona, tym razem drugim członem. Przyciski na zakładce
„Warunki KKT” ustawiają oba przypadki; aplikacja liczy λ, sprawdza stacjonarność
i komplementarność liczbowo.