Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová
4EK213 – LINEÁRNÍ MODELY Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová
2
11. přednáška CELOČÍSELNÉ PROGRAMOVÁNÍ
© Lagová, Kalčevová
3
OSNOVA PŘEDNÁŠKY Gomoryho metoda Grafické znázornění
Metoda větví a mezí
4
GOMORYHO METODA Gomoryho metodou řešíme úlohu LP: Ax R b x ≥ 0 (11.1)
z = cTx ... max.(min.) ve které jsme podmínky nezápornosti proměnných rozšířili o podmínky celočísel-nosti: xj ≥ 0, celé, (11.2) j = 1, 2, ..., n Použitá symbolika má obvyklý význam (viz Přednáška 2 a další) Podmínky celočíselnosti jsou definov
5
ALGORITMUS METODY 1. Vypočteme optimální řešení úlohy LP bez ohledu na podmínky celočíselnosti 2. Testujeme celočíselnost OŘ: a. je-li OŘ celočíselné, našli jsme i opti- mum celočíselné úlohy VÝPOČET KONČÍ b. není-li OŘ celočíselné, výpočet pokra- čuje GOMORYHO METODA
6
3. Určíme zdrojový řádek: a. vypočteme celočíselné zbytky pravých
stran: ri0 = βi - [βi ] (11.3) i = 1, 2, ..., m, kde [βi ] ... je funkce „celé číslo z βi “ b. najdeme g = max(ri0) =rp (11.4) i = 1, 2, ..., m c. zdrojový řádek je p-tý ????????????,,,
7
b. formulujeme omezení:
4. Přidáme Gomoryho omezení: a. vypočteme koeficienty rpj : rpj = apj − [apj ], (11.5) j = 1, 2, ..., n+m+s b. formulujeme omezení: (-rpjxj) + xn+m+s = - rp0, (11.6) kde s ... je index Gomoryho iterace může Gomoryho proměnná znovu vstouúit do řešení?
8
5. Počítáme nové řešení DSM:
- Gomoryho omezení je klíčový řádek - klíčový sloupec určíme podle (7.6) ... ? 6. Testujeme řešitelnost: a. všechny koeficienty rpj v Gomoryho omezení jsou nezáporné, neexistuje OŘ celočíselné úlohy: VÝPOČET KONČÍ b. klíčový sloupec je podle hodnoty t v k-tém sloupci: TRANSFORMACE
9
7. Transformujeme řešení:
a. klíčový řádek má v ST index m+s b. klíčový sloupec je k-tý c. na průsečíku klíčového řádku a klíčo- vého sloupce je klíčový prvek αm+s,k (je vždy záporný) d. obvyklým způsobem transformujeme podle (4.3) – (4.8) Vracíme se k bodu 2 TESTUJEME CELOČÍSELNOST
10
GRAFICKÉ ZNÁZORNĚNÍ Geometrickou interpretací Gomoryho o-mezení je řezná nadrovina (Gomoryho řez) Ta „odřízne“ ze spojité množiny PŘ část, která neobsahuje žádný celočíselný bod Některý z celočíselných bodů se přitom posune do vrcholu množiny PŘ (nebo alespoň na její hranu) Podle základní věty LP se tímto postupem najde OŘ (pokud existuje)
11
Příklad 11.1 Je dána úloha IP: Řešte úlohu (11.7) Gomoryho metodou
Řešte úlohu (11.7) graficky
12
Podmínky celočíselnosti nejsou splněny Řešení
Vypočteme SM optimální řešení úlohy (11.7) bez podmínek celočíselnosti: Tab. 11.1 Podmínky celočíselnosti nejsou splněny Řešení x(1) = (3, 9/5, 0, 0)T, z = (11.8) není přípustným řešením úlohy (11.7)
13
Pokračujeme ve výpočtu Gomoryho me-todou
Vypočteme koeficienty ri0 : r10= β1 - [β1] = 9/5 - 5/5 = 4/5 r20= β2 - [β2] = = 0 Najdeme g = max (4/5, 0) = 4/5 První řádek zvolíme jako zdrojový: Vypočtěte koeficienty rpj ?
14
r11=r12= r13=1/5 - 0 = 1/5 r14=-2/5 - [-2/5 ] = -2/5 - (-1)=3/5 Celočíselné zbytky rpj : Sestavíme 1. Gomoryho omezení -1/5x3 - 3/5x4 + x5 = - 4/ (11.9) a přidáme k ST jako třetí omezení Řešíme DSM Klíčový řádek je třetí
15
• Klíčový řádek je třetí, tj. přidané Gomo- ryho omezení
Tab. 11.2 • Klíčový řádek je třetí, tj. přidané Gomo- ryho omezení • Řešení v další iteraci je optimální, ale není celočíselné
16
Řešení v tabulce 11.3 není celočíselné:
x(2)=(5/3, 7/3, 0, 4/3)T, z=115/3 (11.10) Pokračujeme ve výpočtu Gomoryho me- todou ?
17
Vypočteme celočíselné zbytky pravých stran:
Najdeme g = max Zdrojový řádek je druhý: r21 = r22 = , r23 , r24 = , r25 • 2. Gomoryho omezení: -2/3x3 - 2/3x5 + x6 = - 2/ (11.11)
18
K ST přidáme 2. Gomoryho omezení: −2/3x3 − 2/3x5 + x6 = −2/3
Tab. 11.4 • Klíčový řádek je čtvrtý (Gomoryho omezení) • Klíčový sloupec je třetí
19
• Všechny strukturní proměnné mají celočí- selné hodnoty Řešení
Tab. 11.5 • Všechny strukturní proměnné mají celočí- selné hodnoty Řešení x(3)=(2, 2, 0, 0), z = (11.12) je OŘ úlohy IP (11.7)
20
2. GRAFICKÉ ŘEŠENÍ (11.9): • Proměnné x3 a x4 vyjádříme z vlastních
• Znázorníme graficky 1. Gomoryho řez (11.9): • Proměnné x3 a x4 vyjádříme z vlastních omezení modelu (11.4): x3 =15 - 2x1 - 5x2 x4 = x1 • Dosadíme do Gomoryho řezu: -1/5(15 - 2x1 - 5x2) - 3/5(3 - x1) + x5 = - 4/5 • Zjednodušíme: x1 + x2 + x5 = (11.13) -1/5x3 – 3/5x4 + x5 = -4/5
21
Položíme x5 = 0 a vypočteme úseky na ose x1 a x2 :
x1 = 0 x2 = 4 x2 = 0 x1 = 4 Znázorníme hraniční přímku a odpovídají-cí polorovinu „Odřízneme“ z množiny PŘ část vymeze-nou Gomoryho řezem Bod se souřadnicemi [2,2] je nyní na hra-ně množiny PŘ Znovu hledáme OŘ
22
-2/3 (15 - 2x1 - 5x2) - 2/3(4-x1 - x2) + x6 = -2/3
Analogicky upravíme 2. Gomoryho řez (11.11): -2/3x3 - 2/3x5 + x6 = -2/3 Dosadíme za x3 z (11.7) a za x5 z (11.9): -2/3 (15 - 2x1 - 5x2) - 2/3(4-x1 - x2) + x6 = -2/3 Odtud je 2. Gomoryho omezení 2x1 + 4x2 + x6 = 12 • Položíme x6 = 0 a vypočteme: x1 = 0 x2 = 3 x2 = 0 x1 = 6 • Další OŘ je celočíselné
23
„Žabák Integer – Gomory“
x2 3 x1 £ 3 2 2 x1 + 5 x2 £ 15 1 Chybí bublina se souřadnicemi u 2. OŘ ? Dopsat 2 Gomoryho omezení GŘ2 x1 [0,0] 1 2 3 4 GŘ1 5 Obr – Gomoryho metoda
24
NEVÝHODY METODY Koeficienty Gomoryho omezení jsou zvláště v dalších iteracích velmi malá čísla, blízká nule Při eliminaci proto vznikají zaokrouhlo-vací chyby Ty mohou způsobit to, že výpočet nero-zezná optimální řešení a zkrachuje Proto programové systémy používají většinou kombinatorické metody
25
METODY VĚTVÍ A MEZÍ Mohou se použít pro řešení všech úloh IP i MIP
Podmínkou je celočíselnost koeficientů účelové funkce (lze splnit vždy) Vyskytují se v řadě variant uzpůsobených pro řešení konkrétních úloh, např. pro bi-valentní úlohy, jako je okružní dopravní problém nebo přiřazovací problém Jsou založeny na efektivním prohledá-vání množiny přípustných řešení
26
VÝCHOZÍ ŘEŠENÍ Úlohu lineárního programování bez pod-mínek celočíselnosti označíme LP(0) Množinu přípustných řešení úlohy LP(0) označíme X(0) SM vypočteme optimální řešení x(0) = (x10, x20, ..., xn0) , z0 Jestliže x(0) vyhovuje i podmínkám celo-číselnosti, je to optimální celočíselné řešení výpočet končí Pokud ne, začneme větvení
27
VĚTVE větvící proměnná větve
Z vektoru x(0) vybereme libovolnou pro-měnnou, která porušuje podmínku celo-číselnosti Označíme ji xk a její hodnotu xk0 Množinu přípustných řešení X(0) rozdělíme podle proměnné xk na dvě podmnožiny větvící proměnná větve levá větev pravá větev
28
V levé větvi přidáme k úloze LP(0) pod-mínku
xk ≤ [xk0] (11.14) a vytoříme tak úlohu LP(1) V pravé větvi přidáme k úloze LP(0) pod-mínku xk ≥ [xk0] (11.15) a vytoříme tak úlohu LP(2) Tyto úlohy opět řešíme SM bez ohledu na podmínky celočíselnosti a dále větvíme
29
MEZE V každé větvi je odvozována horní mez hodnoty účelové funkce (za předpokladu maximalizace) celočíselného řešení: h(s) = [z(s) ] v úlohách IP (11.16) h(s) = z(s) v úlohách MIP (11.17) kde s ... je index úlohy LP(s), tj. s-té větve z(s) ... je optimální hodnota účelové funkce úlohy LP(s) Mez h(0) = [z(0) ] je horní mezí hodnoty úče-lové funkce celočíselného řešení
30
KONEC VĚTVE 1. Dosud nejlepší vypočtená hodnota úče-lové funkce celočíselného řešení se ozna-čí z* Jestliže je h(s) < z*, je zřejmé, že v této větvi nemůže být celočíselné optimum Větev tvořená úlohou LP(s) se uzavře Hodnota účelové funkce ve větvi nikdy nepřekročí horní mez větve
31
2. Výpočet ve větvi se rovněž uzavře, je-li
nalezeno celočíselné OŘ: - je-li z(s) >z*, dosadíme z*= z(s) 3. Výpočet ve větvi rovněž končí, jestliže ve větvi neexistuje PŘ Výpočet končí uzavřením všech větví Nejlepší nalezené celočíselné řešení (po- kud existuje) s hodnotou účelové funkce z * je hledaným optimálním řešením celo- číselné úlohy
32
Příklad 11.2 Pro srovnání vyřešíme metodou větví a mezí úlohu (11.7) z příkladu 11.1 Označíme ji jako úlohu LP(0) :
33
1. Řešení úlohy LP(0) Úlohu LP(0) jsme vyřešili SM v tabulce 11.1
• Optimální řešení x(0) = (3, 9/5, 0, 0), z(0)=45 z této tabulky není celočíselné Hodnota účelové funkce z(0)=h(0)=[45] je horní mezí hodnoty účelové funkce celočíselné úlohy • Řešení úlohy znázorníme graficky
34
„Žabák Integer – x(0)“ x2 x1 £ 3 2 x1 + 5 x2 £ 15 x1
[0,0] 1 2 3 4 5 Obr − Řešení úlohy LP(0)
35
Větvení LP(0) Proměnná x2 porušuje podmínku celočí-selnosti, vybereme ji jako větvící proměn-nou Vytvoříme levou větev: x2 ≤ [x2] a pravou větev: x2 ≥ [x2] + 1 Formulujeme úlohy LP(1) a LP(2)
36
Formulace úloh LP(1) a LP(2)
Levá větev: LP(1) Pravá větev: LP(2) 2x1+ 5x2 ≤ x1+ 5x2 ≤ 15 x ≤ x ≤ 3 x2 ≤ x2 ≥ 2 xj ≥ xj ≥ 0 j = 1, j = 1, 2 z = 9x1+10x2 … max. z = 9x1+10x2 … max.
37
Řešení úlohy LP(1) K OŘ úlohy LP(0) přidáme omezení x2 ≤ 1
Tab. 11.6 a upravíme je: jak ? • Řešíme DSM
38
OŘ úlohy LP(1) KONEC VĚTVE
Tab. 11.7 Optimální řešení úlohy LP(1) je celočíselné: x(1)=(3, 1, 4, 0), z(1) = 37 Dosadíme z*= 37 KONEC VĚTVE
39
LP(0) x(0) = (3; 9/5) z(0) = 45 Mez = 45 x2 ≤ 1 LP(1) x(1) = (3; 1) z(1) = 37 z * = 37 KONEC VĚTVE Obr − Úloha LP(1)
40
„Žabák Integer – x(1)“ x2 x1 £ 3 2 x1 + 5 x2 £ 15 x2 £ 1 x1
[0,0] 1 2 3 4 5 Obr − Řešení úlohy LP(1)
41
Řešení úlohy LP(2) K OŘ úlohy LP(0) přidáme omezení -x2 ≤ -2
Tab. 11.8 a upravíme je: jak ? • Řešíme DSM
42
OŘ úlohy LP(2) Řešení v pravé větvi
Tab. 11.9 Řešení v pravé větvi x(2) =(5/2, 2, 0, 1/2, 0), z(2) = 85/2 není celočíselné • h(2) = [85/2] >z*= 37 větvíme LP(2)
43
LP(0) x(0) = (3; 9/5) x(0) = 45 Mez = 45 x2 ≤ 1 x2 ≥ 2 LP(1) x(1) = (3; 1) x(1) = 37 x* = 37 LP(2) x(2) = (5/2; 2) x(2) = 42,5 Mez = 42 KONEC VĚTVE Obr − Úloha LP(2)
44
„Žabák Integer – x(2)“ x2 x1 £ 3 x2 ≥ 2 2 x1 + 5 x2 £ 15 x2 £ 1 x1
[0,0] 1 2 3 4 5 Obr − Řešení úlohy LP(2)
45
Větvení LP(2) • Větvíme podle x1=5/2
Levá větev: LP(3) Pravá větev: LP(4) 2x1+ 5x2 ≤ x1+ 5x2 ≤ 15 x ≤ x ≤ 3 x2 ≥ x2 ≥ 2 x ≤ x ≥ 3 xj ≥ xj ≥ 0 j = 1, j = 1, 2 z = 9x1+10x2 … max. z = 9x1+10x2 … max.
46
Řešení LP(3) K optimálnímu řešení úlohy LP(2) přidáme upravené omezení x1 ≤ 2 Úlohu LP(3) řešíme DSM Tab
47
OŘ úlohy LP(3) x(3)=(2, 11/5, 0, 1), z(3) = 40
Tab • Optimální řešení úlohy LP(3): x(3)=(2, 11/5, 0, 1), z(3) = 40 opět nesplňuje podmínky celočíselnosti • Protože h(3) = 40 >z*= 37 větvíme LP(3)
48
Obr. 11.6 − Úloha LP(3) x2 ≤ 1 x1 ≤ 2 KONEC LP(0) x(0) = (3; 9/5)
z(0) = 45 Mez = 45 x2 ≤ 1 x2 ≥ 2 LP(1) x(1) = (3; 1) z(1) = 37 Z* = 37 LP(2) x(2) = (5/2; 2) z(2) = 42,5 Mez = 42 x1 ≤ 2 KONEC LP(3) x(3) = (2; 11/5) z(3) = 40 Mez = 40 Obr − Úloha LP(3)
49
„Žabák Integer – x(3)“ x2 x1 £ 2 x1 £ 3 x2 ≥ 2 2 x1 + 5 x2 £ 15 x2 £ 1
Bublina ? x2 £ 1 x1 [0,0] 1 2 3 4 5 Obr − Řešení úlohy LP(3)
50
Řešení LP(4) K optimálnímu řešení úlohy LP(2) přidáme upravené omezení x1 ≥ 3: PŘ úlohy LP(4) neexistuje PROČ ? KONEC VĚTVE Tab
51
x(4) Nepřípustné řešení
LP(0) x(0) = (3; 9/5) x(0) = 45 Mez = 45 x2 ≤ 1 x2 ≥ 2 LP(1) x(1) = (3; 1) x(1) = 37 x* = 37 LP(2) x(2) = (5/2; 2) x(2) = 42,5 Mez = 42 x1 ≤ 2 x1 ≥ 3 KONEC VĚTVE LP(3) x(3) = (2; 11/5) x(3) = 40 Mez = 40 LP(4) x(4) Nepřípustné řešení KONEC VĚTVE Obr − Úloha LP(4)
52
„Žabák Integer – x(4)“ x2 x1 ≥ 3 x1 £ 3 x2 ≥ 2 2 x1 + 5 x2 £ 15 x2 £ 1
[0,0] 1 2 3 4 5 Obr − Řešení úlohy LP(4)
53
Větvení LP(3) Větvíme podle x2 = 11/5
K optimálnímu řešení úlohy LP(3) přidáme v levé větvi x2 ≤ 2 V pravé větvi přidáme x2 ≥ 3 V levé větvi vytvoříme úlohu LP(5) V pravé větvi vytvoříme úlohu LP(6)
54
Větvení LP(3) Levá větev: LP(5) Pravá větev: LP(6)
2x1+ 5x2 ≤ x1+ 5x2 ≤ 15 x ≤ x ≤ 3 x2 ≤ x2 ≥ 2 x ≤ x ≥ 3 x2 ≤ x2 ≥ 3 xj ≥ xj ≥ 0 j = 1, j = 1, 2 z = 9x1+10x2 … max. z = 9x1+10x2 … max.
55
Řešení LP(5) K optimálnímu řešení LP(3) přidáme upravené omezení x2 ≤ 2: Řešíme DSM Tab
56
OŘ úlohy LP(5) Optimální řešení LP(5) je celočíselné:
Tab Optimální řešení LP(5) je celočíselné: x(5) =(2, 2, 1, 1), z(5) = 38 Hodnota h(5) = 38 > z* z**= 38 KONEC VĚTVE
57
x(4) Nepřípustné řešení
LP(0) x(0) = (3; 9/5) z(0) = 45 Mez = 45 x2 ≤ 1 x2 ≥ 2 LP(2) x(2) = (5/2; 2) z(2) = 42,5 Mez = 42 LP(1) x(1) = (3; 1) z(1) = 37 Z* = 37 x1 ≤ 2 x1 ≥ 3 KONEC VĚTVE LP(3) x(3) = (2; 11/5) z(3) = 40 Mez = 39 LP(4) x(4) Nepřípustné řešení KONEC VĚTVE x2 ≤ 2 LP(5) x(5) = (2; 2) z** = 38 Obr − Úloha LP(5) KONEC VĚTVE
58
„Žabák Integer – x(5)“ x2 x1 £ 2 x1 £ 3 x2 ≥ 2 x2 ≤ 2 2 x1 + 5 x2 £ 15
[0,0] 1 2 3 4 5 Obr − Řešení úlohy LP(5)
59
Řešení LP(6) K optimálnímu řešení LP(3) přidáme upravené omezení
x2 ≥ 3: Řešíme DSM Tab
60
OŘ LP(6) Celočíselným optimálním řešením LP(6) je
Tab Celočíselným optimálním řešením LP(6) je x(6) =(0, 3, 0, 3), z(6) =30 KONEC VĚTVE
61
„Žabák Integer – x(6)“ x2 x1 £ 2 x2 ≥ 3 x1 £ 3 x2 ≥ 2 x2 ≤ 2
Bublina ? Asi se v tom úplně nevyznám x2 £ 1 x1 [0,0] 1 2 3 4 5 Obr − Řešení úlohy LP(6)
62
x(4) Nepřípustné řešení
LP(0) x(0) = (3; 9/5) z(0) = 45 Mez = 45 x2 ≤ 1 x2 ≥ 2 LP(2) x(2) = (5/2; 2) z(2) = 42,5 Mez = 42 LP(1) x(1) = (3; 1) z(1) = 37 Z* = 37 x1 ≤ 2 x1 ≥ 3 KONEC VĚTVE LP(3) x(3) = (2; 11/5) z(3) = 40 Mez = 39 LP(4) x(4) Nepřípustné řešení KONEC VĚTVE x2 ≥ 3 x2 ≤ 2 LP(5) x(5) = (2; 2) z** = 38 LP(6) x(6) = (0; 3) Mez = 30 Obr − Úloha LP(6) KONEC VĚTVE KONEC VĚTVE
63
KONEC VÝPOČTU Všechny větve jsou ukončeny
Protože h(6) = 30 < z** , je optimální hodno-ta účelové funkce celočíselné úlohy z** = 38 Optimálním řešením úlohy IP (11.7) je x(5) =(2, 2, 1, 1), z(5) = 38 KONEC VÝPOČTU
64
KONEC
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.