Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová

Podobné prezentace


Prezentace na téma: "Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová"— Transkript prezentace:

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


Stáhnout ppt "Úterý 11:00 – 12:30 hod. učebna 212 RB © Lagová, Kalčevová"

Podobné prezentace


Reklamy Google