Studiuj dzięki licznym zasobom udostępnionym na Docsity
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Przygotuj się do egzaminów
Studiuj dzięki licznym zasobom udostępnionym na Docsity
Otrzymaj punkty, aby pobrać
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Społeczność
Odkryj najlepsze uniwersytety w twoim kraju, według użytkowników Docsity
Bezpłatne poradniki
Pobierz bezpłatnie nasze przewodniki na temat technik studiowania, metod panowania nad stresem, wskazówki do przygotowania do prac magisterskich opracowane przez wykładowców Docsity
Notatki dotyczące badań operacyjnych: optymalizacja dyskretna - metoda podziału i ograniczeń.
Typologia: Notatki
1 / 7
Optymalizacja dyskretna - metoda podziału i ograniczeń
Wprowadzenie
Ogólna idea metody podziału i ograniczeń polega na uporządkowanym przeszukiwaniu zbioru rozwiązań zadania optymalizacyjnego, o którym zakładamy że jest skończony. Zbiór wszystkich rozwiązań (D) dzieli się sukcesywnie na mniejsze podzbiory ( podział ) a dla każdego podzbioru oblicza się kres dolny czyli oszacowanie z dołu wartości funkcji celu (minimalizacja). W kolejnych krokach dokonujemy podziału tych zbiorów, które mają najmniejszą wartość kresu dolnego (minimalizacja). Podział postępuje do chwili znalezienia rozwiązania dopuszczalnego, dla którego wartość funkcji celu jest nie większa niż najmniejsze dolne ograniczenie wszystkich nie podzielonych podzbiorów ( ograniczenie ). W najgorszym przypadku należy sprawdzić wszystkie rozwiązania, co przesądza o wykładniczej złożoności obliczeniowej tej metody.
Dla wyliczenia kresów dolnych (minimalizacja) należy zdefiniować funkcję ograniczającą „w”. Musi ona spełniać następujące warunki (minimalizacja):
Efektywność metody podziału i ograniczeń zależy od jakości oszacowań kresów dla każdego podzbioru. Im te oszacowania są dokładniejsze, tym mniej potrzeba podziałów. Idealna funkcja ograniczająca jest następująca:
w ( Di )min{ f ( x ) x Di }
Metodę podziału i ograniczeń wykorzystuje się z powodzeniem do rozwiązywania szerokiej klasy zadań o charakterze kombinatorycznym: programowanie całkowitoliczbowe, szeregowanie zadań niepodzielnych, problem komiwojażera, problem lokalizacji, problem plecakowy, problem przydziału i inne.
Algorytm
Niech D będzie skończonym zbiorem rozwiązań dopuszczalnych. Przez L(D’) oznaczymy dolną granicę wartości funkcji celu f na pewnym podzbiorze D’ zbioru rozwiązań D (w szczególności D’=D) a przez k numer kroku podziałowego.
Krok 1. Oblicz L(D). Jeśli uda się znaleźć takie rozwiązanie x, że f(x)=L(D), to x jest rozwiązaniem optymalnym. W przeciwnym razie podziel według określonego sposobu zbiór D na skończoną liczbę podzbiorów:
D D 1^1 D 2^1 ... Dr^11
podstaw k:=1 i przejdź do kroku 2.
Krok 2. Oblicz L D ( (^) ik ) i = 1.. rk. Jeśli przy tym uda się znaleźć takie rozwiązanie x, że
x Drk dla danego r (1<=r<=rk) i f ( ) x L D ( (^) r k^ ) L D ( (^) ik ), i=1..rk, to x jest rozwiązaniem
optymalnym. W przeciwnym razie wybierz podzbiór Dv kk ( )według zasady:
L D (^) v kk L D i rk i
( ) min { ( k )} ( ) ^ 1 ,,
i podziel go na skończoną liczbę (zwykle rozłącznych) podzbiorów
D (^) v kk (^ ) D (^) v kk (^ ), 1 Dv k k (^ ), 2 ... Dv kk ( ), ( s k )
Krok 3. Wszystkie nie podzielone dotąd podzbiory
1 1
2 1 2 1
1 1
D x D wD f x
D D D wD wD
x D D f x wD
D 1 k^ , D (^) 2 k^ ,..., D (^) v kk (^ ) 1 , Dv k k (^ ) 1 ,..., Drk k^ , Dv k k (^ ), 1 , D (^) v kk^ ( ), 2 ,..., Dv kk ( ), ( s k )
oznacz przez
D (^) 1 k^ ^1 , D (^) 2 k^ ^1 ,..., Drkk ^11
podstaw k:=k+1 i wróć do kroku 2.
Do realizacji opisanego schematu metody podziału i ograniczeń jest konieczne skonkretyzowanie zasady podziału wyznaczania dolnych ograniczeń znajdowania rozwiązania
Należy zwrócić uwagę na sposób realizacji zasady wyboru podzbioru do podziału (krok 2). Zamiast sprawdzania dolnych ograniczeń wszystkich nie podzielonych podzbiorów, można ograniczyć się do podzbiorów wynikających z ostatniego podziału. Zaletą pierwszego sposobu (na ogół) jest mniejsza liczba podziałów, potrzebny jest jednak większy obszar pamięci do przechowywania informacji o wszystkich nie podzielonych podzbiorach. Drugi sposób to na ogół większa liczba podziałów lecz mniejsza zajętość pamięci.
Przykład
Dany jest zbiór „m” różnych wyrobów, z których każdy może być produkowany na jednym z „m” stanowisk produkcyjnych. Każde ze stanowisk ma różną wydajność przy produkcji każdego z wyrobów. Wydajność i-tego stanowiska przy produkcji j-tego wyrobu jest równa cij, a ponadto każde ze stanowisk ma produkować dokładnie jeden wyrób i każdy z wyrobów ma być produkowany na dokładnie jednym stanowisku. Należy przydzielić wyroby do stanowisk, by łączna wydajność była maksymalizowana.
Problem ten nazywa się problemem przydziału i można zapisać go formalnie w sposób następujący:
1
1
1 1
ij
m
j
ij
m
i
ij
m
i
m
j
ij ij
Problem przydziału jest szczególnym przypadkiem problemu transportowego
Problem komiwojażera - Algorytm Little’a
Metoda podziału i ograniczeń może być zastosowana dla rozwiązania problemu komiwojażera. Algorytm został podany przez Little’a.
z C^0 1 01 3 1 - 2 2 2 1 02 - 5 3 5 02 2 - 4 4 02 5 01 - 3
W naszym wypadku aż trzy odcinki mają optymistyczny koszt wyłączenia równy 2. Arbitralnie wybieramy odcinek <2,4> tworząc zbiory marszrut G^1 i G^2 zawierające lub nie zawierające tego odcinka.
Weźmy pod uwagę zbiór G^1. Tworzymy macierz C^1 usuwając z macierzy C^0 wiersz 2 i kolumnę 4 oraz przyjmując c 42 = (blokujemy drogę przeciwną). Zmodyfikowana i zredukowana macierz C^1 znajduje się poniżej:
Macierz C^1
Weźmy pod uwagę zbiór G^2. Tworzymy macierz C^2 z macierzy C^0 przyjmując c 24 =. Zmodyfikowana i zredukowana macierz C^2 znajduje się poniżej:
macier z C^2
Do dalszego podziału wybieramy wierzchołek o najmniejszej wartości kresu dolnego G^1. Z tablicy C^1 wynika, że tylko odcinki <3,2> oraz <4,1> mogą być rozpatrywane (zerowy koszt, maksymalna optymistyczna wartość kosztu wyłączenia 5). Arbitralnie wybieramy <3,2> tworząc zbiory G^3 i G^4.
Weźmy pod uwagę zbiór G^3. Tworzymy macierz C^3 usuwając z macierzy C^1 wiersz 3 i kolumnę 2. Nie dokonujemy podstawienia c 32 =, gdyż ten element został już wyeliminowany. Zmodyfikowana i zredukowana macierz C^3 znajduje się poniżej:
Macierz C^3
1
2
~<2,4>
0
Weźmy pod uwagę zbiór G^4. Tworzymy macierz C^4 z macierzy C^1 przyjmując c 32 =. Zmodyfikowana i zredukowana macierz C^4 znajduje się poniżej:
Macierz C^4
Do dalszego podziału wybieramy wierzchołek o najmniejszej wartości kresu dolnego G^2. Z tablicy C^2 wynika, że tylko odcinki <1,4> <2,3> oraz <3,2> mogą być rozpatrywane (zerowy koszt, maksymalna optymistyczna wartość kosztu wyłączenia 1). Arbitralnie wybieramy <1,4> tworząc zbiory G^5 i G^6.
Weźmy pod uwagę zbiór G^5. Tworzymy macierz C^5 usuwając z macierzy C^2 wiersz 1 i kolumnę 4. Ponadto dokonujemy podstawienia c 41 =. Zmodyfikowana i zredukowana macierz C^5 znajduje się poniżej:
macier z C^5
Weźmy pod uwagę zbiór G^6. Tworzymy macierz C^6 z macierzy C^2 przyjmując c 14 =. Zmodyfikowana i zredukowana macierz C^6 znajduje się poniżej:
macier z C^2
~<2,4>
~<2,4>
3
4
Podział pozostałych zbiorów nie może dać rozwiązania lepszego. Otrzymane rozwiązanie jest optymalne, choć niekoniecznie jedyne. W celu stwierdzenia czy istnieją inne rozwiązania, należałoby dokonać podziału zbiorów G^5 i G^6.