Celočíselné lineární programování(ilp) Zdeněk Hanzálek, Přemysl Šůcha {hanzalek}@fel.cvut.cz ČVUT FEL Katedra řídicí techniky 2. března 2010 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 1/ 43
Obsah přednášky 1 Úvod Formulace problému 2 Vlastnosti a řešení SrovnáníILPsLP Příklady Metody řešení Speciální případy ILP Vyjadřovací schopnosti ILP 3 Závěr Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 2/ 43
Celočíselné Lineární Programování Celočíselné lineární programování(ilp) Úloha celočíselného lineárního programování(lp) je zadána maticí A R m n avektoryb R m,c R n.cílemjenajíttakovývektorx Z n, žeplatía x bac T xjemaximální. Obvykle se celočíselné lineární programování zapisuje ve tvaru: max { c T x :A x b,x Z n}. Celá řada praktických problémů týkajících se optimalizace může být modelována a řešena pomocí celočíselného lineárního programování (Integer Linear Programming- ILP). Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 3/ 43
SrovnáníILPsLP Tato úloha se od úlohy běžného lineárního programování LP liší v tom, že proměnné jsou omezeny na celá čísla. Pokud některé proměnné mohou být i reálná čísla, potom se úloha nazývá smíšené celočíselné programování MIP(Mixed Integer Programming), ale častěji se i tomuto případu říká ILP. Pokud bychom takovou úlohu řešili pomocí lineárního programování s tím, že bychom výsledek zaokrouhlili, nejenom že bychom neměli zaručeno že výsledné řešení bude optimální ale ani to, zda bude přípustné. Zatímco úloha LP je řešitelná v polynomiálním čase, úloha ILP je tzv. NP-těžká(NP-hard), neboli není znám algoritmus, který by vyřešil libovolnou instanci této úlohy v polynomiálním čase. Protože prostor řešení ILP není konvexní množina, nelze přímo aplikovat metody konvexní optimalizace. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 4/ 43
Dělení kořisti Dělení kořisti(2 partition problem) Instance:Nezápornáceláčíslan,p 1,...,p n,kdenjepočetbankovek ap 1,...,p n jsouhodnotybankovek. Rozhodnutí:ExistujepodmnožinaS {1,...,n}taková,že i S p i = i / S p i? Rozhodovací problém, jež lze pomocí ILP zapsat jako omezující podmínku danou výše uvedenou rovnicí(my ji zapíšeme trochu jinak, abychom později snáze formulovali optimalizační problém). x i =1iffi S Toto je jeden z nejsnazších NP-úplných problémů. min 0 subject to: i 1..n x i p i =0.5 i 1..n p i parameters: n Z + 0,p i 1..n Z + 0 variables: x i 1..n {0,1} Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 5/ 43
Příklad:p= [100,50,50,50,20,20,10,10]srelaxacíumožňujedělit kořist(x = [0,0,0.9,1,1,1,1,1])nastejněvelképoloviny 100 +50 +5 =45 +50 +20 +20 +10 +10,alevpřípadě nedělitelných bankovek tato instance nemá řešení. U některých instancí snadno určíme, že je nelze rozdělit(např. součet všech cen podělený největším společným dělitelem není sudé číslo), ale není znám algoritmus, který by to uměl udělat v polynomiálním čase pro všechny možné instance problému s nedělitelnými bankovkami. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 6/ 43 Dělení kořisti s relaxací na nedělitelnost bankovek Pokudpovolímeděleníbankovek,pakx i 1..n 0,1.Prostorřešeníje konvexní množina- problém lze formulovat pomocí LP: min 0 subject to: i 1..n x i p i =0.5 i 1..n p i x i 1 i 1..n parameters: n Z + 0,p i 1..n Z + 0 variables: x i 1..n R + 0,Cmax R+ 0
Dělení kořisti- optimalizační verze Rozhodovací problém lze řešit optimalizačním algoritmem tak, že zavedemepráh(zde0.5 i 1..n p i)aptámese,zdajenalezená optimální hodnota nad-rovna-pod prahem. Navíc získáme hodnotu, která se prahu nejvíce blíží pokud rozhodovací problém nemá řešení. min Cmax subjectto: i 1..n x i p i Cmax i 1..n (1 x i) p i Cmax parameters: n Z + 0,p i 1..n Z + 0 variables: x i 1..n {0,1},Cmax R + 0 Aplikace:rozvrhovánímnožinynnepreemptivníchúloh {T 1,T 2,...,T n }s výpočetnímčasem [p 1,p 2,...,p n ]nadvouparalelníchidentických procesorech a minimalizací dokončení poslední z nich(maximum Completiontime)neboliP2 C max (připreempcip2 pmtn C max ) Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 7/ 43
Nejkratší cesta Nejkratší cesta v grafu(shortest Path) Instance:OrientovanýgrafG,maticevzdálenostíd :V V R + 0 a dvavrcholy1,n V. Cíl:Naléztnejkratšízvrcholu1dovrcholunneborozhodnout,žen není dosažitelný z 1. LP formulace podle fyz. analogie vrchol = kulička hrana(pro symetrickou matici d) = provázek vrchol 1 je uchycen, ostatní vrcholy taženy gravitací napnuté provázky = nejkratší cesta max s n subject to: s 1 =0 s j s i +d i,j i 1..n,j 1..n parameters: n Z + 0,d i 1..n,j 1..n R + 0 variables: s i 1..n R + 0 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 8/ 43
Úloha obchodního cestujícího Problém asymetrického obchodního cestujícího (Asymmetric Traveling Salesman Problem) Instance:ÚplnýorientovanýgrafK n (n 3),maticevzdáleností d :V V Q +. Cíl: Nalézt nejkratší uzavřenou orientovanou cestu procházející všemi vrcholy. min subject to: i 1..n j 1..n d i,j x i,j i 1..nx i,j =1 j 1..n vstupjednou j 1..n x i,j =1 i 1..n vystupjednou s i +d i,j (1 x i,j ) M s j i 1..n,j 2..n nedělitelnost parameters: M Z + 0,n Z+ 0,d i 1..n,j 1..n Q + variables: x i 1..n,j 1..n {0,1},s i 1..n R + 0 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 9/ 43
Metody řešení Mezi nejznámější metody řešení obecné úlohy ILP patří: Výčtové metody(enumerative Methods) Metoda větví a mezí(branch and Bound) Metody sečných nadrovin(cutting Planes Methods) Za významné osobnosti v oblasti ILP jsou považováni Ralph Gomory a Vašek Chvátal. Dnes se po nich jmenují některé metody řešení této úlohy: Gomoryho řezy resp. Chvátal-Gomoryho řezy. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 10/ 43
Výčtové metody Výpočet je založen na prohledávání oblasti zahrnující všechna přípustná řešení. Vzhledem k celočíselnému omezení proměnných je počet těchto řešení konečný, ale jejich počet je extrémně vysoký. Proto je tato metoda vhodná pouze pro malé problémy s omezeným počtem diskrétních proměnných. PostupjemožnopoužítnaúlohuILPtak,žekekaždékombinaci diskrétních proměnných je vyřešena úloha LP, kde jsou diskrétní proměnné považovány za konstanty. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 11/ 43
Výčtové metody min 2x 1 + x 2 s.t. 9x 1 3x 2 11 x 1 2x 1 +2x 2 10 x 2 7 x 1,x 2 0, x 1,x 2 Z + 0 Zobrázkudolejepatrné,ževúvahupřipadá10přípustnýchřešenístím, žeoptimálnířešeníjex 1 =2,x 2 =2shodnotoukritéria 2. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 12/ 43
Metoda větví a mezí Principem této metody je rozklad množiny přípustných řešení na disjunktní podmnožiny. Algoritmus začíná výpočtem úlohy tak, že zanedbává požadavek na celočíselnot a úloha je vyřešena klasickými metodami LP. Pokudjsouvšechnyproměnnéx i celočíselné,potomvýpočetkončí. Pokudnejsou,vyberesejednaproměnnáx i / Zajejíhodnotaje přiřazena do k. Následně se vyšetřovaná oblast rozdělí na dvě podmnožiny tak, že v prvníuvažujemex i k avdruhéx i k +1. Výpočet je rekurzivně opakován pro obě nově vzniklé oblasti, dokud nenínalezenopřípustnéřešení,kdevšechnax i jsouceločíselná. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 13/ 43
Metoda větví a mezí pomocí větvení(branching) vytváří algoritmus stavový prostor řešení, který lze grafově znázornit stromem uzly představují nějaká částečná řešení problému listy odpovídají buď nalezeným celočíselným řešením nebo řešením, která jsou odříznuta(nepřípustná řešení a řešení která nevedou k lepšímu výsledku) jakmile algoritmus nalezne nějaké celočíselné řešení, může být hodnota odpovídající cílové funkce použita k prořezávání stromu(bounding) uzel je odříznut, pokud cílová funkce tohoto částečného(i neceločíselného)řešeníznenílepšínežz,hodnotacílovéfunkce nejlepšího doposud známého celočíselného řešení Algoritmus ILP nejčastěji využívá k řešení LP simplexovou metodu protože po přidání nové omezující podmínky není nutné spouštět simplexový algoritmus znova od začátku ale umožňuje navázat na předchozí výpočet LP řešením duální simplexové metody. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 14/ 43
Metoda větví a mezí Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 15/ 43
Metodavětvíamezí-příklad Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 16/ 43
Množina řešení ILP maxz = 3x 1 +4x 2 s.t. 5x 1 +8x 2 24 x 1,x 2 Z + 0 Co je optimální řešení? MůžemepoužítLPk řešení ILP problému? Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 17/ 43
Zaokrouhlení není vždy úspěšné maxz = 3x 1 +4x 2 LPřešeníz=14.4pro x 1 =4.8,x 2 =0 zaokrouhlením získáme neproveditelné řešení x 1 =5,x 2 =0 odtržením neceločíselné části získáme řešení z =12pro x 1 =4,x 2 =0 optimálnířešeníz=13 prox 1 =3,x 2 =1 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 18/ 43
Proč celočíselné programování Výhody plynoucí z omezení na celočíselné proměnné realističtější(nelze vyrábět 4.3 auta) pružnější- do binárních proměnných často zakódujeme nějaká rozhodnutí(logické výrazy...) schopnost formulovat NP-obtížné problémy Nevýhody obtížnější tvorba modelu zpravidla lze řešit pouze problémy o přibližně 1000 celočíselných proměnných Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 19/ 43
Speciální případy ILP- př. nejkratší cesta pomocí toků a) Nejkratší cesta v grafu(shortest Path) Instance:Or.grafG,incidenčnímaticeC :V E { 1,0,1}, vektordélekhranl R + 0 advavrcholy1,n V. Cíl:Naléztnejkratšízvrcholu1dovrcholunneborozhodnout,žen není dosažitelný z 1. LP formulace pomocí tokuzezdrojedocíle: hranoujtečetoko velikostix j vyjma zdroje a cíle zachovávají vrcholy 1.Kirchhoffův zákon min j 1..m l j x j subject to: j 1..mC 1,j x j =1 zdrojtoku j 1..mC n,j x j = 1 cíltoku j 1..m C i,j x j =0 i 2..n 1 pars: C i 1..n,j 1..m { 1,0,1},l j 1..m R + 0 vars: x j 1..m R + 0 Výslednéhodnotyx i jsouceločíselné(binární)přestožejdeolp.proč? Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 20/ 43
Speciální případy ILP Obecná úloha ILP není řešitelná v polynomiálním čase. Existují však speciální případy, které lze řešit v polynomiálním čase. Věta- Totálně unimodulární matice MaticeA = [a ij ]typum/njetotálněunimodulární,jestliže 1 a ij {0,1, 1} 2 determinant každé čtvercové podmatice matice A je roven 0; 1 nebo -1. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 21/ 43
Totálně unimodulární matice Věta Úlohu ILP s totálně unimodulární maticí A a celočíselným vektorem b lze řešit simplexovým algoritmem a výsledné řešení je celočíselné. Věta Úloha ILP s totálně unimodulární maticí A a celočíselným vektorem b je řešitelná v polynomiálním čase. Věta NechťAjematicetypum/ntaková,že 1 a ij {0,1, 1},i=1,...,m,j=1,...,n 2 každý sloupec matice A obsahuje buďto nejvýše jeden nenulový prvek neboprávědvanenulovéprvky,ato +1a 1, pak je matice A totálně unimodulární. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 22/ 43
Vyjadřovací schopnosti ILP- př. investice do nemovitostí Zvažujeme investice do 6 nemovitostí. Cenaapříjemznájmuukaždéznichjsouuvedenyvtabulce. Cíl: nemovitost 1 2 3 4 5 6 cena 5 7 4 3 4 6 nájem 16 22 12 8 11 19 maximalizovat příjem z nájmu Omezení: investiční rozpočet je 14 mil Kč Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 23/ 43
Vyjadřovací schopnosti ILP- př. investice do nemovitostí Zvažujeme investice do 6 nemovitostí. Cenaapříjemznájmuukaždéznichjsouuvedenyvtabulce. Cíl: nemovitost 1 2 3 4 5 6 cena 5 7 4 3 4 6 nájem 16 22 12 8 11 19 maximalizovat příjem z nájmu Omezení: investiční rozpočet je 14 mil Kč Formulace x i =1právěkdyžkoupímenemovitosti max z =16x 1 +22x 2 +12x 3 +8x 4 +11x 5 +19x 6 s.t. 5x 1 +7x 2 +4x 3 +3x 4 +4x 5 +6x 6 14 x i 1 6 {0,1} Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 23/ 43
Přidánílogickýchformulíx 1 x 3 Další omezení: jestližejedům1vybrán,potomnenívybrándům3 x 1 x 3 x 1 x 3 0 0 1 0 1 1 1 0 1 1 1 0 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 24/ 43
Přidánílogickýchformulíx 1 x 3 Další omezení: jestližejedům1vybrán,potomnenívybrándům3 x 1 x 3 x 1 x 3 0 0 1 0 1 1 1 0 1 1 1 0 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 24/ 43
Přidánílogickýchformulíx 1 x 3 Další omezení: jestližejedům1vybrán,potomnenívybrándům3 x 1 x 3 x 1 x 3 0 0 1 0 1 1 1 0 1 1 1 0 max z =16x 1 +22x 2 +12x 3 +8x 4 +11x 5 +19x 6 s.t. 5x 1 +7x 2 +4x 3 +3x 4 +4x 5 +6x 6 14 x 1 + x 3 1 x i 1 6 {0,1} Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 24/ 43
Přidánílogickýchformulíx 2 x 1 Další omezení: jestližejedům2vybrán,potommusíbýtvybránidům1 x 1 x 2 x 2 x 1 0 0 1 0 1 0 1 0 1 1 1 1 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 25/ 43
Přidánílogickýchformulíx 2 x 1 Další omezení: jestližejedům2vybrán,potommusíbýtvybránidům1 x 1 x 2 x 2 x 1 0 0 1 0 1 0 1 0 1 1 1 1 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 25/ 43
Přidánílogickýchformulíx 2 x 1 Další omezení: jestližejedům2vybrán,potommusíbýtvybránidům1 x 1 x 2 x 2 x 1 0 0 1 0 1 0 1 0 1 1 1 1 max z =16x 1 +22x 2 +12x 3 +8x 4 +11x 5 +19x 6 s.t. 5x 1 +7x 2 +4x 3 +3x 4 +4x 5 +6x 6 14 x 2 x 1 x i 1 6 {0,1} Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 25/ 43
Přidánílogickýchformulíx 2 XORx 1 Další omezení: buďjevybrándům4nebodům5,aleneoba x 4 x 5 x 4 XORx 5 0 0 0 0 1 1 1 0 1 1 1 0 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 26/ 43
Přidánílogickýchformulíx 2 XORx 1 Další omezení: buďjevybrándům4nebodům5,aleneoba x 4 x 5 x 4 XORx 5 0 0 0 0 1 1 1 0 1 1 1 0 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 26/ 43
Přidánílogickýchformulíx 2 XORx 1 Další omezení: buďjevybrándům4nebodům5,aleneoba x 4 x 5 x 4 XORx 5 0 0 0 0 1 1 1 0 1 1 1 0 max z =16x 1 +22x 2 +12x 3 +8x 4 +11x 5 +19x 6 s.t. 5x 1 +7x 2 +4x 3 +3x 4 +4x 5 +6x 6 14 x 4 + x 5 =1 x i 1 6 {0,1} Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 26/ 43
Přidání logických formulí- domácí úkol Promyslete jak formulovat: musíbýtvybrándům1anesmíbýtvybrándům2 musí být vybrány alespoň 3 domy musíbýtvybrányprávě3domy pokudjsouvybránydomy1a2,pakmusíbýtkvůlicestěvybráni dům3-neboli(x 1 ANDx 2 ) x 3 nesmí být vybrány právě dva domy Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 27/ 43
Vyjadřovací schopnosti ILP- př. plánování výroby oděvů Objem práce, množství materiálu a zisk jsou uvedeny v tabulce. produkt tričko košile kalhoty kapacita objem práce 3 2 6 150 materiál 4 3 4 160 Cíl: zisk 6 4 7 maximalizovat zisk Omezení: celková pracovní kapacita je maximálně 150 hodin k dispozici je maximálně 160m látky Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 28/ 43
Vyjadřovací schopnosti ILP- př. plánování výroby oděvů Objem práce, množství materiálu a zisk jsou uvedeny v tabulce. produkt tričko košile kalhoty kapacita objem práce 3 2 6 150 materiál 4 3 4 160 Cíl: zisk 6 4 7 maximalizovat zisk Omezení: celková pracovní kapacita je maximálně 150 hodin k dispozici je maximálně 160m látky Formulace x i početvýrobkůproduktui max z =6x 1 +4x 2 +7x 3 s.t. 3x 1 +2x 2 +6x 3 150 4x 1 +3x 2 +4x 3 160 x i 1 3 Z 0 + Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 28/ 43
Přidání vztahu mezi binární a celočíselnou proměnnou Další omezení: zaplatit fixní cenu za pronájem stroje podle typu produktu produkt tričko košile kalhoty cena stroje 200 150 100 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 29/ 43
Přidání vztahu mezi binární a celočíselnou proměnnou Další omezení: zaplatit fixní cenu za pronájem stroje podle typu produktu Formulace produkt tričko košile kalhoty cena stroje 200 150 100 zavedemebinárníproměnnouy i,takabyy i =1právěkdyžje vypůjčen stroj na výrobu produktu i novékritériummaxz =6x 1 +4x 2 +7x 3 200y 1 150y 2 100y 3 provážemebinárníy i sceločíselnoux i Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 29/ 43
Přidání vztahu mezi binární a celočíselnou proměnnou Strojijevypůjčenprávěkdyžjevyráběnprodukti,neboliprovážeme binárníy i sceločíselnoux i tak,abyplatilo y i =0právěkdyžx i =0 y i =1právěkdyžx i 1 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 30/ 43
Přidání vztahu mezi binární a celočíselnou proměnnou Strojijevypůjčenprávěkdyžjevyráběnprodukti,neboliprovážeme binárníy i sceločíselnoux i tak,abyplatilo y i =0právěkdyžx i =0 y i =1právěkdyžx i 1 Prooborhodnotx i 0,100 lzetentovztahzajistitpomocínerovnic x i 100y i a x i y i...zdelzevypustitdíkykritériu Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 30/ 43
Funkce několika přípustných hodnot Další omezení: zaúčelemvyužitípracovnídobyjecelkovýobjempráce40,80nebo 120 hodin Požadujeme, aby nějaká funkce proměnných x nabývala pouze omezeného počtu hodnot 3x 1 +2x 2 +6x 3 =40nebo80nebo120 Lzevyjádřitpomocímnožinypomocnýchproměnnýchv i 1...3 {0,1} následovně: 3x 1 +2x 2 +6x 3 =40v 1 +80v 2 +120v 3 3 i=1 v i =1 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 31/ 43
Musí platit alespoň jedna ze dvou podmínek - př. soustava nerovnic Při modelování problémů pomocí ILP se často dostáváme do situace, kdy je potřeba vyjádřit skutečnost, že platí jedno omezení, nebo druhé omezení neboobězároveň.např.prox i 1...4 0,5,x i 1...4 R platí 2x 1 +x 2 5 nebo 2x 3 x 4 2 nebo obě Tento případ lze modelovat pomocí konstanty M(velkého kladného číslabigm,zdenapříklad15)apomocnéproměnnéy {0,1},takabybyla vypnuta účinnost jedné z nerovnic 2x 1 +x 2 5 +M y 2x 3 x 4 2 +M (1 y) Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 32/ 43
Musí platit alespoň jedna ze dvou podmínek proy =0sesoustava 2x 1 +x 2 5 +M y 2x 3 x 4 2 +M (1 y) redukuje na 2x 1 +x 2 5 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 33/ 43
Musí platit alespoň jedna ze dvou podmínek proy =0sesoustava 2x 1 +x 2 5 +M y 2x 3 x 4 2 +M (1 y) redukuje na 2x 1 +x 2 5 proy =1sesoustava 2x 1 +x 2 5 +M y 2x 3 x 4 2 +M (1 y) redukuje na 2x 3 x 4 2 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 33/ 43
Musí platit alespoň jedna ze dvou podmínek- domácí úkol Promyslete jaký prostor řešení je dán soustavou nerovnic: 2x 1 +x 2 5 +M y 2x 1 x 2 2 +M (1 y) y {0,1} Promyslete jaký prostor řešení je dán soustavou nerovnic(všimněte si, žerovniceodpovídajírovnoběžnýmpřímkám;mohoupronějakéx 1,x 2 obě nerovnice platit naráz): 2x 1 +x 2 5 +M y 2x 1 +x 2 10 +M (1 y) y {0,1} Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 34/ 43
Platí alespoň 1 ze 2 podm.- př. nepreemptivní rozvrhování 1 r j, d Cmax j...np-obtížnýproblém Například: Instance:Množinanepreemptivníchúloh T = {T 1,...,T i,...t n } vykonávaná na jednom procesoru s omezeními na nejdřívější začátek r adeadline dkaždéúlohy.délkaúlohjedánavektoremp. Cíl: Nalézt proveditelný rozvrh daný začátky vykonávání úloh s tak, aby celková doba rozvrhu byla co nejkratší (C max =max i 1,n s i +p i ),neborozhodnout,ženeexistuje. procesor- truhlář T i -výrobažidle r i -okamžik,kdyjekdispozicimateriálnavýrobužidle d i -okamžik,kdymusíbýtžidlevyrobena s i -začátekvýrobyžidle s j +p j -konecvýrobyžidle Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 35/ 43
Rozvrhování nepreemptivních úloh- platí alespoň jedna ze dvou podmínek Jelikož v danou chvíli může být vykonávána maximálně jedna úloha, tak prokaždouneuspořádanoudvojiciúloht i,t j musíplatit: 1 buďt i předcházít j (zapíšemes j s i +p i ) 2 nebot j předcházít i (zapíšemes i s j +p j ) Povšimněmesi,žesoučasnáplatnostobounerovnicje(prop i >0) vyloučena. Potřebujeme zformulovat, že platí alespoň jedna ze dvou nerovnic. Zavedemepomocnouproměnnoux ij {0,1}tak,žex ij =1právěkdyžT i předcházít j (maticexjeantisymetrická). ProkaždouneuspořádanoudvojiciúlohT i,t j zavedemedvěnerovnice: s j +M (1 x ij ) s i +p i nerovniceje vypnutá kdyžx ij =0 s i +M x ij s j +p j nerovniceje vypnutá kdyžx ij =1 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 36/ 43
Rozvrhování- reprezentace nekonvexního prostoru s i r i i 1..n d i s i +p i i 1..n releasedate deadline s j +M (1 x ij ) s i +p i i 1..n,j i T i předcházít j s i +M x ij s j +p j i 1..n,j i T j předcházít i Například:p i =2,p j =3,r i =r j =0, d i =9, d j =10 Nekonvexnídvojrozměrnýprostorjeprůmětemdvouřezůvroviněx =0a x = 1 do trojrozměrného polytopu daného soustavou nerovnic. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 37/ 43
MusíplatitalespoňKzNpodmínek VpřípaděževILPmodeluuvažujemepřípad,kdyzmnožinyNpodmínek musí platit alespoň K podmínek ve tvaru: f (x 1,x 2,...,x n ) b 1 f (x 1,x 2,...,x n ) b 2. f (x 1,x 2,...,x n ) b N LzeopětvyjádřitzaloženímNpomocnýchproměnnýchy i 1...N {0,1} f (x 1,x 2,...,x n ) b 1 +M y 1 f (x 1,x 2,...,x n ) b 2 +M y 2. f (x 1,x 2,...,x n ) b N +M y N N i=1 y i =N K ProK =1aN=2lzezjednodušitnajedinouproměnnouy i ajejínegaci vyjádřitjako (1 y i )viz alespoňjednazedvoupodmínek. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 38/ 43
Nástroje řešící úlohu ILP CPLEX- komerční http://www.ilog.com/products/cplex/ MOSEK- komerční http://www.mosek.com/ GLPK- nekomerční http://www.gnu.org/software/glpk/ LP SOLVE- nekomerční http://groups.yahoo.com/group/lp_solve/ YALMIP- nástroj určený k modelování ILP problémů v Matlabu http://control.ee.ethz.ch/~joloef/wiki/pmwiki.php Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 39/ 43
Metoda sečných nadrovin Další skupinou algoritmů jsou metody sečných nadrovin(cutting plane method). Jsou založeny podobně jako metoda větví a mezí na opakovaném řešení úlohy LP. Výpočet je prováděn iterativně tak, že v každém kroku je přidána další omezující podmínka zužující oblast přípustných řešení. Každá nová omezující podmínka musí splňovat tyto vlastnosti: Optimální řešení nalezené pomocí LP se stane nepřípustným. Žádné celočíselné řešení přípustné v předchozím kroku se nesmí stát nepřípustným. Mezi nejznámější metody patří Dantzigovy řezy(dantzig cuts), Gomoryho řezy(gomory cuts) a Chvátal-Gomoryho řezy. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 40/ 43
Gomoryho řezy Algoritmus 1 (Inicializace) Vyřeš úlohu jako úlohu LP pomocí simplexového algoritmu. 2 (Test optimality) Pokud je nalezené řešení celočíselné, výpočet končí. 3 (Redukce) Do simplexové tabulky přidej nové omezení(gomoryho řez). Přeoptimalizuj úlohu pomocí duálního LP a jdi na krok 2. minx 1 +2x 2 s.t. 3x 1 +4x 2 6 4x 1 +3x 2 12 x 1,x 2 0,x 1,x 2 Z Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 41/ 43
Lineární programování- Shrnutí Úloha je NP-obtížná. Lze ji použít pro modelování většiny kombinatorických problémů. Nejčastěji je řešena metodou větví a mezí. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 42/ 43
Literatura A.JensenandF.Bard. Operations Research Models and Methods. JohnWiley&Sons,Inc.,2002. B.H.KorteandJensVygen. Combinatorial Optimization: Theory and Algorithms. Springer, third edition, 2006. James B. Orlin. Introduction to optimization. MIT OpenCourseWare, 2004. R. Vanderbei. Linear Programming: Foundations and Extensions. Princeton University, http://www.princeton.edu/ rvdb/lpbook, second edition, 2001. Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp) 2. března 2010 43/ 43