Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...
Post on 01-May-2022
2 Views
Preview:
Transcript
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
W niektórych sytuacjach decyzyjnych, które dają się przedstawić w formie modeli programowania
matematycznego musimy zrezygnować z założenia o podzielności i z założena o addytywności
pewnych wartości poziomów działalności. Na przykład nie zawsze możemy zaakceptować fakt, że
pewne zmienne decyzyjne będą przyjmować wartości ułamkowe lub też nie możemy przyjąć
założenia, że nakłady ogółem są sumą nakładów indywidualnych procesów. Założenia te pozwalały
nam przyjąć, że określona w modelu funkcja celu jak i określone warunki mają charakter liniowy.
W pierwszym przypadku rozważamy sytuację braku założenia o podzielności i zakładamy, że część
zmiennych decyzyjnych lub wszystkie przyjmują wartości całkowite.
Przykładowe problemy decyzyjne:
Przykład11
Przedsiębiorstwo przewozowe zamierza zakupić samochody ciężarowe do obsługi dwu nowo
otwartych linii. Dane o poszczególnych typach samochodów zawiera tabela 1:
Dane Typy samochodów
I II
Ładowność (w t.) 3 4
Przebieg (w t/km dziennie) 500 500
Cena ( w tys. zł) 220 300
Całkowita ładowność nowych samochodów ma wynieść nie mniej niż 2400 t, a przebieg dzienny nie
mniej niż 25 000 t/km. Ze względu na rodzaj przewożonych ładunków, samochodów drugiego typu
powinno być dwa razy więcej niż pierwszego.
Zbudować model i wyznaczyć, ile samochodów poszczególnych typów należy zakupić, żeby łączna
suma zakupu była możliwie najniższa.
Przykład 22
Właściel sieci restauracji „ Smak” zamierza otworzyć kilka nowych lokali w Łodzi, w różnych jej
częściach . Wybór lokalizacji dotyczy sześciu róznych punktów, które obejmują określone obszary
miasta. Grupa ekspertów zebrała niezbędne informacje oraz oszacowała pewne parametry takie jak:
czasy dojazdu z poszczególnych obszarów, możliwości parkowania, przypływ konsumentów, roczny
zysk oraz czynsz związany z wynajęciem lokali. Wszystkie niezbędne informacje podano w tabeli 2.
Obszar Punkt
1 2 3 4 5 6
1 1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1 1
7 1 1 1
8 1 1 1 Zysk (tys zł) 150 170 200 100 210 120 Czynsz (tys zł) 60 65 80 50 90 55
1 Przykład z D. Rogalska, Programowanie liniowe, wyd. Uniwersytetu Łódzkiego, Łódź 1998
2 opracowano na podstawie H.M. Wagner, Badania Operacyjne, PWE, Warszawa, 1980
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[2]
Roczny zysk jaki przyniesie restauracja oszacowano przy założeniu, że każdy obszar jest
obsługiwany tylko przez jedną restaurację. Sformułuj odpowiedni model i rozwiąż problem
decyzyjny.
Załóż, że każdy z obszarów może być obsługiwany przez więcej niż jedną restaurację, a celem jest
minimalizacja kosztów dzierżawy wszystkich wybranych punktów lokalizacji.
Sformułuj odpowiedni model decyzyjny.
Zadania przedstawione w przykładach 1 i 2 rozwiąż przy pomocy modułu Solver w Excelu
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[3]
Optymalizacja liniowa
w liczbach całkowitych (PLC)
DEFINICJE
Zadaniem PLC nazywamy następujące zadanie optymalizacji liniowej:
)4(,,
)3(0,,0
)2(
)1(max(min)
1
1
11
11111
11
CxCx
xx
bxaxa
bxaxa
xcxcz
n
n
mnmnm
nn
nn
Zadanie (1-3) nazywamy zadaniem regularnym.
Zadanie (1-4) nazywamy zadaniem PLC.
Stosownie do tego podziału oznaczymy zbiory rozwiązań dopuszczalnych:
X - zbiór rozwiązań dopuszczalnych zadania regularnego (wypukły).
XC - zbiór rozwiązań dopuszczalnych zadania PLC (niewypukły);
zbiór ten spełnia oczywisty warunek XC X
Z faktu, że zbiór XC nie jest zbiorem wypukłym wynika niemożność wykorzystania
twierdzenia Weierstrassa do znajdowania rozwiązania optymalnego zadania PLC.
PRZYKŁAD 3
Rozważmy następujące zadanie PLC:
CxCx
xx
bx
axx
xxz
21
21
2
21
21
,
0,0
)(2
7
)(1122
max3
2
2
1
Na rysunku 1 przedstawiono zbiory rozwiązań dopuszczalnych X oraz XC .
Elementy zbioru XC jawią się jako izolowane punkty zawierające się w zbiorze X .
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[4]
Rozwiązanie optymalne
2
13
2
)31(
ox zadania regularnego (1-3) nie spełnia warunku
całkowitoliczbowości (4). Rozwiązanie optymalne
3
2)41(
ox zadania PLC (1-4) warunek
ten oczywiście spełnia.
Rys. 1. Ilustracja zbioru XC dla zadania PLC z przykładu 3
METODY ROZWIĄZYWANIA ZADAŃ PLC
I. Proste
1. przegląd zupełny zbioru XC
2. regularyzacja (zaokrąglenie) rozwiązania optymalnego zadania (1-3)
II. Złożone
3. regularyzacja zadania (1-4);
metody płaszczyzn odcinających
4. wykorzystanie kombinatorycznego charakteru przeglądu zbioru XC;
metoda podziału i ograniczeń (branch & bound method)
5. poszukiwania przypadkowe i metody przybliżone
Ad. 1. Przegląd zupełny zbioru XC . Podejście mało eleganckie. Możliwe tylko wtedy, gdy zbiór XC jest małoliczny i
skończony (por. przykład 1). W przeciwnym przypadku przegląd jest nie do zrealizowania.
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[5]
Ad. 2. Regularyzacja (zaokrąglenie) rozwiązania optymalnego
zadania (1-3). Często stosowane podejście. Można je zaliczyć do klasy metod przybliżonych.
Postępowanie takie kryje w sobie niebezpieczeństwo generowania rozwiązań PLC daleko
odbiegających od zbioru rozwiązań dopuszczalnych XC. Skala odstępstwa zależy od
wielkości liczb opisujących rozwiązanie optymalne zadania (1-3). Zilustrujemy ten problem
na przykładzie (por. przykład 4).
PRZYKŁAD 4
Rozważmy następujące zadanie PLC:
)4(,,
)3(0,0,0
323
)2(234
42
)1(max33
321
321
321
21
321
321
CxCxCx
xxx
xxx
xx
xxx
xxxz
Rozwiązanie zadania (1-3) jest tutaj następujące: 5,405,0 321 ooo xxx . Po
regularyzacji (zaokrągleniu) tego rozwiązania otrzymujemy: 501 321 ooo xxx .
Jako miary dopuszczalności (niedopuszczalności) rozwiązania zaokrąglonego użyjemy
stosunku różnicy prawej strony ograniczeń (RHS) i lewej strony ograniczeń (LHS) do
prawej strony ograniczeń, tj. (RHS-LHS)/RHS. Miarę taką (w wyrażeniu procentowym
można interpretować jako procentowe spełnienie (niespełnienie) danego ograniczenia.
Ujemna wartość takiej miary wskazuje na niespełnienie danego ograniczenia. Miary te
kształtują się następująco: )%3(,33~%,100~%,175~ 321 ogrogrogr .
Otrzymujemy sygnał, że zaokrąglenie rozwiązania powoduje 100-procentowe niespełnienie
drugiego ograniczenia. Zatem proponowane rozwiązanie jest rozwiązaniem „mocno”
niedopuszczalnym.
Inaczej zachowa się takie postępowanie jeżeli będziemy zaokrąglać duże liczby.
Zamieniając w przykładzie 1 oryginalne parametry RHS ( 324 321 bbb ) na inne
353212532145321 321 bbb otrzymamy jako rozwiązanie zadania (1-3):
75,54311025,6330 321 ooo xxx . Po regularyzacji (zaokrągleniu) tego rozwiązania
otrzymamy: 5431206330 321 ooo xxx . Omówione wcześniej miary zgodności
(niezgodności) ograniczeń są teraz następujące:
%0~%,0~%,9,191~ 321 ogrogrogr . Wynika z tego że w tym przypadku
zaokrąglenie rozwiązania zadania (1-3) nie prowadzi do zaproponowania rozwiązania
niedopuszczalnego.
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[6]
Ad. 3. Metody płaszczyzn odcinających. Ogólną ideę rozwiązywania zadań PLC podał w roku 1957 twórca metody simpleks
Georgie B. Dantzig3. Zgodnie z nią, jeżeli po rozwiązaniu zadania (1-3) nie otrzymujemy
rozwiązania w liczbach całkowitych, to do zadania (1-3) należy dołączyć nowe
ograniczenia, które muszą spełnić dwa warunki:
odetną (nie obejmą) uzyskanego wcześniej rozwiązania zadania (1-3); nie było to
rozwiązanie w liczbach całkowitych oraz
będzie wiadomo, że nowe ograniczenia nie odetną wszystkich rozwiązań w liczbach
całkowitych, tj. obejmą przynajmniej jedno rozwiązanie dopuszczalne w liczbach
całkowitych.
Tę stosunkowo prostą ideę ilustrują dwa algorytmy. Są to podejścia zaproponowane przez:
1. Nieszczeriakova (płaszczyznami odcinającymi będą warstwice funkcji celu) oraz
2. Gomory’ego (płaszczyznami odcinającymi będą odpowiednio przekształcone
równania z tablicy simpleksowej zawierającej rozwiązanie optymalne rozszerzanego
zadania (1-3)).
W obu podejściach wykorzystuje się zwykłe metody rozwiązywania zadań PL (klasyczny
algorytm simpleks, dualny algorytm simpleks, itp.).
Ad. 4. Metoda podziału i ograniczeń. Ogólna idea metody polega na ciągłym podziale i rozwiązywaniu zadania (1-3).
Zadanie (1-3) jest dzielone na kolejne zadania, w których zbiór rozwiązań dopuszczalnych X
jest w wyniku każdego podziału zawężany. Po skończonej liczbie podziałów zadania (1-3)
uzyskuje się rozwiązanie zadania PLC (o ile istnieje).
W każdym podziale do rozwiązania zadania podzielonego wykorzystuje się zwykłe
metody rozwiązywania zadań PL (klasyczny algorytm simpleks, zrewidowany algorytm
simpleks, zmodyfikowany algorytm simpleks, itp.).
Ad. 5. Poszukiwania przypadkowe i metody przybliżone. Trudno tutaj wymienić konkretne sposoby rozwiązywania zadania PLC. Najczęściej
są to postępowania związane z konkretnymi zastosowaniami. Wchodzą tutaj w grę
postępowania, które ogólnie nazwać możemy postępowaniami heurystycznymi. Często
wykorzystują one uproszczone fragmenty sygnalizowanych wcześniej postępowań.
Generalnie chodzi w nich o to, aby szybko i sprawnie rozwiązać problem PLC i otrzymać
rozwiązanie jak najbliższe nieznanemu rozwiązaniu optymalnemu PLC.
Z ogólnie omówionych metod zaprezentujemy metodę Gomory’ego oraz podziału i
ograniczeń.
3 G.B.Dantzig, Dicrete-variable extremum problems, Opns. Res., 5, 2, 1957, ss. 266-277
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[7]
Algorytm GOMORY’ego
!!! ZAŁOŻENIE !!! Wszystkie parametry LHS i RHS ograniczeń
muszą być liczbami całkowitymi.
Jeżeli oryginalne ograniczenia nie spełniają tego warunku, to należy pomnożyć każde z nich
z osobna przez odpowiednio dobraną dla niego dodatnią stałą, a po uzyskaniu rozwiązania
optymalnego należy wartość zmiennej swobodnej podzielić przez tą stałą.
Iteracja 0 Postępowanie rozpoczynamy od rozwiązania zadania regularnego (1-3).
Jeżeli zadanie jest sprzeczne albo nie posiada skończonego rozwiązania optymalnego,
to kończymy postępowanie.
Jeżeli rozwiązanie optymalne dane jest w liczbach całkowitych to kończymy
postępowanie.
Jeżeli rozwiązanie nie spełnia warunku całkowitoliczbowości, to przechodzimy do
kolejnej iteracji.
Iteracja k (k1) W zbiorze wartości zmiennych bazowych znajdujemy wartość o największej części
ułamkowej. W przypadku niejednoznacznego wyboru kierujemy się zasadą niższego numeru
(niższej pozycji na liście zmiennych bazowych). Niech taką zmienną będzie zmienna
bazowa o numerze (l), tj.
max : B
i
B
ii
B
l
B
l xxxxl .
Obcinamy zbiór rozwiązań dopuszczalnych X zadania regularnego (1-3) dodając do zbioru
ograniczeń półpłaszczyznę zdefiniowaną następująco:
B
l
B
lj
n
j
jljl xxxyy
1
i rozwiązujemy nowe zadanie regularne (1-3).
Nawiasy [ ] oznaczają funkcję Entier, a elementy jly oraz B
lx pochodzą z l-tego wiersza
tablicy simpleksowej zawierającej rozwiązanie optymalne zadania (1-3) rozwiązywanego w
iteracji k-1.
Technicznie postępowanie „obcinania” zbioru X aktualnego zadania regularnego (1-3)
realizujemy następująco:
1. Do tablicy simpleksowej zawierającej rozwiązanie optymalne zadania (1-3)
rozwiązywanego w iteracji k-1 dokładamy dodatkowe równanie :
B
l
B
lnj
n
j
jljl xxxxyy
1
1
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[8]
2. Jako kolejną (ostatnią) zmienną bazową w nowej tablicy przyjmujemy zmienną 1nx .
3. Tablica taka zawiera zawsze rozwiązanie bazowe dualnie dopuszczalne, które jest
jednak niedopuszczlne prymalnie (składowa z wartością nowej zmiennej bazowej
„doklejonego” równania jest ujemna).
4. Wykonujemy itercję DLSX udopuszczalniającą prymalnie aktualne rozwiązanie
bazowe dualnie dopuszczalne.
W kroku 4 mogą zaistnieć trzy sytuacje.
Można wykonać iterację DLSX i otrzymane rozwiązanie jest
całkowitoliczbowe. Koniec postępowania.
Można wykonać iterację DLSX ale otrzymane rozwiązanie nie jest
całkowitoliczbowe. Przechodzimy do iteracji k+1.
Nie można wykonać iteracji DLSX (brak elementów ujemnych w wierszu (l)).
Koniec postępowania. Rozwiązywane zadanie nie posiada rozwiązania
optymalnego w liczbach całkowitych.
PRZYKŁAD 4
Rozważmy zadanie PLC z przykładu 1.
CxCx
xx
bx
axx
xxz
21
21
2
21
21
,
0,0
)(2
7
)(1122
max3
2
2
1
Ograniczenia tego zadania nie spełniają założenia wstępnego algorytmu Gomory’ego.
Mnożymy ograniczenia (b) przez stałą 2 . Po takim zabiegu „nowe” zadanie PLC
spełnia już założenie wstępne algorytmu.
Rozwiązywane zadanie regularne ma postać:
CxCx
xx
bx
axx
xxz
21
21
2
21
21
,
0,0
)(72
)(1122
max3
2
2
1
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[9]
Iteracja 0
Tablica simpleksowa zawierająca rozwiązanie optymalne jest następująca:
Bc
Zmienne
bazowe
1/2 2/3 0 0 B
x 1x 2x 1s 2s
2/3 2x 0 1 0 1/2 3 1/2
1/2 1x 1 0 1/2 1/2 2
jj zc 0 0 −1/4 −1/12 3 1/3
Rozwiązanie nie jest całkowitoliczbowe. Przechodzimy do iteracji 1.
Iteracja 1
Pozycją w bazie o największej części ułamkowej przy wartości zmiennej bazowej jest (l=1).
Równanie obcinające zbiór X należy wygenerować z równania dla zmiennej 21 xx .
Równanie to ma następującą postać:
21 321 32121001100 32121 sssxx
2121000 32121 sssxx
Rozszerzona tablica simpleksowa z rozwiązaniem optymalnym zadania regularnego (1-3) z
iteracji 0 oraz iteracja udopuszczalniająca DLSX są następujące:
Bc
Zmienne
bazowe
1/2 2/3 0 0 0 B
x 1x 2x 1s 2s 3s
2/3 2x 0 1 0 1/2 0 3 1/2
1/2 1x 1 0 1/2 1/2 0 2
0 3s 0 0 0 1/2 1 1/2
jj zc 0 0 −1/4 −1/12 0 3 1/3
| ljjj yzc / | x x x 1/6 x x
2/3 2x 0 1 0 0 1 3
1/2 1x 1 0 1/2 0 1 2 1/2
0 2s 0 0 0 1 2 1
jj zc 0 0 −1/4 0 −1/6 3 1/4
Otrzymane w wyniku zastosowania DLSX rowiązanie nie jest całkowitoliczbowe. Należy
przejść do kolejnej iteracji.
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[10]
Iteracja 2
Pozycją w bazie o największej części ułamkowej przy wartości zmiennej bazowej jest teraz
(l=2). Kolejne równanie obcinające zbiór X należy wygenerować z równania dla zmiennej
12 xx . Równanie to ma następującą postać:
21 221 2110021210011 432121 ssssxx
21002100 432121 ssssxx
Rozszerzona tablica simpleksowa z rozwiązaniem optymalnym zadania regularnego (1-3) z
iteracji 1 oraz iteracja udopuszczalniająca DLSX są następujące:
Bc
Zmienne
bazowe
1/2 2/3 0 0 0 0 B
x 1x 2x 1s 2s 3s 4s
2/3 2x 0 1 0 0 1 0 3
1/2 1x 1 0 1/2 0 1 0 2 1/2
0 2s 0 0 0 1 2 0 1
0 4s 0 0 1/2 0 0 1 1/2
jj zc 0 0 −1/4 0 −1/6 0 3 1/4
ljjj yzc / x x 1/2 x x x x
2/3 2x 0 1 0 0 1 0 3
1/2 1x 1 0 0 0 1 1 2
0 2s 0 0 0 1 2 0 1
0 1s 0 0 1 0 0 2 1
jj zc 0 0 0 0 −1/6 −1/2 3
Otrzymane w wyniku zastosowania DLSX rowiązanie jest całkowitoliczbowe. Kończymy
postępowanie.
Rozwiązanie końcowe przykładowego zadania PLC jest następujące:
21 ox 32 ox 11 os
2
112
os 3max z
Kolejne odcięcia zbioru X w algorytmie Gomory’ego można prześledzić na rysunku 3.
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[11]
Komentarz do rysunku 3.
Pokazane na rysunku odcięcia 1 i 2 są odwzorowaniami płaszczyzn odcinających z
przestrzeni n-wymiarowej (n>2) na płaszczyznę x10x2 (przestrzeń R2). I tak
4:
nierówność 30 21 xx jest odwzorowaniem w przestrzeni R2 nierówności
odcinającej (iteracja 1) 2121000 2121 ssxx z przestrzeni R4,
nierówność 521 xx jest odwzorowaniem w przestrzeni R2 nierówności
odcinającej (iteracja 2) 21002100 32121 sssxx z przestrzeni R5.
Rys. 3. Ilustracja odcięć zbioru X w algorytmie Gomory’ego (dla przykładu 4)
4 Opisane przekształcenia wykonano tradycyjnie („ręcznie”) wykorzystując postaci kanoniczne modeli zadania regularnego (1-3) z
kolejno dołączanymi zmiennymi swobodnymi oraz równaniami odcięć. Proces znajdowania odworowań można zautomatyzować
wykorzystując przekształcenia liniowe przestrzeni wektorowej (por. E.Żółtowska, E.Porazińska, J.Żółtowski, Algebra liniowa,
Wydawnictwo ABSOLWENT, Łódź, 2000, rozdział II).
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[12]
Metoda PODZIAŁU i OGRANICZEŃ
(Branch & Bound Method)
Metoda nie wymaga żadnych założeń odnośnie do parametrów zadania PLC (1-4).
Dla uproszczenia opisu zakładamy, że zadanie polega na znajdowaniu wartości największej
funkcji celu (maksymalizacja).
Jeżeli jest odwrotnie (minimalizacja), to mnożymy funkcję celu przez (-1), a po zakończeniu
postępowania jej wartość optymalną należy pomnożyć przez (-1).
Do zadania PLC (1-4) dołączamy dodatkowe warunki (5). Warunki (5) są ograniczeniami
widełkowymi dla zmiennych, tj. narzucają indywidualnie zakres dopuszczalnych wartości
poszczególnych zmiennych. Ograniczenia (5) mają postać:
nj
gxd jjj
,,2 ,1
)5(
Granice ograniczeń widełkowych (5) , tj. parametry dj oraz gj powinny być liczbami
całkowitymi. Najczęściej przyjmuje się, że dolne ograniczenia dla zmiennych są równe zero
(dj=0). Z kolei dla górnych ograniczeń (gj) przyjmuje się dostatecznie dużą całkowitą liczbę
M (M>>0). W sensie geometrycznym dobór parametrów określających dolną (dj) i górną (gj)
wartość zmiennej (xj) jest taki, że hiperprostopadłościan H generowany przez (5) pokrywa na
początek zbiór rozwiązań dopuszczalnych X zadania regularnego (1-3), tj. H X.
W całym procesie obliczeniowym metody podziału i ograniczeń rozwiązywane jest zadanie
regularne (1-3),(5). Z uwagi na ograniczenia (5) wygodną metodą rozwiązywania zadania
regularnego (1-3),(5) jest zmodyfikowana metoda simpleks5 (GUB; General Upper Bound
method).
Iteracja 0 Postępowanie rozpoczynamy od rozwiązania zadania regularnego (1-3),(5).
Jeżeli zadanie jest sprzeczne, to kończymy postępowanie.
Jeżeli rozwiązanie optymalne dane jest w liczbach całkowitych,
to kończymy postępowanie.
UWAGA !!! Jeżeli optymalna wartość jakiejkolwiek zmiennej xj jest równa oryginalnej
(początkowej) wartości jej górnego ograniczenia (gj) , to zadanie PLC (1-4)
nie posiada skończonego rozwiązania optymalnego.
Jeżeli rozwiązanie nie spełnia warunku całkowitoliczbowości, to przechodzimy do
kroku 4 w iteracji 1.
5 Modyfikacja metody simpleks polega tutaj na tym, że w tablicy simpleksowej przetwarzany jest tylko układ ograniczeń (2).
Ograniczenia (5) są kontrolowane poza tablicą simpleksową poprzez rozbudowanie kryterium optymalności, wejścia i wyjścia.
Komplikuje to nieznacznie samo przepatrywanie rozwiązań ale rozmiary zadania PL są zdecydowanie mniejsze. Zwiększa to w
sensie numerycznym stabilność i dokładność procesu obliczeniowego. Z popularnych programów komputerowych metodę GUB do
rozwiązywaniu regularnych zadań PL (1-3) wykorzystuje pakiet WinStorm.
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[13]
Iteracja k (k1) Kolejne kroki każdej iteracji są następujące.
1. Porządkowanie listy zadań.
Z listy zadań usuwamy:
zadania już podzielone,
zadania sprzeczne oraz
zadania, które mają wartość funkcji celu mniejszą lub równą wartości funkcji celu
zadań spełniających warunki całkowitoliczbowości.
Pozostałe na liście zadania nazywamy zadaniami aktywnymi.
2. Sprawdzanie czy można zakończyć postępowanie.
Sprawdzamy czy istnieje takie zadanie aktywne, którego rozwiązanie optymalne spełnia
warunki całkowitoliczbowości, a jednocześnie na liście nie ma żadnego innego zadania
aktywnego lub wszystkie pozostałe zadania aktywne mają wartość funkcji celu nie większą
niż w takim zadaniu.
Jeżeli istnieje takie zadanie aktywne, to kończymy postępowanie. Zadanie to generuje
rozwiązanie optymalne zadania PLC (1-4). [UWAGA !!! Jeżeli optymalna wartość
jakiejkolwiek zmiennej xj jest równa oryginalnej (początkowej) wartości jej górnego
ograniczenia (gj), to zadanie PLC (1-4) nie posiada skończonego rozwiązania optymalnego].
Jeżeli nie istnieje takie zadanie aktywne, to przechodzimy do kolejnego kroku.
3. Wybór zadania do podziału.
Jako zadanie do podziału wybieramy to zadanie, które ma największą wartość funkcji celu i
nie spełnia warunków całkowitoliczbowości.
4. Wybór zmiennej wg której dokonamy podziału zadania.
Podziału zadania dokonujemy zawsze ze względu na dowolnie wybraną zmienną, która w
rozwiązaniu optymalnym nie miała wartości całkowitej (np.zmienna xk). Załóżmy, że
ograniczenie widełkowe (5) dla tej zmiennej ma aktualnie postać: kkk gxd .
5. Podział zadania.
W wyniku podziału zadania z kroku 3 (zadanie „matka”) powstaną zawsze dwa nowe
zadania (zadanie „córka” oraz zadanie „syn”). Oba nowe zadania są kopiami zadania
dzielonego i różnią się wyłącznie ograniczeniem widełkowym dla zmiennej k, które
modyfikujemy następująco:
dla pierwszego z zadań („córka”) przyjmujemy
][ o
kkk xxd ,
dla drugiego z zadań („syn”) przyjmujemy
kk
o
k gxx 1][ .
W sensie geometrycznym w zbiorze rozwiązań dopuszczlnych X zadania „matka” wycinane
jest pasmo 1][][ o
kk
o
k xxx , co prowadzi do podziału tego zbioru na dwa
podzbiory związane odpowiednio z zadaniami „córka” i „syn”.
6. Rozwiązanie zadań z aktualnego podziału.
Po rozwiązaniu obu nowych zadań przechodzimy do kolejnej iteracji
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[14]
PRZYKŁAD 5
Rozważmy następujące zadanie PLC:
)4(,,
)3(0,0,0
1123
)2(13234
1132
)1(max233
321
321
321
321
321
321
CxCxCx
xxx
xxx
xxx
xxx
xxxz
W celu rozwiązania zadania PLC metodą podziału i ograniczeń uzupełniamy ograniczenia
(2) zespołem nierówności widełkowych (5).
1000
)5(1000
1000
3
2
1
x
x
x
Iteracja 0
Oznaczenia zadań którymi będziemy posługiwali się do końca tego przykładu są
następujące: Znr bieżący zadania / nr zadania „matki”.
Rozwiązujemy zadanie regularne (1-3),(5) i otrzymujemy rozwiązanie optymalne:
Z1/ wartość
aktualne
ograniczenia (5)
dj gj
x1 0 0 100
x2 4,33 0 100
x3 0 0 100
zmax 13
Jak widać zadanie (1-3),(5), tj. zadanie Z1/ , nie jest sprzeczne i ma skończone rozwiązanie
optymalne.
Rozwiązanie optymalne zadania Z1/ nie jest jednak całkowitoliczbowe.
Przechodzimy do kroku 4 w iteracji 1.
Iteracja 1
Krok 4. Wybór zmiennej wg której dokonamy podziału zadania Z1/ .
Zadaniem, które zostanie podzielone jest zadanie Z1/ . Zmienna względem której
dokonamy podziału to zmienna x2=4,33.
Krok 5. Podział zadania Z1/ .
Dzielimy ograniczenie widełkowe (5) dla zmiennej x2 , które w zadaniu Z1/ wyglądało
następująco: 0 x2 100.
W zadaniu „córka” (Z2/1) będzie ono następujące:
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[15]
0 x2 [4,33] czyli 0 x2 4
W zadaniu „syn” (Z3/1) będzie ono następujące:
[4,33]+1 x2 100 czyli 5 x2 100
Krok 6. Rozwiązanie zadań z aktualnego podziału, tj.zadań Z2/1 i Z3/1 .
Rozwiązania obu zadań są następujące:
Z2/1 wartość
aktualne
ograniczenia (5)
Z3/1 wartość
aktualne
ograniczenia (5)
dj gj dj gj
x1 0 0 100 x1
zad
anie
jest
sprz
eczn
e 0 100
x2 4 0 4 x2 5 100
x3 0,5 0 100 x3 0 100
zmax 13 zmax
Przechodzimy do iteracji 2.
Iteracja 2
Krok 1. Porządkowanie listy zadań.
Aktualna lista zadań jest następująca:
Z1/ , zmax =13, rozwiązanie niecałkowitoliczbowe,
Z2/1 , zmax =13, rozwiązanie niecałkowitoliczbowe,
Z3/1 , zadanie jest sprzeczne.
Usuwamy z listy zadanie Z1/ (już podzielone) oraz zadanie Z3/1 (sprzeczne).
Uporządkowana lista zadań to:
Z2/1 , zmax =13, rozwiązanie niecałkowitoliczbowe,
Krok 2. Sprawdzanie czy można zakończyć postępowanie.
Jedyne na uporządkowanej liście zadanie aktywne nie daje rozwiązania w liczbach
całkowitych. Należy przejść do kolejnego kroku.
Krok 3. Wybór zadania do podziału.
Wybieramy zadanie o największej wartości funkcji celu spośród zadań nadających się do
podziału. Jest nim zadanie Z2/1 .
Krok 4. Wybór zmiennej wg której dokonamy podziału zadania Z2/1 .
Zadaniem, które zostanie podzielone jest zadanie Z2/1 . Zmienna względem której
dokonamy podziału to zmienna x3=0,5.
Krok 5. Podział zadania Z2/1 .
Dzielimy ograniczenie widełkowe (5) dla zmiennej x3 , które w zadaniu Z2/1 wyglądało
następująco: 0 x3 100.
W zadaniu „córka” (Z4/2) będzie ono następujące:
0 x3 [0,5] czyli 0 x3 0
W zadaniu „syn” (Z5/2) będzie ono następujące:
[0,5]+1 x3 100 czyli 1 x3 100
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[16]
Krok 6. Rozwiązanie zadań z aktualnego podziału, tj.zadań Z4/2 i Z5/2 .
Rozwiązania obu zadań są następujące:
Z4/2 wartość
aktualne
ograniczenia (5)
Z5/2 wartość
aktualne
ograniczenia (5)
dj gj dj gj
x1 0,25 0 100 x1 0 0 100
x2 4 0 4 x2 3,67 0 4
x3 0 0 0 x3 1 1 100
zmax 12,75 zmax 13
Przechodzimy do iteracji 3.
Iteracja 3
Krok 1. Porządkowanie listy zadań.
Aktualna lista zadań jest następująca:
Z2/1 , zmax =13, rozwiązanie niecałkowitoliczbowe,
Z4/2 , zmax =12,75 , rozwiązanie niecałkowitoliczbowe,
Z5/2 , zmax =13, rozwiązanie niecałkowitoliczbowe,.
Usuwamy z listy zadanie Z2/1 (już podzielone).
Uporządkowana lista zadań to:
Z4/2 , zmax =12,75 , rozwiązanie niecałkowitoliczbowe,
Z5/2 , zmax =13, rozwiązanie niecałkowitoliczbowe,.
Krok 2. Sprawdzanie czy można zakończyć postępowanie.
Brak zadań aktywnych o rozwiązaniu w liczbach całkowitych.
Należy przejść do kolejnego kroku.
Krok 3. Wybór zadania do podziału.
Wybieramy zadanie o największej wartości funkcji celu spośród zadań nadających się do
podziału. Jest nim zadanie Z5/2 .
Krok 4. Wybór zmiennej wg której dokonamy podziału zadania Z5/2 .
Zadaniem, które zostanie podzielone jest zadanie Z5/2 . Zmienna względem której
dokonamy podziału to zmienna x2=3,67.
Krok 5. Podział zadania Z5/2 .
Dzielimy ograniczenie widełkowe (5) dla zmiennej x3 , które w zadaniu Z5/2 wyglądało
następująco: 0 x2 4.
W zadaniu „córka” (Z6/5) będzie ono następujące:
0 x2 [3,67] czyli 0 x2 3
W zadaniu „syn” (Z7/5) będzie ono następujące:
[3,67]+1 x2 4 czyli 4 x2 4
Krok 6. Rozwiązanie zadań z aktualnego podziału, tj.zadań Z6/5 i Z7/5 .
Rozwiązania obu zadań są następujące:
Dorota Miszczyńska, Marek Miszczyński, KBO UŁ - Optymalizacja liniowa w liczbach całkowitych (PLC)
[17]
Z6/5 wartość
aktualne
ograniczenia (5)
Z7/5 wartość
Aktualne
ograniczenia (5)
dj gj dj gj
x1 0 0 100 x1
zad
anie
jest
sprz
eczn
e 0 100
x2 3 0 3 x2 4 4
x3 2 1 100 x3 1 100
zmax 13 zmax
Przechodzimy do iteracji 4.
Iteracja 4
Krok 1. Porządkowanie listy zadań.
Aktualna lista zadań jest następująca:
Z4/2 , zmax =12,75 , rozwiązanie niecałkowitoliczbowe,
Z5/2 , zmax =13, rozwiązanie niecałkowitoliczbowe,
Z6/5 , zmax =13 , rozwiązanie całkowitoliczbowe,
Z7/5 , zadanie sprzeczne.
Usuwamy z listy zadanie Z5/2 (już podzielone), zadanie Z4/2 (nie da się z niego po
podziałach wygenerować zadania z wartością funkcji celu większą lub równą 13) oraz
zadanie Z7/5 (sprzeczne).
Uporządkowana lista zadań to:
Z6/5 , zmax =13 , rozwiązanie całkowitoliczbowe,
Krok 2. Sprawdzanie czy można zakończyć postępowanie.
Lista zawiera jedno zadanie z rozwiązaniem w liczbach całkowitych. Brak na niej zadań
aktywnych nadających się do dalszego podziału.
Rozwiązaniem optymalnym zadania PLC (1-4) jest więc rozwiązanie zadania Z6/5.
Koniec postępowania.
Rozwiązanie końcowe przykładowego zadania PLC jest następujące:
01 ox 32 ox 23
ox 21 os 02 os 33
os 13max z
top related