Docsity
Docsity

Przygotuj się do egzaminów
Przygotuj się do egzaminów

Studiuj dzięki licznym zasobom udostępnionym na Docsity


Otrzymaj punkty, aby pobrać
Otrzymaj punkty, aby pobrać

Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium


Informacje i wskazówki
Informacje i wskazówki

Optymalizacja dyskretna - metoda podziału i ograniczeń - Notatki - Badania operacyjne, Notatki z Badania operacyjne

Notatki dotyczące badań operacyjnych: optymalizacja dyskretna - metoda podziału i ograniczeń.

Typologia: Notatki

2012/2013

Załadowany 05.03.2013

Osholom
Osholom 🇵🇱

4.5

(35)

304 dokumenty

Podgląd częściowego tekstu

Pobierz Optymalizacja dyskretna - metoda podziału i ograniczeń - Notatki - Badania operacyjne i więcej Notatki w PDF z Badania operacyjne tylko na Docsity!

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 ) xDi }

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:

DD 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

xDrk dla danego r (1<=r<=rk) i f ( ) xL 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:

 

0 wprzeciwnym razie

1 zadaniejwykonywaneprzez i-tąosobę

max

1

1

1 1

ij

m

j

ij

m

i

ij

m

i

m

j

ij ij

gdzie x

x

ogr x

z c x

Problem przydziału jest szczególnym przypadkiem problemu transportowego

WYRÓB /

STANOWISKO

A 2 10 9 7

B 15 4 14 8

C 13 14 16 11

D 4 15 13 9

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

  • 2 R=1 6

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

R=

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

-1 R=

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  0 ^ -

4 0 ^00

G

1

G

2

~<2,4>

G

0

G^0 (16)

R=

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

1  0 ^3

3 0 ^   -

R=

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

-1 R=

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

-1 R=

G^1 (16)

G^2 (18)

~<2,4>

G^0 (16)

G^1 (16)

G^2 (18)

~<2,4>

G

3

G

4

G^0 (16)

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.

G^9 (19)