Zagadnienia

11. Zagadnienia całkowitoliczbowe

11.1. Zagadnienia całkowitoliczbowe

Definicja 11.1

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: Maxx0=xc|xWRn,1itxiZ.

Idea rozwiązania.

Skupmy się na zadaniu w którym wszystkie zmienne mają być całkowite a wielościan W jest ograniczony. Jako W1 bierzemy uwypuklenie zbioru wszystkich punktów z wielościanu W o współrzędnych całkowitych. Zbiór W1 jest rozpięty na skończonej liczbie punktów. Na mocy twierdzenia strukturalnego W1 jest wielościanem i to takim, którego wszystkie wierzchołki mają współrzędne całkowite. Zatem zadania P:Maxx0=xc|xW,1itxiZ i P1:Maxx0=xc|xW1Rn mają te same wierzchołki optymalne. Metoda rozwiązania polega na przecinaniu wielościanu W takimi półprzestrzeniami by uzyskać wielościan W1.

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.

Definicja 11.2

Relaksacją problemu P nazywamy problem

RP: Maxfx|xQRP,

gdzie obszar dopuszczalny QRP jest większy niż QP.

Zwykle relaksacja jest opuszczeniem najmniej wygodnych warunków opisujących obszar dopuszczalny, np. że współrzędne są całkowite.

Definicja 11.3

Zacieśnieniem relaksacji RP problemu P nazywamy taką relaksację problemu P której obszar dopuszczalny jest mniejszy niż obszar QRP.

Odcięciem nazywamy zacieśnienie relaksacji w którym nowy obszar dopuszczalny jest przecięciem półprzestrzeni i QRP.

Odcięcie Gomoryego wykorzystuje proste własności części całkowitej liczby:

a+ba+b

i jeżeli x jest liczbą naturalną to xaxa

Stąd jeżeli obszar dopuszczalny jest ( między innymi ) opisany równaniem i=1naixi=b to każdy punkt tego obszaru o współrzędnych całkowitych spełnia też nierówność

b=i=1naixii=1naixi.

Odcięciem Gomoryego nazywamy więc ograniczenie obszaru dopuszczalnego półprzestrzenią H=xRn|i=1naixib.

Algorytm rozwiązywania zadań całkowitoliczbowych metodą odcięć Gomoryego:
0) Dane zagadnienie P:Maxx0=xc|AxT=b,1inxi0,1inxiZ.
1) Rozwiązujemy relaksację RP:Maxx0=xc|AxT=b,1inxi0 polegającą na pominięciu warunków 1itxiZ i znajdujemy tablicę sympleks TS pierwotnie i dualnie dopuszczalną.
2) Jeżeli znaleziony punkt optymalny p=p1,p2,,pn ma współrzędne całkowite to STOP znaleźliśmy rozwiązanie.
3) Wybieramy niecałkowitą współrzędną pj. Odpowiadające jej równanie ( wiersz macierzy sympleks ) ma postać i=1naixi=pj, gdzie xj jest zmienną bazową więc aj=1.
Dodajemy nierówność i=1naixipj.
4) Budujemy nową tablicę sympleks z dodatkową kolumną na nową zmienną ( tu xn+1 ) i dodatkowym wierszem opisującym równanie i=1naixi+xn+1-i=1naixi=pj-pj. Musimy odjąć wyjściowe równanie by zmienna xj pozostała bazową.
5) Rozwiązujemy relaksację zadaną tą tablicą i GOTO 2.

Prześledźmy algorytm na przykładzie:

Przykład 11.1

Rozwiązujemy zadanie P.

Max x0=-3x1-x2 , gdy

12x1+2x2+x3+32x5=72

12x1+12x2+x4+3x5=92

x10, x20, x30, x40,x50, xiZ.

Zaczynamy od budowy tablicy sympleks pierwszej relaksacji. Jest nią:

310000122103272121201392

Otrzymaliśmy tablicę sympleks pierwotnie i dualnie dopuszczalną opisującą wierzchołek optymalny p1=0,0,72,92,0. Ponieważ punkt nie ma współrzędnych całkowitych wybieramy zmienną x3. Odpowiada jej pierwszy wiersz pod kreską i równanie 12x1+2x2+x+3+32x5=72. Półprzestrzeń odcinająca opisana jest nierównością 12x1+2x2+x+3+32x572 czyli 2x2+x+3+x53. Teraz od równania 2x2+x+3+x5+x6=3 odejmujemy wyjściowe 12x1+2x2+x+3+32x5=72 i otrzymane równanie -12x1-12x5+x6=-12 dopisujemy do tablicy sympleks. Otrzymujemy dualnie dopuszczalną tablicę sympleks:

310000012210320721212013092-12000-121-12

Stosujemy teraz dualną metodę sympleks. Wybieramy wiersz 3-ci i element centralny w piątej kolumnie.  0/12<312. Po redukcji Gaussa - Jordana otrzymujemy:

3100000-1210032-521201063210001-21

Teraz wierzchołkiem optymalnym jest p2=(0,0,2,32,1|0). Poprawiamy zmienną x4. Do tablicy dopisujemy różnicę równań -52x1+12x2+x4+6x6+x7=32 i -52x1+12x2+x4+6x6+x7=32. Otrzymujemy:

31000000-12100305-5212010603210001-201-12-1200001-12

Teraz element centralny wybieramy w 4-tym wierszu i 2-giej kolumnie. Po redukcji Gaussa - Jordana otrzymujemy:

2000002-1-30100343-3001061110001-201110000-21

Wyznaczony przez tę tablicę punkt p3=(0,1,3,1,1,|0,0) ma współrzędne całkowite więc jest rozwiązaniem zadania.

Uwaga 11.1

Odcięcie Gomoryego zawsze wyrzuca badany punkt po za obszar dopuszczalny nowej relaksacji. Rzeczywiście, jeżeli punkt p=p1,p2,,pn ma niecałkowitą współrzędną pj i odpowiadające jej równanie ma postać i=1naixi=pj to aj=1 i xj jest zmienną bazową zaś dla ijai=0 lub pi=0. Zatem i=1naipi=pj>pj. Więc p nie spełnia nierówności i=1naixipj.

Uwaga 11.2

Dodawane zmienne są całkowitoliczbowe gdyż xn+1=pj-i=1naixiZ.

Uwaga 11.3

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.

Uwaga 11.4

Jeżeli obszar dopuszczalny jest zbiorem pustym algorytm odcięcia Gomoryego może nie działać.

Przykład 11.2

Badamy zadanie P.

Max x0=x2 , gdy

x1-x2=72

x10, x20,xiZ.

Obszar dopuszczalny jest zbiorem pustym zaś algorytm urywa się na pierwszym kroku gdyż relaksacja jest zadaniem nieograniczonym.

Przykład 11.3

Badamy zadanie P.

Max x0=x2 , gdy

x1+ax2=a

x10, x20,xiZ.

Jeżeli a i b są liczbami algebraicznie niezależnymi >1 to obszar dopuszczalny jest zbiorem pustym zaś algorytm nigdy się nie kończy mimo, że obszar dopuszczalny relaksacji jest ograniczony.

Ćwiczenie 11.1

Rozwiąż w liczbach całkowitych zadanie:

Minx0=2x3+3x4+6x5x1+2x3+x4+3x5=35x2+2x3-3x4-x5=12

1i5x10,xiZ

Ćwiczenie 11.2

Stosując odcięcie Gomory'ego rozwiąż w liczbach całkowitych zadanie:

Min x0=4x1+3x2+5x3 , gdy

3x1-x39

3x1+x22

x1+3x38

x10, x20, x30, xiZ.

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

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.