You are on page 1of 18

Optymalizacja liniowa w liczbach całkowitych (PLC

)
DEFINICJE
Zadaniem PLC nazywamy następujące zadanie optymalizacji liniowej:
n n

1 1 11 1
8 @

M
1 1

M ≥0 ∈
7 n 8 n D @

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 1 Rozwa my następujące zadanie PLC: 1 2 = + 1 2 3 2 1 + 2

2 2

( )

1
F

1

2

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 .

2 1 Rozwiązanie optymalne x (1−3) = 3  zadania regularnego (1-3) nie spełnia warunku  2    2 całkowitoliczbowości (4). Rozwiązanie optymalne x (1−4 ) =   zadania PLC (1-4) warunek  3
ten oczywiście spełnia.
Q P

E

F

E

,

F

≥0

,

2

≥0 ∈

G

H

F

n

1

F

n

F

8

8

≥0 1∈
7

, ,

L L

, ,

2

→ max ≤ 11 7 2 ( )

D

9

+ L +

n

1
n

=

9

8

@

+ L + M M M

8

A

F

F

F

8

I

8

D

A

=

+ L +

→ max(min) = M
1

M

6

5

4

3

2

0

¨

©

"

¥

(

'

¤

1

¡

¨

0

¨

¡

)

§

¨

¥

$

(

¡

(

'

¥

n

¥

$

¡

%

¨

¡

§

¥

$

¡

#

©

"

!    

@ 

8 8     

B  

¥

¤

¦ 

©

§

¨

§

¦

¥

 

¤

£

¢

¡

 

(1) ( 2) (3) ( 4)

Rys. metody płaszczyzn odcinających 4. przykład 2). 6 5 4 ¨ 3 2 ¦ 0 ¥ ¨  ©  " ¥ ( © ' ¤ ¨ 1 ¡ n ¨ § 0 ¦ ¨ ¡   ) § ¨ ¥ $ ¥ ( ¤ ¡ n ( ¢ ' ¥ ¡ n ¥   $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !             ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [2] . Zło one 3. Podejście mało eleganckie. regularyzacja zadania (1-4). przykład 1). Proste 1. Postępowanie takie kryje w sobie niebezpieczeństwo generowania rozwiązań PLC daleko odbiegających od zbioru rozwiązań dopuszczalnych XC. Regularyzacja (zaokrąglenie) rozwiązania optymalnego zadania (1-3). Zilustrujemy ten problem na przykładzie (por. przegląd zupełny zbioru XC 2. Mo liwe tylko wtedy. Przegląd zupełny zbioru XC . poszukiwania przypadkowe i metody przybli one Ad. Często stosowane podejście. Skala odstępstwa zale y od wielkości liczb opisujących rozwiązanie optymalne zadania (1-3). 1. 1. gdy zbiór XC jest małoliczny i skończony (por. Ilustracja zbioru XC dla zadania PLC z przykładu 1 METODY ROZWIĄZYWANIA ZADAŃ PLC I. metoda podziału i ograniczeń ( & ) 5. wykorzystanie kombinatorycznego charakteru przeglądu zbioru XC. Ad. 2. regularyzacja (zaokrąglenie) rozwiązania optymalnego zadania (1-3) II. Mo na je zaliczyć do klasy metod przybli onych. W przeciwnym przypadku przegląd jest nie do zrealizowania.

3 ~ 33. ss. Metody płaszczyzn odcinających.Dantzig. 2 ~ 0%. 2 ~ −100%. Zatem proponowane rozwiązanie jest rozwiązaniem „mocno” niedopuszczalnym. Po regularyzacji (zaokrągleniu) tego rozwiązania 3 . 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ń. Miarę taką (w wyra eniu procentowym mo na interpretować jako procentowe spełnienie (niespełnienie) danego ograniczenia. Otrzymujemy sygnał.. Omówione wcześniej miary zgodności (niezgodności) ograniczeń są teraz następujące: 1 ~ 191. Ujemna wartość takiej miary wskazuje na niespełnienie danego ograniczenia. które muszą spełnić dwa warunki: • odetną (nie obejmą) uzyskanego wcześniej rozwiązania zadania (1-3).9%. to do zadania (1-3) nale y dołączyć nowe ograniczenia. 3.   ¡ ¤ £ ¢     ¡ ¤ £   1   = 6330. Inaczej zachowa się takie postępowanie je eli będziemy zaokrąglać du e liczby. 3 ~ 0% . ≥0 2 ∈ . ≥0 3 ∈ 3 8 8 8 2 4 + − − 8 8 ¤ £ ¢ 8 = − 3 + 3 3 3 → max ≤ ≤ ≤ 4 2 3 3 = 0.25   ¡ 2 =0 3 ¥ ¢ ¥ 1 ¡ = 45321 2 = 25321 = 35321 otrzymamy jako rozwiązanie zadania (1-3): = 54311. Ogólną ideę rozwiązywania zadań PLC podał w roku 1957 twórca metody simpleks Georgie B. (RHS-LHS)/RHS. tj. e zaokrąglenie rozwiązania powoduje 100-procentowe niespełnienie drugiego ograniczenia. Po . 1957. Ad. nie było to rozwiązanie w liczbach całkowitych oraz ¦ # £ $ ) ' ¢ ! # © # £ ¢ " ¨ £ £ $ ) ¡ ¥ ¢ ¡ § £ " £ ¢ ¨ ¥ 1 ¦ G. . 5. 266-277   ¡   ¥   ¡   1   2 ¡ ¡ ¥ ¤ £   ¢ ¡ ¥ ¡ Rozwiązanie zadania (1-3) jest tutaj następujące: 7 ¤ £ ¢ 7 ≥0 1∈ 1 . Zgodnie z nią.5 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !      8      B   ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ ¤ £ ¢ £ ¡ ¢ ¥   [3] (1) ( 2) (3) ( 4) =0 3 = 4. . 2. Dantzig1.B.PRZYKŁAD 2 Rozwa my następujące zadanie PLC: 1 8 2 2 1 8 1 8 3 8 2 2 8 −3 7 8 1 + 8 8 2 2 + 8 8 regularyzacji (zaokrągleniu) tego rozwiązania otrzymujemy: 1 = 1 2 = 0 3 = 5.5 . Wynika z tego e w tym przypadku zaokrąglenie rozwiązania zadania (1-3) nie prowadzi do zaproponowania rozwiązania niedopuszczalnego. (3)% . je eli po rozwiązaniu zadania (1-3) nie otrzymujemy rozwiązania w liczbach całkowitych. Zamieniając w przykładzie 1 oryginalne parametry RHS ( 1 = 4 2 = 2 3 = 3 ) na inne ¡ ¡ otrzymamy: 1 = 6330 2 =0 3 = 54312 . Res.75 . Miary te kształtują się następująco: 1 ~ 175%. Opns.

dualny algorytm simpleks. Często wykorzystują one uproszczone fragmenty sygnalizowanych wcześniej postępowań. które ogólnie nazwać mo emy postępowaniami heurystycznymi. W ka dym podziale do rozwiązania zadania podzielonego wykorzystuje się zwykłe metody rozwiązywania zadań PL (klasyczny algorytm simpleks. Metoda podziału i ograniczeń. aby szybko i sprawnie rozwiązać problem PLC i otrzymać rozwiązanie jak najbli sze nieznanemu rozwiązaniu optymalnemu PLC. 4. Będą to podejścia zaproponowane przez: 1. zrewidowany algorytm simpleks. obejmą przynajmniej jedno rozwiązanie dopuszczalne w liczbach całkowitych. Poszukiwania przypadkowe i metody przybli one. w których zbiór rozwiązań dopuszczalnych X jest w wyniku ka dego podziału zawę any.). 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)). Po skończonej liczbie podziałów zadania (1-3) uzyskuje się rozwiązanie zadania PLC (o ile istnieje). Wchodzą tuttaj w grę postępowania. 5. 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !             ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [4] .• będzie wiadomo. Ad. Tę stosunkowo prostą ideę zilustrujemy dwoma algorytmami. itp. zmodyfikowany algorytm simpleks. Ogólna idea metody polega na ciągłym podziale i rozwiązywaniu zadania (1-3). Najczęściej są to postępowania związane z konkretnymi zastosowaniami. Nieszczeriakova (płaszczyznami odcinającymi będą warstwice funkcji celu) oraz 2. itp. W obu podejściach wykorzystuje się zwykłe metody rozwiązywania zadań PL (klasyczny algorytm simpleks. tj. Trudno tutaj wymienić konkretne sposoby rozwiązywania zadania PLC. Zadanie (1-3) jest dzielone na kolejne zadania. Generalnie chodzi w nich o to.). e nowe ograniczenia nie odetną wszystkich rozwiązań w liczbach całkowitych. Ad.

dodanym ograniczeniu wg następującego przepisu 1 1 + L + Dokonujemy zmiany i przechodzimy do kolejnej ( +1) iteracji. • wypukła kombinacja liniowa nie zawiera rozwiązania w liczbach całkowitych. • Je eli rozwiązanie optymalne dane jest w liczbach całkowitych to kończymy postępowanie. Konstruujemy dodatkowe ograniczenie dla zadania regularnego (1-3). Je eli adne z rozwiązań alternatywnych nie spełnia warunku całkowitoliczbowości. to budujemy liniową kombinację wypukłą ze wszystkich bazowych (wierzchołkowych) rozwiązań optymalnych. Wówczas nale y zmienić warstwicę zmniejszając o jednostkę wyraz wolny w = −1. Istnieć będą alternatywne rozwiązania optymalne. to kończymy postępowanie. Je eli jedno z alernatywnych rozwiązań spełnia warunek całkowitoliczbowości. • 1 1 +L+ Dołączamy do zadania regularnego (1-3) nowe ograniczenie i przechodzimy do kolejnej iteracji. Znajdujemy wszystkie alternatywne rozwiązania optymalne tego zadania2.   n ¡ n ¢ ¡ ¢ ¤ 2 Obecność warstwicy funkcji celu jako aktywnego ograniczenia powoduje. e zawsze (począwszy od iteracji 1) rozwiązanie optymalne będzie niejednoznaczne. to nale y ją pomno yć przez odpowiednio dobraną dodatnią stałą. Mogą zaistnieć tutaj dwa przypadki: • wypukła kombinacja liniowa zawiera rozwiązanie w liczbach całkowitych. Jest nim warstwica funkcji celu postaci: 1 1 ¡ ¢ = − 1 je eli jest liczbą całkowitą.Algorytm NIESZCZERIAKOV’a !!! ZAŁO ENIE !!! Wszystkie współczynnikiw funkcji celu muszą być liczbami całkowitymi. to rozpoczynamy opisane ni ej postępowanie. Iteracja 0 Postępowanie rozpoczynamy od rozwiązania zadania regularnego (1-3).     n n ¡ ¡ n n ¢ ¢ ¡ ¢ • +L+ =[ ] je eli nie jest liczbą całkowitą albo 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !             ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [5] . Oznaczmy przez uzyskaną optymalną wartość funkcji celu . Kończymy postępowanie. a po uzyskaniu rozwiązania optymalnego nale y podzielić otrzymaną optymalną wartość funkcji celu przez tą stałą. Je eli oryginalna funkcja celu nie spełnia tego warunku. • Je eli rozwiązanie nie spełnia warunku całkowitoliczbowości. Iteracja k (k≥1) ≥ Rozwiązujemy rozszerzone (zawsze o 1 ograniczenie) zadanie regularne (1-3).

Iteracja 1 Wszystkie alternatywne rozwiązania optymalne rozszerzonego zadania regularnego są następujące:  adne z rozwiązań alternatywnych nie jest całkowitoliczbowe. Wypukła kombinacja rozwiązań wierzchołkowych ma postać:  2  3   1 1 3  x =   = αx 2 + (1 − α )x 3 = α  1  + (1 − α )  przy 0 ≤ α ≤ 1 1 2 2   2 3     2        ¦  3  x2 =  1  2 2    ¤  2 1 3  x3 =   1 3   2 § + . Po takim zabiegu „nowa” funkcja celu spełnia ju zało enie wstępne algorytmu. Rozwiązywane zadanie regularne ma postać: ~= 3 + 4 2 → max 1 1 2 2 1   ( ) ≥0 . Nale y sprawdzić czy za pomocą wypukłej kombinacji liniowej rozwiązań alternatywnych mo na uzyskać rozwiązanie całkowitoliczbowe. Funkcja celu tego zadania nie spełnia zało enia wstępnego algorytmu Nieszczeriakov’a. Konstruujemy dodatkowe ograniczenie.PRZYKŁAD 3 Rozwa my zadanie PLC z przykładu 1. Mno ymy ją zatem przez stałą λ = 6 . Rozszerzone zadanie regularne ma teraz postać: ~= 3 + 4 2 → max 1 1 2 2 1 § ( ) Przechodzimy do iteracji 1. 2 ≥0 Iteracja 0 Rozwiązanie zadania regularnego jest następujące:   2 x1 =  1  3 2    ¤ ~ max = 20 Nie uzyskaliśmy rozwiązania w liczbach całkowitych. które ma postać: 3 1 + 4 2 = 19 (warstwica dla ~ = 20 − 1 = 19 ). 1 ≥0 3 § 4 2 2 = ≥0 ~ max = 19 ¨ ≤ © § 2 § + 2 § ≤ 11 7 2 19 ( ) ¡ ≤ ¢ ¥ ¥   2   + 2   ≤ 11 7 2 ( ) 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ (   § ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡   § # © "   § !  £             ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡ ¦   [6] .

dla którego otrzymalibyśmy rozwiązanie optymalne w liczbach całkowitych. Rozszerzone zadanie regularne ma teraz postać: ~= 3 + 4 2 → max 1 1 2 2 1 § ¦      ( ) Przechodzimy do iteracji 2. e dla α = otrzymujemy rozwiązanie optymalne w liczbach 4    2 x =  1  =   . Zmieniamy poziom warstwicy (warstwica dla ~ = 19 − 1 = 18 ) w dodatkowym ograniczeniu. Po uporządkowaniu mamy:  2  − α + 7  2  Łatwo zauwa yć. 1 ≥0 3 § 4 2 2 = ≥0 ~ max = 18 ¨ ≤ © § 2 § + 2 § ≤ 11 7 2 18 ( ) 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1  ¡ ¨ 0 ¨ ¡ ) §  ¨ ¥ $ ( § ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ § # © " §     !   ¡ ¡                ¥ ¤ ¦  © §   ¨ § ¦   ¥   ¤ £ ¢  ¡   [7] . e nie istnieje takie 0 ≤ α ≤ 1 .  2  − 2α +  2  1 Łatwo zauwa yć.      ¦ 4 x4 =  1  1 2      1 1 3  x5 =   1 3   2 § + . Iteracja 2 Wszystkie alternatywne rozwiązania optymalne rozszerzonego zadania regularnego są następujące:  adne z rozwiązań alternatywnych nie jest całkowitoliczbowe. Nale y sprawdzić czy za pomocą wypukłej kombinacji liniowej rozwiązań alternatywnych mo na uzyskać rozwiązanie całkowitoliczbowe.5 4 α+     3 x =  1  = 3  przy 0 ≤ α ≤ 1 . Wypukła kombinacja rozwiązań wierzchołkowych ma postać:  1 4  1 1 3  x =   = αx 4 + (1 − α )x 5 = α  1  + (1 − α )  przy 0 ≤ α ≤ 1 1 1 2   2 3     2 4 8 α+     3 x = 1= 3 Po uporządkowaniu mamy: 7  przy 0 ≤ α ≤ 1 . które będzie miało teraz postać: 3 1 + 4 2 = 18 . Kończymy postępowanie. całkowitych postaci:  2   3 Kolejne iteracje algorytmu mo na prześledzić na rysunku 2.

Ilustracja cięć w zbiorze X w algorytmie Nieszczeriakov’a (dla przykładu 3)     =2 =3 max = ~ max 6 = 18 =3 6 6 5 4 3 2 0 ¨ © " ¥ ( ' ¡ ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !                 ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [8] .Rozwiązanie końcowe przykładowego zadania PLC jest następujące: 1 2 ¡ Rys. 2.

Iteracja 0 Postępowanie rozpoczynamy od rozwiązania zadania regularnego (1-3). a elementy ( ) oraz ( ) pochodzą z -tego wiersza tablicy simpleksowej zawierającej rozwiązanie optymalne zadania (1-3) rozwiązywanego w iteracji -1. Iteracja k (k≥1) ≥ W zbiorze wartości zmiennych bazowych znajdujemy wartość o największej części ułamkowej. Niech taką zmienną będzie zmienna bazowa o numerze ( ). a po uzyskaniu rozwiązania optymalnego nale y wartość zmiennej swobodnej podzielić przez tą stałą. • Je eli rozwiązanie optymalne dane jest w liczbach całkowitych to kończymy postępowanie. to kończymy postępowanie. Nawiasy [ ] oznaczają funkcję Entier. Jako kolejną (ostatnią) zmienną bazową w nowej tablicy przyjmujemy zmienną § ¦  § ¦    § § ∑( [  n ¨ ]− ) + = ( [ ( ) ]− ( ) ) +1 . () ¢ ¡ ¤ ¢ ¡ ¤ ¢ £ ¡ ¤ £ ¡ ¤ ¥   ( ): ( n − [ ( ) ] ) = max { ( ( ) − [ ( ) ] ) }. § ¦  § ¦   § § ∑([  ¨ ]− ) ≤ ( [ ( ) ]− ( ) ) 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¤ ¡ # © " !             ¥ ¤ ¦  © § ¨ § ¤ ¦ ¥   ¤ £ ¢ ¡   [9] . tj. to przechodzimy kolejnej iteracji. () ¨ Obcinamy zbiór rozwiązań dopuszczalnych X zadania regularnego (1-3) dodając do zbioru ograniczeń półpłaszczyznę zdefiniowaną następująco: =1 ¨  () ¨ () i rozwiązujemy nowe zadanie regularne (1-3). Je eli oryginalne ograniczenia nie spełniają tego warunku. W przypadku niejednoznacznego wyboru kierujemy się zasadą ni szego numeru (ni szej pozycji na liście zmiennych bazowych). • Je eli rozwiązanie nie spełnia warunku całkowitoliczbowości. • Je eli zadanie jest sprzeczne albo nie posiada skończonego rozwiązania optymalnego. Do tablicy simpleksowej zawierającej rozwiązanie optymalne zadania (1-3) rozwiązywanego w iteracji -1 dokładamy dodatkowe równanie : =1 n ¨ ¨  ¨   § ¦  ¨ §  () () +1 n   2. Technicznie postępowanie „obcinania” zbioru X aktualnego zadania regularnego (1-3) realizujemy następująco: 1. to nale y pomno yć ka de z nich z osobna przez odpowiednio dobraną dla niego dodatnią stałą.Algorytm GOMORY’ego !!! ZAŁO ENIE !!! Wszystkie parametry i ograniczeń muszą być liczbami całkowitymi.

Rozwiązywane zadanie nie posiada rozwiązania optymalnego w liczbach całkowitych. Koniec postępowania. Po takim zabiegu „nowe” zadanie PLC spełnia ju zało enie wstępne algorytmu. Przechodzimy do iteracji +1. W kroku 4 mogą zaistnieć trzy sytuacje. § 2 ≥0   ∈ . • Mo na wykonać iterację DLSX ale otrzymane rozwiązanie nie jest całkowitoliczbowe. 2∈ Ograniczenia tego zadania nie spełniają zało enia wstępnego algorytmu Gomory’ego. Rozwiązywane zadanie regularne ma postać: 1 2 = + → max 1 2 2 3 2 1 + 2 2 ≤ 11 ( ) 2 2 ≤ 7 ( ) . Mno ymy ograniczenia ( ) przez stałą λ = 2 . • Nie mo na wykonać iteracji DLSX (brak elementów ujemnych w wierszu ( )). Wykonujemy itercję DLSX udopuszczalniającą prymalnie aktualne rozwiązanie bazowe dualnie dopuszczalne.3. 1 2 = + 1 2 2 3 2 1 + 2 2   → max ≤ © ≤ 2 1 § § ( ) ≥0   . 1∈ 2∈ 1 Iteracja 0 Tablica simpleksowa zawierająca rozwiązanie optymalne jest następująca: 1/2 2/3 0 0 Zmienne B c xB bazowe 1 2 1 2 2/3 1/2 ¦ § 2 1 0 1 1 0 0 1/2 1/2 −1/2 3 1/2 2 0 0 1/4 1/12 3 1/3 Rozwiązanie nie jest całkowitoliczbowe. 4. ¦ ¨ − ¤ ¨ 11 7 2 £ 6 5 4 3 2 0 ¨ © ¤ " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ ¡ $ § ¢ ( § ¢ ¢ § ¡ ( ¢ ¢ ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ ¡ $ ¡ § ¢ § ¢ # © " § ¢ ¢ !     ¥            ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [10] ( ) . • Mo na wykonać iterację DLSX i otrzymane rozwiązanie jest całkowitoliczbowe. które jest jednak niedopuszczlne prymalnie (składowa z wartością nowej zmiennej bazowej „doklejonego” równania jest ujemna). Tablica taka zawiera zawsze rozwiązanie bazowe dualnie dopuszczalne. Przechodzimy do iteracji 1. PRZYKŁAD 4 Rozwa my zadanie PLC z przykładu 1. 1 ≥0 2 ≥0 . Koniec postępowania.

Nale y przejść do kolejnej iteracji. Równanie obcinające zbiór X nale y wygenerować z równania dla zmiennej Równanie to ma następującą postać: (1) = 2. Kolejne równanie obcinające zbiór X nale y wygenerować z równania dla zmiennej   − (2 ) = 1.Iteracja 1 Pozycją w bazie o największej części ułamkowej przy wartości zmiennej bazowej jest ( =1). Równanie to ma następującą postać: ¥ ¥ ¥ ¥ ([1] − 1) 1 + ([0] − 0) ¦ ¦ Rozszerzona tablica simpleksowa z rozwiązaniem optymalnym zadania regularnego (1-3) z iteracji 1 oraz iteracja udopuszczalniająca DLSX są następujące: ¡   ¢ ¡ £ ¦ ¨ ¡ ( ¤ − )/ ¦ § − 3 1/3 x 2 1 2 0 1 0 3 2 1/2 1 2 + ([1 2] − 1 2) 1 + ([0] − 0) 2 + ([− 1] − (− 1)) 3 + 2 4 = ([2 1 2] − 2 1 2) 0 1+0 −1 2 1 + 0 2 + 0 3 + 4 = −1 2   6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !             ¥ ¤ ¦  © ¦ § ¨ ¨ § ¦ ¥   ¤ £ ¢ ¡   [11] . Iteracja 2 Pozycją w bazie o największej części ułamkowej przy wartości zmiennej bazowej jest teraz ( =2). ([0] − 0) 1 + ([1] − 1) 2 + ([0] − 0) 1 + ([1 2] − 1 2) 2 + 2 3 = ([3 1 2] − 3 1 2) 0 1+0 + 0 1 −1 2 2 + 3 = −1 2 Rozszerzona tablica simpleksowa z rozwiązaniem optymalnym zadania regularnego (1-3) z iteracji 0 oraz iteracja udopuszczalniająca DLSX są następujące: 1/2 2/3 0 0 0 Zmienne cB bazowe 2 1 3 1 2 1 2 3 xB 2/3 1/2 0 0 1 0 0 x 1 0 0 0 x 1 0 0 0 1/2 0 1/4 x 0 1/2 0 1/2 −1/2 −1/2 1/12 −1/6 0 0 1 0 0 1 0 x 1 −1 −2 3 1/2 2 −1/2 2/3 1/2 0 ¦ § 0 0 1/4 0 1/6 3 1/4 Otrzymane w wyniku zastosowania DLSX rowiązanie nie jest całkowitoliczbowe.

. rozdział II).c B Zmienne bazowe 2 1 2 4 1/2 1 2/3 2 0 1 0 2 2/3 1/2 0 0 0 1 0 0 0 x 1 0 0 0 0 x 1 0 0 0 0 1/2 0 −1/2 1/4 −1/2 0 0 0 1 0 0 1 0 0 x 0 0 1 0 −1 −2 0 1/6 x 1 −1 −2 0 2/3 1/2 0 0 ¦ § 0 0 0 0 1/6 1/2 3 Otrzymane w wyniku zastosowania DLSX rowiązanie jest całkowitoliczbowe. 2000. ¡ ( ' ¥ n ¥ $ ¡ ¢ ) £ ¦ $ ¥ ¦ ¢ ¤ £ ¤   ¡   n     ¡     ¢   ¡ n £ ¡ ( ¤ − )/ ¦ § − 2 1 2 1 0 1 0 0 =2 =3 =1 = 1 = 1 2 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !             ¥ ¤ ¦  © ¦ § ¨ ¨ § ¦ ¥   ¤ £ ¢ ¡   [12] 0 3 0 4 xB 3 2 1/2 1 −1/2 1 0 0 0 1 0 x 0 1 0 −2 3 1/4 x 3 2 1 1 max =3 z przestrzeni R5. I tak3: • nierówność 0 1  + 2 ≤ 3 jest odwzorowaniem w przestrzeni R2 nierówności odcinającej (iteracja 1) • nierówność 1  0 1+0 0 1+0 2 + 0 1 −1 2 2 ≤ −1 2 z przestrzeni R4. ółtowski. Komentarz do rysunku 3. Łódź. + 2 ≤ 5 jest odwzorowaniem w przestrzeni R2 nierówności 2 odcinającej (iteracja 2) − 1 2 1 + 0 2 + 0 3 ≤ −1 2 3 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ęć. Kończymy postępowanie. . Wydawnictwo ABSOLWENT. Proces znajdowania odworowań mo na zautomatyzować wykorzystując przekształcenia liniowe przestrzeni wektorowej (por.Porazińska. E. Pokazane na rysunku odcięcia 1 i 2 są odwzorowaniami płaszczyzn odcinających z przestrzeni -wymiarowej ( >2) na płaszczyznę 10 2 (przestrzeń R2). E. Rozwiązanie końcowe przykładowego zadania PLC jest następujące: 1 2 1 2 ¦ ¨ − λ Kolejne odcięcia zbioru X w algorytmie Gomory’ego mo na prześledzić na rysunku 3. J. ółtowska.

Je eli jest odwrotnie (minimalizacja).(5). tj. a po zakończeniu postępowania jej wartość optymalną nale y pomno yć przez (-1). tj. Ilustracja odcięć zbioru X w algorytmie Gomory’ego (dla przykładu 4) Metoda PODZIAŁU i OGRANICZEŃ (Branch & Bound Method) Metoda nie wymaga adnych zało eń odnośnie do parametrów zadania PLC (1-4). Warunki (5) są ograniczeniami widełkowymi dla zmiennych. Dla uproszczenia opisu zakładamy. e hiperprostopadłościan H generowany przez (5) pokrywa na początek zbiór rozwiązań dopuszczalnych X zadania regularnego (1-3). narzucają indywidualnie zakres dopuszczalnych wartości poszczególnych zmiennych. Najczęściej przyjmuje się. Ograniczenia (5) mają postać: n = 1. parametry oraz powinny być liczbami całkowitymi. W sensie geometrycznym dobór parametrów określających dolną ( ) i górną ( ) wartość zmiennej ( ) jest taki. Granice ograniczeń widełkowych (5) . e zadanie polega na znajdowaniu wartości największej funkcji celu (maksymalizacja). 3. L . tj.Rys. W całym procesie obliczeniowym metody podziału i ograniczeń rozwiązywane jest zadanie regularne (1-3). Z kolei dla górnych ograniczeń ( ) przyjmuje się dostatecznie du ą całkowitą liczbę ( >>0). 2. H ⊇ X. Z uwagi na ograniczenia (5) wygodną metodą rozwiązywania zadania ¦ § ¦ ¨ ¦ § ¦ ¨ ¦ § ¦ ¤ ¨ ¦ ¨ ¥ ¢ ¥ £ ≤ ≤ (5) 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " ! ¥  ¤ ¡            ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   ¨ [13] . Do zadania PLC (1-4) dołączamy dodatkowe warunki (5). to mno ymy funkcję celu przez (-1). e dolne ograniczenia dla zmiennych są równe zero ( =0).

Porządkowanie listy zadań. Z listy zadań usuwamy: • zadania ju podzielone. Komplikuje to nieznacznie samo przepatrywanie rozwiązań ale rozmiary zadania PL są zdecydowanie mniejsze. 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.zmienna ). którego rozwiązanie optymalne spełnia warunki całkowitoliczbowości. to zadanie PLC (1-4) nie posiada skończonego rozwiązania optymalnego]. Jako zadanie do podziału wybieramy to zadanie. 4 Modyfikacja metody simpleks polega tutaj na tym. • Je eli rozwiązanie optymalne dane jest w liczbach całkowitych. Z popularnych programów komputerowych metodę GUB do rozwiązywaniu regularnych zadań PL (1-3) wykorzystuje pakiet WinStorm. która w rozwiązaniu optymalnym nie miała wartości całkowitej (np. to kończymy postępowanie. Wybór zadania do podziału. Zadanie to generuje rozwiązanie optymalne zadania PLC (1-4). Załó my. to przechodzimy do kolejnego kroku. Zwiększa to w sensie numerycznym stabilność i dokładność procesu obliczeniowego. • Je eli rozwiązanie nie spełnia warunku całkowitoliczbowości. 4. • zadania sprzeczne oraz • zadania. 2. 1. Je eli istnieje takie zadanie aktywne. Sprawdzamy czy istnieje takie zadanie aktywne.Iteracja 0 Postępowanie rozpoczynamy od rozwiązania zadania regularnego (1-3). to przechodzimy do kroku 4 w iteracji 1. Ograniczenia (5) są kontrolowane poza tablicą simpleksową poprzez rozbudowanie kryterium optymalności. Iteracja k (k≥1) ≥ Kolejne kroki ka dej iteracji są następujące. ¨ ¦ ¥   6 5 4 3 2 0 ¨ © " ¥ ¦ ( § ' ¤ 1 ¡ ¨ 0 ¦ ¨ ¡   ) § ¦ ¨ ¥ $ ¥ ( ¡ ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !  ¦  ¤         ¦  §  ¦ ¥ ¤   ¦  ¦ © § ¥ ¨ § ¦ ¡ ¥   ¤ £ ¢ ¡   © [14] . ¨ n ¨ § © ¦ ¢ ¡  ¤ ¨ ¤  ¡   ¢ ¡  n §  ¦ ¤ ¨ ¤    £ ¢ ¡   regularnego (1-3). to zadanie PLC (1-4) nie posiada skończonego rozwiązania optymalnego. !!! Je eli optymalna wartość jakiejkolwiek zmiennej jest równa oryginalnej (początkowej) wartości jej górnego ograniczenia ( ) . e w tablicy simpleksowej przetwarzany jest tylko układ ograniczeń (2). Podziału zadania dokonujemy zawsze ze względu na dowolnie wybraną zmienną. które ma największą wartość funkcji celu i nie spełnia warunków całkowitoliczbowości. Pozostałe na liście zadania nazywamy zadaniami aktywnymi. e ≤ ≤ ograniczenie widełkowe (5) dla tej zmiennej ma aktualnie postać: . Sprawdzanie czy mo na zakończyć postępowanie. [ !!! Je eli optymalna wartość jakiejkolwiek zmiennej jest równa oryginalnej (początkowej) wartości jej górnego ograniczenia ( ). to kończymy postępowanie. Wybór zmiennej wg której dokonamy podziału zadania. • Je eli zadanie jest sprzeczne. 3. Je eli nie istnieje takie zadanie aktywne. wejścia i wyjścia. to kończymy postępowanie.(5) jest zmodyfikowana metoda simpleks4 ( ). które mają wartość funkcji celu mniejszą lub równą wartości funkcji celu zadań spełniających warunki całkowitoliczbowości.(5).

W sensie geometrycznym w zbiorze rozwiązań dopuszczlnych X zadania „matka” wycinane ¡ ¤ ¡ ¢   ¡ ¢   ¡ ¢ ¡ ¢ ≤ ≤ [ ]. ≤ [ ] +1 ≤ ¡ ¢ < [ ] + 1 . . W wyniku podziału zadania z kroku 3 (zadanie „matka”) powstaną zawsze dwa nowe zadania (zadanie „córka” oraz zadanie „syn”). . Po rozwiązaniu obu nowych zadań przechodzimy do kolejnej iteracji PRZYKŁAD 5 Rozwa my następujące zadanie PLC: 1 ¢   ¡ ¢ ¡ ¢   2 2 1 1 1 2 ¢ 2 1 2 W celu rozwiązania zadania PLC metodą podziału i ograniczeń uzupełniamy ograniczenia (2) zespołem nierówności widełkowych (5).5. ≥0 3∈ 3 ¢ 3 ¢ ¢ + 2 + ¢ 3 ¢ ¢ ¢ ¤ ¢ 2 4 + + + + 3 2 ¢ ¢ ¢ = 3 + 3 + 2 3 3 3 3 → max ≤ ≤ ≤ 11 13 11 6 5 4 3 2 0 ¨ © " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ % ¨ ¡ § ¥ $ ¡ # © " !     ¢     ¡  ¦  £   ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [15] (1) (2) (3) (4) . co prowadzi do podziału tego zbioru na dwa jest pasmo [ ] < podzbiory związane odpowiednio z zadaniami „córka” i „syn”.33 0 13 0 0 0 × 100 100 100 × ¦ § ¦ ¨  © ¦  ¡ ¢ ¨ § 0≤ § 1 2 3 ≤ 100 ≤ 100 ≤ 100 (5) ¥ ¢ ¢ ¥ ¢ ¢ ≥0 1∈ ¥ . § 0≤ 0≤ 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”.(5) i otrzymujemy rozwiązanie optymalne: aktualne ograniczenia (5) Z1/− 1 ¤ 2 ¤ 3  max 0 4. Rozwiązanie zadań z aktualnego podziału. które modyfikujemy następująco: • dla pierwszego z zadań („córka”) przyjmujemy • dla drugiego z zadań („syn”) przyjmujemy . 6. ≥0 2 ∈ . Oba nowe zadania są kopiami zadania dzielonego i ró nią się wyłącznie ograniczeniem widełkowym dla zmiennej . Rozwiązujemy zadanie regularne (1-3). Podział zadania.

rozwiązanie niecałkowitoliczbowe.33] W zadaniu „syn” (Z3/1) będzie ono następujące: [4. ¤ ¤  0 0 4 0 2 0. rozwiązanie niecałkowitoliczbowe. Usuwamy z listy zadanie Z1/− (ju podzielone) oraz zadanie Z3/1    • Uporządkowana lista zadań to: • Z2/1 . Przechodzimy do kroku 4 w iteracji 1. Podział zadania Z1/− . Krok 5.(5).33. które zostanie podzielone jest zadanie Z1/− . Porządkowanie listy zadań. Jedyne na uporządkowanej liście zadanie aktywne nie daje rozwiązania w liczbach całkowitych. W zadaniu „córka” (Z2/1) będzie ono następujące: czyli 0 ≤ x2 ≤ 4 0 ≤ 2 ≤ [4.33]+1 ≤ 2 ≤100 czyli 5 ≤ x2 ≤ 100 Krok 6.zadań Z2/1 i Z3/1 . zadanie jest sprzeczne. • Z2/1 .5 0 3 13 × max Przechodzimy do iteracji 2. max =13. Sprawdzanie czy mo na zakończyć postępowanie. max =13. Rozwiązanie zadań z aktualnego podziału. Dzielimy ograniczenie widełkowe (5) dla zmiennej 2 . rozwiązanie niecałkowitoliczbowe. zadanie Z1/− . Wybór zmiennej wg której dokonamy podziału zadania Z1/− . Krok 2. które w zadaniu Z1/− wyglądało następująco: 0 ≤ 2 ≤ 100. Rozwiązanie optymalne zadania Z1/− nie jest jednak całkowitoliczbowe. nie jest sprzeczne i ma skończone rozwiązanie optymalne. Aktualna lista zadań jest następująca: Z1/− .Jak widać zadanie (1-3). tj. Zadaniem. Iteracja 1 Krok 4. ¤ ¤ ¤  100 4 100 × 1 2 3 max 0 5 0 × 100 100 100 × zadanie jest sprzeczne (sprzeczne). max =13. Rozwiązania obu zadań są następujące: aktualne aktualne ograniczenia (5) ograniczenia (5) Z2/1 Z3/1 1 ¤ Iteracja 2 Krok 1. Nale y przejść do kolejnego kroku. Zmienna względem której dokonamy podziału to zmienna 2=4. ¦ § ¦ ¨ 6  5 © 4 ¦ 3  2 ¡ 0 ¢ ¨ © ¨ " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ ¦ % ¨ § ¡ § ¥ $ ¡ # © " !  ¦ ¨        ©  ¦   ¡  ¢   ¨ ¥ ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [16] . tj. • Z3/1 .

rozwiązanie niecałkowitoliczbowe. =13.75 . rozwiązanie niecałkowitoliczbowe. Jest nim zadanie Z2/1 .75 .  • Z5/2 .. tj. Zmienna względem której dokonamy podziału to zmienna 3=0. Zadaniem. Krok 3.75 × max Przechodzimy do iteracji 3.5. max max =12. Rozwiązania obu zadań są następujące: aktualne aktualne ograniczenia (5) ograniczenia (5) Z4/2 Z5/2 1 ¤ Iteracja 3 Krok 1.5] czyli 0 ≤ x3 ≤ 0 W zadaniu „syn” (Z5/2) będzie ono następujące: [0. ¤ ¤ ¤  100 4 0 × 1 2 3 max 0 3. Wybór zadania do podziału. Dzielimy ograniczenie widełkowe (5) dla zmiennej 3 . max ¤ ¤  0.67 1 13 0 0 1 × 100 4 100 × ¦ § ¦ ¨ 6  5 © 4 ¦ 3  2 ¡ 0 ¢ ¨ © ¨ " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ ¦ % ¨ § ¡ § ¥ $ ¡ # © " !  ¦ ¨        ©  ¦   ¡  ¢   ¨ ¥   ¤ ¦  © § ¨ § ¦ ¥   ¤ £ ¢ ¡   [17] . Wybieramy zadanie o największej wartości funkcji celu spośród zadań nadających się do podziału.  • Z4/2 . max =12. Wybór zmiennej wg której dokonamy podziału zadania Z2/1 . Podział zadania Z2/1 . Uporządkowana lista zadań to: • Z4/2 . =13. Z5/2 .Krok 3.. Nale y przejść do kolejnego kroku. rozwiązanie niecałkowitoliczbowe. Krok 2. W zadaniu „córka” (Z4/2) będzie ono następujące: 0 ≤ 3 ≤ [0. Krok 4. Rozwiązanie zadań z aktualnego podziału. Krok 5. które w zadaniu Z2/1 wyglądało następująco: 0 ≤ 3 ≤ 100. rozwiązanie niecałkowitoliczbowe. które zostanie podzielone jest zadanie Z2/1 .  • Usuwamy z listy zadanie Z2/1 (ju podzielone). rozwiązanie niecałkowitoliczbowe.zadań Z4/2 i Z5/2 . max =13. Wybieramy zadanie o największej wartości funkcji celu spośród zadań nadających się do podziału.25 0 4 0 2 0 0 3 12. Aktualna lista zadań jest następująca: • Z2/1 . Wybór zadania do podziału.5]+1 ≤ 3 ≤100 czyli 1 ≤ x3 ≤ 100 Krok 6. Sprawdzanie czy mo na zakończyć postępowanie. Jest nim zadanie Z5/2 . Brak zadań aktywnych o rozwiązaniu w liczbach całkowitych. Porządkowanie listy zadań.

• Z7/5 . max =13 . Lista zawiera jedno zadanie z rozwiązaniem w liczbach całkowitych.67] czyli 0 ≤ x2 ≤ 3 W zadaniu „syn” (Z7/5) będzie ono następujące: [3. Porządkowanie listy zadań. max =13. Krok 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). Podział zadania Z5/2 . Wybór zmiennej wg której dokonamy podziału zadania Z5/2 . Uporządkowana lista zadań to: • Z6/5 . rozwiązanie całkowitoliczbowe.Krok 4. max =12. zadanie sprzeczne. które w zadaniu Z5/2 wyglądało następująco: 0 ≤ 2 ≤ 4. tj. Rozwiązaniem optymalnym zadania PLC (1-4) jest więc rozwiązanie zadania Z6/5.75 . Brak na niej zadań aktywnych nadających się do dalszego podziału. W zadaniu „córka” (Z6/5) będzie ono następujące: 0 ≤ 2 ≤ [3. Zmienna względem której dokonamy podziału to zmienna 2=3.zadań Z6/5 i Z7/5 . rozwiązanie całkowitoliczbowe. Rozwiązanie końcowe przykładowego zadania PLC jest następujące: 1 2 3 1 2 3 ¦ Z5/2 . ¤ ¤ ¤  100 3 100 × 1 2 3 max 0 4 1 × 100 4 100 × zadanie jest sprzeczne =0 =3 max ¦ § ¦ ¨ 6  5 © 4 ¦ 3  2 ¡ 0 ¢ ¨ © ¨ " ¥ ( ' ¤ 1 ¡ ¨ 0 ¨ ¡ ) § ¨ ¥ $ ( ¡ ( ' ¥ n ¥ $ ¡ ¦ % ¨ § ¡ § ¥ $ ¡ # © " !  ¦ ¨        ©  ¦   ¡  ¢   ¨ ¥   ¤ ¦  © § ¨ § ¦ ¥ ¢     ¤ £ ¢ ¡   [18] = 13 .67.67]+1 ≤ 2 ≤4 czyli 4 ≤ x2 ≤ 4 Krok 6. Rozwiązanie zadań z aktualnego podziału. Koniec postępowania. Dzielimy ograniczenie widełkowe (5) dla zmiennej 3 . • Z6/5 . rozwiązanie niecałkowitoliczbowe. Usuwamy z listy zadanie Z5/2 (ju podzielone). Sprawdzanie czy mo na zakończyć postępowanie. Aktualna lista zadań jest następująca: • Z4/2 . rozwiązanie niecałkowitoliczbowe. które zostanie podzielone jest zadanie Z5/2 . Krok 5. max =13 . Zadaniem. Rozwiązania obu zadań są następujące: aktualne Aktualne ograniczenia (5) ograniczenia (5) Z6/5 Z7/5 1 ¤ Iteracja 4 Krok 1. zadanie Z4/2   • ¢   ¢ ¡ ¢ ¡ ¢ § ¢   =0 =3 =2 =2 ¤ ¤  0 0 3 0 2 2 1 3 13 × max Przechodzimy do iteracji 4.