PROGRAMOWANIE CAŁKOWITOLICZBOWE
METODA PODZIAŁU I OGRANICZEŃ
Przykład 6. Metoda podziału i ograniczeń Rozwiązać zadanie z Przykładu 1. metodą podziału i ograniczeń, przy czym wielkość produkcji wyrobu W 2 musi być określona liczbą całkowitą. 3
Model matematyczny: FC: x1 x2 x1 x2 Z(, ) = 6 + 5 MAX O: WB: 9x + 7x 63 ⓿ 1 2 ❶ x1+ x2 8 3x + 2x 6 ❷ 1 2 x 0, x 0 1 2 x2 C 4
Szukamy rozwiązania nie uwzględniając warunku całoliczbowości (patrz: metoda geometryczna lub simplex) Zadanie 1. Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 ⓿ 1 2 ❶ x1+ x2 8 3x + 2x 6 ❷ 1 2 x 0, x 0 1 2 x = 3.5 x = 4.5 Z( x, x ) = 43.5 Rozwiązanie: 1 2 1 2 5
Zadanie umieszczamy na liście zadań: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 1 43.5 Nie 6
Zmienna x 2 nie spełnia nałożonego na nią w zadaniu głównym warunku x 2 C. Dokonujemy podziału: Otrzymujemy dwa przedziały: x2 [0,4] x2 [5, ) x2 4 x2 5 7
Na podstawie otrzymanych przedziałów budujemy dwa zadania: Zadanie 2. Zadanie 3. Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x 0, x 0 1 2 x2 4 Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x 0, x 0 1 2 x2 5 8
Numery zadań umieszczamy na liście zadań: Metoda podziału i ograniczeń Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 1 43.5 Nie 2 3 9
10
Dla Zadania 2: Maksimum w punkcie: Wartość funkcji celu: 35 C(,4) 9 35 1 Z(,4) = 43 9 3 Dla Zadania 3: Maksimum w punkcie: Wartość funkcji celu: G(3,5) Z(3,5) = 43 11
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 1 43.5 Nie 2 3 2 1 43 3 Tak 3 43 Tak 12
Porządkowanie listy zadań Z listy usuwamy: Zadanie 1. - bo zostało już podzielone Zadanie 3. spełnione są wszystkie warunki całkowitoliczbowości, ale ma mniejszą wartość funkcji celu niż Zadanie 2. 13
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 2 1 43 3 Tak Na liście pozostało tylko jedno zadanie. Ponieważ spełnia ono wszystkie warunki całkowitoliczbowości, to jego rozwiązanie jest rozwiązaniem optymalnym zadania pierwotnego. 14
Przykład 7. Metoda podziału i ograniczeń Rozwiązać zadanie z Przykładu 1. metodą podziału i ograniczeń, przy czym wielkość produkcji obydwóch wyrobów musi być określona liczbą całkowitą. 15
Model matematyczny: FC: x1 x2 x1 x2 Z(, ) = 6 + 5 MAX O: WB: 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 x 0, x 0 1 2 x C, x C 1 2 16
Szukamy rozwiązania nie uwzględniając warunku całkowitoliczbowości Zadanie 1. Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 x 0, x 0 1 2 x = 3.5 x = 4.5 Z( x, x ) = 43.5 Rozwiązanie: 1 2 1 2 17
Zadanie umieszczamy na liście zadań: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 1 43.5 Nie 18
Ponieważ obydwie zmienne nie spełniają warunków całkowitoliczbowości wybieramy, względem której z nich dokonamy podziału. Dokonujemy podziału względem x 1 : Otrzymujemy dwa przedziały: x1 3 x1 4 19
Na podstawie otrzymanych przedziałów budujemy dwa zadania: Zadanie 2. Zadanie 3. Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x 0, x 0 1 2 x1 3 Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x 0, x 0 1 2 x1 4 20
Rozwiązanie Zadania 2: x = 3 x = 5 Z( x, x ) = 43 1 2 1 2 Rozwiązanie Zadania 3: x = 4 x = 3.8 Z( x, x ) = 43.2851 1 2 1 2 21
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 1 43.5 Nie 2 3 2 43 Tak 3 43.2851 Nie 22
Porządkowanie listy zadań Z listy usuwamy: Zadanie 1. - bo zostało już podzielone Na liście pozostaje: Zadanie 2. spełnia wszystkie warunki całkowitoliczbowości Zadanie 3. nie spełnia warunków całkowitoliczbowości, ale ma większą wartość funkcji celu niż Zadanie 2. 23
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 2 43 Tak 3 43.2851 Nie Zadanie 3. musi zostać podzielone 24
Rozwiązanie Zadania 3: x = 4 x = 3.8 1 2 Ponieważ zmienna x 2 nie spełnia warunków całkowitoliczbowości, dokonujemy podziału ze względu na tą zmienną. x 2 = 3.8 x2 3 x2 4 25
Na podstawie otrzymanych przedziałów budujemy dwa zadania: Zadanie 4. Zadanie 5. Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x1 4 x2 3 Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x1 4 x2 4 x 0, x 0 1 2 x 0, x 0 1 2 26
Rozwiązanie Zadania 4: x = 4.66667 x = 3 Z( x, x ) = 43 1 2 1 2 Rozwiązanie Zadania 5: Zadanie jest sprzeczne 27
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 2 43 Tak 3 43.2851 Nie 4 5 4 43 Nie 5 Zadanie sprzeczne 28
Porządkowanie listy zadań Z listy usuwamy: Zadanie 3. - bo zostało już podzielone Zadanie 5. - bo jest sprzeczne Na liście pozostaje: Zadanie 2. spełnia wszystkie warunki całkowitoliczbowości Zadanie 4. nie spełnia warunków całkowitoliczbowości, ale wartość funkcji celu jest taka sama jak w Zadaniu 2. 29
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 2 43 Tak 4 43 Nie Zadanie 4. musi zostać podzielone 30
Rozwiązanie Zadania 4: x = 4.66667 x = 3 1 2 Ponieważ zmienna x 1 nie spełnia warunków całkowitoliczbowości, dokonujemy podziału ze względu na tą zmienną. x 1 = 4.66667 x1 4 x1 5 31
Na podstawie otrzymanych przedziałów budujemy dwa zadania: Zadanie 6. Zadanie 7. Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x1 4 x2 3 x1 4 Z( x, x ) = 6x + 5x MAX 1 2 1 2 9x + 7x 63 1 1 2 2 x1+ x2 8 3x + 2x 6 3 1 2 4 x1 4 x2 3 x1 5 x 0, x 0 1 2 x 0, x 0 1 2 32
Rozwiązanie Zadania 6: x = 4 x = 3 Z( x, x ) = 39 1 2 1 2 Rozwiązanie Zadania 7: x = 5 x = 2.57143 Z( x, x ) = 42.85714 1 2 1 2 33
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 2 43 Tak 4 43 Nie 6 7 6 39 Tak 7 42.85714 Nie 34
Porządkowanie listy zadań Z listy usuwamy: Zadanie 4. - bo zostało już podzielone Zadanie 6. - warunki całkowitoliczbowości spełnione, ale wartość funkcji celu jest mniejsza niż w Zadaniu 2. Zadanie 7. nie spełnia warunków całkowitoliczbowości, a wartość funkcji celu jest mniejsza niż w Zadaniu 2. 35
Lista zadań wygląda teraz tak: Nr zadania Wartość FC Czy spełnione są warunki całkowitoliczbowości Numery zadań, na które zadanie zostało podzielone 2 43 Tak Na liście pozostało tylko jedno zadanie. Ponieważ spełnia ono wszystkie warunki całkowitoliczbowości, to jego rozwiązanie jest rozwiązaniem optymalnym zadania pierwotnego. 36
Kiedy zadanie należy usunąć z listy?
Kiedy zadanie należy usunąć z listy? W przypadku problemu na MAX, zadanie usuwamy z listy gdy: jest sprzeczne zostało podzielone istnieje zadanie spełniające warunki całkowitoliczbowości, o większej wartości funkcji celu 38
Kiedy zadanie należy usunąć z listy? W przypadku problemu na MIN, w ostatnim punkcie wymagane jest, aby funkcja celu miała mniejszą wartość 39
Kiedy zadanie należy podzielić?
Kiedy zadanie należy podzielić? W przypadku problemu na MAX, zadanie zastaje podzielone gdy: nie spełnia warunków całkowitoliczbowości, ale ma największą wartość funkcji celu spośród zadań znajdujących się na liście W przypadku problemu na MIN, funkcja celu musi mieć wartość najmniejszą 41
Dlaczego nie można rozwiązać zadania bez warunków całkowitoliczbowości, a później zaokrąglić wyników?
Dlaczego nie można rozwiązać zadania bez warunków całkowitoliczbowości... Przykład 8. Przypomnienie: Dla Przykładu 1. rozwiązaniem był punkt: A(3.5, 4.5) Wartość funkcji celu w tym punkcie wynosiła: Z( x1, x 2) = 43.5 43
Dlaczego nie można rozwiązać zadania bez warunków całkowitoliczbowości... Zaokrąglenie obydwu wartości zmiennych: W górę: B(4,5) W dół: C(3,4) 44
Dlaczego nie można rozwiązać zadania bez warunków całkowitoliczbowości... 45
Dlaczego nie można rozwiązać zadania bez warunków całkowitoliczbowości... Punkt: B(4,5) leży poza zbiorem rozwiązań dopuszczalnych Punkt: C(3,4) leży w zbiorze rozwiązań dopuszczalnych Wartość funkcji celu dla tego punktu: Z( x1, x 2) = 38 Jest to mniejsza wartość FC, niż ta, którą uzyskano w wyniku rozwiązania zadania z warunkami całkowitoliczbowości. 46
Zadanie binarne
Przykład 9. Zadanie binarne Firma Ziutek Pizza chce otworzyć lokale w pewnym miasteczku. Możliwe lokacje pizzerii oraz dzielnice jakie może obsłużyć dany lokal podane są w tabeli. Sformułować zadanie programowania całkowitoliczbowego, które może zostać wykorzystane do znalezienia najmniejszej liczby pizzerii pokrywających swoim zasięgiem wszystkie dzielnice. 48
Zadanie binarne Możliwa lokalizacja pizzerii (ulice) Pola Elizejskie Wall Street Ramblas Dzielnice Wygwizdów, Mannhattan, Narita, Montparnasse Mannhattan, Sikornik, Montparnasse Wygwizdów, Mannhattan, Sikornik, Narita 49
Zmienne decyzyjne Zadanie binarne Przyjmują tylko wartości 0 i 1. Nazywane są zmiennymi zerojedynkowymi lub binarnymi 50
Zadanie binarne Zmienna x 1 : Opisuje decyzję o ewentualnej lokalizacji pizzerii przy ulicy Pola Elizejskie: x 1 1 jeśli stwierdzona zostanie konieczność lokalizacji przy tej ulicy = 0 jeżeli nie trzeba lokalizować pizzerii przy tej ulicy 51
Zadanie binarne Zmienna x 2 : Opisuje decyzję o ewentualnej lokalizacji pizzerii przy ulicy Wall Street: x 2 1 jeśli stwierdzona zostanie konieczność lokalizacji przy tej ulicy = 0 jeżeli nie trzeba lokalizować pizzerii przy tej ulicy 52
Zadanie binarne Zmienna x 3 : Opisuje decyzję o ewentualnej lokalizacji pizzerii przy ulicy Ramblas: x 3 1 jeśli stwierdzona zostanie konieczność lokalizacji przy tej ulicy = 0 jeżeli nie trzeba lokalizować pizzerii przy tej ulicy 53
Zadanie binarne Funkcja celu: Minimalizujemy ilość pizzerii, czyli sumę wartości zmiennych x 1, x 2, x 3 Z( x, x, x ) = x + x + x MIN 1 2 3 1 2 3 54
Zadanie binarne Ograniczenia: Dla każdej dzielnicy musi istnieć przynajmniej jedna pizzeria, która będzie ją obsługiwać. 55
Zadanie binarne Dzielnicę Wygwizdów może obsługiwać pizzeria przy ulicy Pola Elizejskie lub Ramblas: x 1+ x3 1 Dzielnicę Mannhattan może obsługiwać pizzeria przy ulicy Pola Elizejskie, Wall Street lub Ramblas: x1+ x2 + x3 1 Dzielnicę Sikornik może obsługiwać pizzeria przy ulicy Wall Street lub Ramblas: x 2 + x3 1 56
Zadanie binarne Dzielnicę Narita może obsługiwać pizzeria przy ulicy Pola Elizejskie lub Ramblas: x 1+ x3 1 Dzielnicę Montparnasse może obsługiwać pizzeria przy ulicy Pola Elizejskie lub Wall Street: x 1+ x2 1 57
Zadanie binarne Model matematyczny: Z( x, x, x ) = x + x + x MIN 1 2 3 1 2 3 x1+ x3 1 1+ 2 + 3 1 x x x x 2 + x3 1 x x 1+ x3 1 1+ x2 1 1 2 3 { } x, x, x 0,1 58
...a studenci żyli z tą wiedzą długo i szczęśliwie 59