Zagadnieniem całkowitoliczbowym nazyawć będziemy zadanie optymalizacji liniowej w którym od zmiennych lub części zmiennych wymagamy by były liczbami całkowitymi. Na przykład zadanie typu:
.
Idea rozwiązania.
Skupmy się na zadaniu w którym wszystkie zmienne mają być całkowite a wielościan
jest ograniczony.
Jako
bierzemy uwypuklenie zbioru wszystkich punktów z wielościanu
o współrzędnych całkowitych. Zbiór
jest rozpięty na skończonej liczbie punktów. Na mocy twierdzenia strukturalnego
jest wielościanem i to takim, którego wszystkie wierzchołki mają współrzędne całkowite. Zatem zadania
i
mają te same wierzchołki optymalne. Metoda rozwiązania polega na przecinaniu wielościanu
takimi półprzestrzeniami by uzyskać wielościan
.
Rozpoczniemy od prezentacji metody zwanej ”Odcięciem Gomoryego” [7], [8], [9]. Metoda opiera się na relaksacji problemu i jej kolejnych zacieśnianiach zwanych odcięciami Gomoryego.
Relaksacją problemu
nazywamy problem
:
,
gdzie obszar dopuszczalny
jest większy niż
.
Zwykle relaksacja jest opuszczeniem najmniej wygodnych warunków opisujących obszar dopuszczalny, np. że współrzędne są całkowite.
Zacieśnieniem relaksacji
problemu
nazywamy taką relaksację problemu
której obszar dopuszczalny jest mniejszy niż obszar
.
Odcięciem nazywamy zacieśnienie relaksacji w którym nowy obszar dopuszczalny jest przecięciem półprzestrzeni i
.
Odcięcie Gomoryego wykorzystuje proste własności części całkowitej liczby:
![]()
i jeżeli
jest liczbą naturalną to ![]()
Stąd jeżeli obszar dopuszczalny jest ( między innymi ) opisany równaniem
to każdy punkt tego obszaru o współrzędnych całkowitych spełnia też nierówność
.
Odcięciem Gomoryego nazywamy więc ograniczenie obszaru dopuszczalnego półprzestrzenią
.
| 0) Dane zagadnienie |
| 1) Rozwiązujemy relaksację |
| 2) Jeżeli znaleziony punkt optymalny |
| 3) Wybieramy niecałkowitą współrzędną |
| Dodajemy nierówność |
| 4) Budujemy nową tablicę sympleks z dodatkową kolumną na nową zmienną ( tu |
| 5) Rozwiązujemy relaksację zadaną tą tablicą i GOTO 2. |
Prześledźmy algorytm na przykładzie:
Rozwiązujemy zadanie P.
Max
, gdy
![]()
![]()
,
,
,
,
.
Zaczynamy od budowy tablicy sympleks pierwszej relaksacji. Jest nią:
![\left[\begin{array}[]{ccccc|c}3&1&0&0&0&0\\
\hline\frac{1}{2}&2&1&0&\frac{3}{2}&\frac{7}{2}\\
\frac{1}{2}&\frac{1}{2}&0&1&3&\frac{9}{2}\end{array}\right]](wyklady/op1/mi/mi1319.png)
Otrzymaliśmy tablicę sympleks pierwotnie i dualnie dopuszczalną opisującą wierzchołek optymalny
. Ponieważ punkt nie ma współrzędnych całkowitych wybieramy zmienną
. Odpowiada jej pierwszy wiersz pod kreską i równanie
. Półprzestrzeń odcinająca opisana jest nierównością
czyli
. Teraz od równania
odejmujemy wyjściowe
i otrzymane równanie
dopisujemy do tablicy sympleks. Otrzymujemy dualnie dopuszczalną tablicę sympleks:
![\left[\begin{array}[]{cccccc|c}3&1&0&0&0&0&0\\
\hline\frac{1}{2}&2&1&0&\frac{3}{2}&0&\frac{7}{2}\\
\frac{1}{2}&\frac{1}{2}&0&1&3&0&\frac{9}{2}\\
-\frac{1}{2}&0&0&0&(-\frac{1}{2})&1&-\frac{1}{2}\end{array}\right]](wyklady/op1/mi/mi1314.png)
Stosujemy teraz dualną metodę sympleks. Wybieramy wiersz 3-ci i element centralny w piątej kolumnie.
. Po redukcji Gaussa - Jordana otrzymujemy:
![\left[\begin{array}[]{cccccc|c}3&1&0&0&0&0&0\\
\hline-1&2&1&0&0&3&2\\
-\frac{5}{2}&\frac{1}{2}&0&1&0&6&\frac{3}{2}\\
1&0&0&0&1&-2&1\end{array}\right]](wyklady/op1/mi/mi1328.png)
Teraz wierzchołkiem optymalnym jest
. Poprawiamy zmienną
. Do tablicy dopisujemy różnicę równań
i
. Otrzymujemy:
![\left[\begin{array}[]{ccccccc|c}3&1&0&0&0&0&0&0\\
\hline-1&2&1&0&0&3&0&5\\
-\frac{5}{2}&\frac{1}{2}&0&1&0&6&0&\frac{3}{2}\\
1&0&0&0&1&-2&0&1\\
-\frac{1}{2}&(-\frac{1}{2})&0&0&0&0&1&-\frac{1}{2}\end{array}\right]](wyklady/op1/mi/mi1340.png)
Teraz element centralny wybieramy w 4-tym wierszu i 2-giej kolumnie. Po redukcji Gaussa - Jordana otrzymujemy:
![\left[\begin{array}[]{ccccccc|c}2&0&0&0&0&0&2&-1\\
\hline-3&0&1&0&0&3&4&3\\
-3&0&0&1&0&6&1&1\\
1&0&0&0&1&-2&0&1\\
1&1&0&0&0&0&-2&1\end{array}\right]](wyklady/op1/mi/mi1324.png)
Wyznaczony przez tę tablicę punkt
ma współrzędne całkowite więc jest rozwiązaniem zadania.
Odcięcie Gomoryego zawsze wyrzuca badany punkt po za obszar dopuszczalny nowej relaksacji. Rzeczywiście, jeżeli punkt
ma niecałkowitą współrzędną
i odpowiadające jej równanie ma postać
to
i
jest zmienną bazową zaś dla
lub
. Zatem
. Więc
nie spełnia nierówności
.
Dodawane zmienne są całkowitoliczbowe gdyż
.
W przypadku gdy obszar dopuszczalny jest niepusty i ograniczony lub niepusty i współczynniki wyjściowej tablicy sympleks są wymierne to algorytm odcięcia Gomoryego kończy się po skończonej liczbie kroków, zależnej od liczby zmiennych, ograniczenia i postaci współczynników. Niestety jest to algorytm zużywający dużo czasu i pamięci. Patrz [12] Twierdzenie 23.2.
Jeżeli obszar dopuszczalny jest zbiorem pustym algorytm odcięcia Gomoryego może nie działać.
Badamy zadanie P.
Max
, gdy
![]()
,
,
.
Obszar dopuszczalny jest zbiorem pustym zaś algorytm urywa się na pierwszym kroku gdyż relaksacja jest zadaniem nieograniczonym.
Badamy zadanie P.
Max
, gdy
![]()
,
,
.
Jeżeli
i
są liczbami algebraicznie niezależnymi
to obszar dopuszczalny jest zbiorem pustym zaś algorytm nigdy się nie kończy mimo, że obszar dopuszczalny relaksacji jest ograniczony.
Rozwiąż w liczbach całkowitych zadanie:
![\begin{array}[]{c}Min\; x_{0}=2x_{3}+3x_{4}+6x_{5}\\
x_{1}+2x_{3}+x_{4}+3x_{5}=3\\
5x_{2}+2x_{3}-3x_{4}-x_{5}=12\end{array}](wyklady/op1/mi/mi1327.png)
![]()
Stosując odcięcie Gomory'ego rozwiąż w liczbach całkowitych zadanie:
Min
, gdy
![]()
![]()
![]()
,
,
,
.
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i
Mechaniki UW, 2009-2010.
Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach
Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.