Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

17
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ład1 1 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 2 2 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

Transcript of Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

Page 1: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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

Page 2: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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

Page 3: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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 .

Page 4: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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.

Page 5: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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.

Page 6: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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

Page 7: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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

Page 8: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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

Page 9: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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.

Page 10: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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.

Page 11: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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).

Page 12: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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.

Page 13: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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

Page 14: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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:

Page 15: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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

Page 16: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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:

Page 17: Dorota Miszczyńska, Marek Miszczyński, KBO UŁ ...

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