Lineární a Celo íselné Programování



Podobné dokumenty
Lineární a Celo íselné Programování

Lineární programování II. Ivan Nagy, Pavla Pecherková

Vektor náhodných veli in - práce s více prom nnými

e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody

Integrování jako opak derivování

Skalární sou in. Úvod. Denice skalárního sou inu

Vektory. Vektorové veli iny

P íklad 1 (Náhodná veli ina)

Limity funkcí v nevlastních bodech. Obsah

Binární operace. Úvod. Pomocný text

Pr b h funkce I. Obsah. Maxima a minima funkce

Obsah. Pouºité zna ení 1

Rovnice a nerovnice. Posloupnosti.

ízení Tvorba kritéria 2. prosince 2014

2. Ur íme sudost/lichost funkce a pr se íky s osami. 6. Na záv r na rtneme graf vy²et ované funkce. 8x. x 2 +4

Lineární a Celo íselné Programování

Státní maturita 2010 Maturitní generálka 2010 Matematika: didaktický test - základní úrove obtíºnosti MAGZD10C0T01 e²ené p íklady

1. (18 bod ) Náhodná veli ina X je po et rub p i 400 nezávislých hodech mincí. a) Pomocí ƒeby²evovy nerovnosti odhadn te pravd podobnost

Příprava na 1. čtvrtletní písemku pro třídu 1EB

11 Soustavy rovnic a nerovnic, Determinanty a Matice

Pravd podobnost a statistika - cvi ení. Simona Domesová místnost: RA310 (budova CPIT) web:

Reálná ísla a posloupnosti Jan Malý

2 Trochu teorie. Tab. 1: Tabulka pˇrepravních nákladů

Testy pro více veli in

nazvu obecnou PDR pro neznámou funkci

T i hlavní v ty pravd podobnosti

a m1 a m2 a mn zobrazení. Operaci násobení u matic budeme definovat jiným způsobem.

10 je 0,1; nebo taky, že 256

Úvod. Matematická ekonomie 1. Jan Zouhar. 20. zá í 2011

Ergodické Markovské et zce

na za átku se denuje náhodná veli ina

Text m ºe být postupn upravován a dopl ován. Datum poslední úpravy najdete u odkazu na staºení souboru. Veronika Sobotíková

( x ) 2 ( ) Další úlohy s kvadratickými funkcemi. Předpoklady: 2501, 2502

Statistika pro geografy. Rozd lení etností DEPARTMENT OF GEOGRAPHY

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Reálná čísla

Zobrazení v rovině je předpis, který každému bodu X roviny připisuje právě jeden bod X roviny. Bod X se nazývá vzor, bod X se nazývá obraz.

c sin Příklad 2 : v trojúhelníku ABC platí : a = 11,6 dm, c = 9 dm, α = Vypočtěte stranu b a zbývající úhly.

2.2.2 Zlomky I. Předpoklady:

Derivování sloºené funkce

Daniel Velek Optimalizace 2003/2004 IS1 KI/0033 LS PRAKTICKÝ PŘÍKLAD NA MINIMALIZACI NÁKLADŮ PŘI VÝROBĚ

Kuželosečky a kvadriky ve škole i kolem

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

MATEMATIKA I VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STAVEBNÍ JIŘÍ NOVOTNÝ ZÁKLADY LINEÁRNÍ ALGEBRY

Návrh realizace transformátoru Thane C. Heinse III.

Modelování v elektrotechnice

1.7. Mechanické kmitání

ZÁPISKY Z ANALYTICKÉ GEOMETRIE 1 SOUŘADNICE, BODY

P íklady k prvnímu testu - Scilab

Mezní kalibry. Druhy kalibrů podle přesnosti: - dílenské kalibry - používají ve výrobě, - porovnávací kalibry - pro kontrolu dílenských kalibrů.

Řešení: Dejme tomu, že pan Alois to vezme popořadě od jara do zimy. Pro výběr fotky z jara má Alois dvanáct možností. Tady není co počítat.

Jevy, nezávislost, Bayesova v ta

P íklady k prvnímu testu - Pravd podobnost

Gymnázium Christiana Dopplera, Zborovská 45, Praha 5. ROČNÍKOVÁ PRÁCE Teoretické řešení střech

e²ení 1. série Úvodní gulá² autor: Kolektiv org

Co je to tensor... Vektorový prostor

6. Matice. Algebraické vlastnosti

Úprava tabulek v MS Word. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T. G. Masaryka, Kostelec nad Orlicí

Státnice - Rekurzivní a rekurzivn spo etné mnoºiny

Specifikace systému ESHOP

1. Spo t te limity (m ºete pouºívat l'hospitalovo pravidlo) x cotg x 1. c) lim. g) lim e x 1. cos(x) =

12. Lineární programování

Státní maturita 2011 Maturitní testy a zadání jaro 2011 Matematika: didaktický test - základní úrove obtíºnosti MAMZD11C0T02 e²ené p íklady

Vzorové e²ení 4. série

1.2.5 Reálná čísla I. Předpoklady:

Novinky verzí SKLADNÍK 4.24 a 4.25

INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka

Zápo tová písemná práce. 1 z p edm tu 01MAB3 varianta A

1 Data. 2 Výsledky m ení velikostí. Statistika velikostí výtrus. Roman Ma ák

KRAJSKÝ ÚŘAD JIHOMORAVSKÉHO KRAJE Odbor dopravy Žerotínovo náměstí 3/5, Brno

P ílohy. P íloha 1. ešení úlohy lineárního programování v MS Excel

Exponenciála matice a její užití. fundamentálních matic. Užití mocninných řad pro rovnice druhého řádu

Vyhláška č. 294/2015 Sb., kterou se provádějí pravidla provozu na pozemních komunikacích

4. cvičení: Pole kruhové, rovinné, Tělesa editace těles (sjednocení, rozdíl, ), tvorba složených objektů

Číslicová technika 3 učební texty (SPŠ Zlín) str.: - 1 -

Android Elizabeth. Verze: 1.3

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

1. července 2010

Návrh realizace transformátoru Thane C. Heinse

Relace. Základní pojmy.

Po etní geometrie. Výpo et délky p epony: c 2 = a 2 + b 2 Výpo et délky odv sny: a 2 = c 2 b 2, b 2 = c 2 a 2

TIP: Pro vložení konce stránky můžete použít klávesovou zkratku CTRL + Enter.

M - Příprava na čtvrtletní písemnou práci

Usnesení. Č. j. 099 EX 7626/13-68

Parametrické programování

Poměry a úměrnosti I

Školní kolo soutěže Mladý programátor 2016, kategorie A, B

Úlohy domácího kola kategorie C

4 DVOJMATICOVÉ HRY. Strategie Stiskni páku Sed u koryta. Stiskni páku (8, 2) (5, 3) Sed u koryta (10, 2) (0, 0)

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITA HRADEC KRÁLOVÉ SEMESTRÁLNÍ PRÁCE. Modely operačního výzkumu 1. Studijní obor:

A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU

Post ehy a materiály k výuce celku Funkce

Oblastní stavební bytové družstvo, Jeronýmova 425/15, Děčín IV

Algoritmizace a programování

Teorie her. Klasikace. Pomocný text

4EK213 LINEÁRNÍ MODELY

PRAKTIKUM... Oddělení fyzikálních praktik při Kabinetu výuky obecné fyziky MFF UK. Odevzdal dne: Seznam použité literatury 0 1. Celkem max.

Usnesení. Nevrlý Jaroslav, Ing., IČO: , nar , se sídlem Ocelíkova 672/1, Praha 4 - Háje. vydává DRAŽEBNÍ VYHLÁŠKU

3. Polynomy Verze 338.

Zadání. Založení projektu

Transkript:

Lineární a Celo íselné Programování text k p edná²kám Obsah 1 Lineární a celo íselné programování 4 1.1 Obecná formulace.................................... 4 1.2 Algebraický model................................... 4 1.3 P íklad......................................... 5 2 e²ení úlohy lineárního programování 7 2.1 Simplexová metoda................................... 7 2.2 Model v se²it EXCEL................................ 10 2.3 Triky p i práci v EXCELu............................... 11 3 Úlohy I. 11 3.1 Optimální produkce.................................. 11 3.2 Optimální produkce s omezenými zdroji....................... 12 3.3 Optimální produkce s výb rem surovin........................ 14 3.4 Optimální krmná sm s................................. 15 3.5 Optimální ezání ty í.................................. 16 4 Úlohy II. 17 4.1 Minimální tok náklad v síti............................. 17 P íklad 1........................................ 18 P íklad 2........................................ 20 4.2 P i azovací dopravní problém............................. 21 4.3 P i azovací dopravní problém (pomocí MCNF)................... 22 4.4 Nejkrat²í cesta grafem (pomocí MCNF)....................... 23 P íklad......................................... 23 1

5 Celo íselné programování 27 6 Formulace úloh celo íselného programování 30 6.1 Speciální typy omezení................................. 30 Omezení na výb r................................... 30 Aktivace omezení.................................... 30 Výb r z mnoºiny omezení............................... 31 Implikované omezení.................................. 32 Omezení na oblasti................................... 33 6.2 Aproximace kriteriální funkce............................. 35 Aproximace skokové funkce.............................. 35 Aproximace po ástech lineární funkce........................ 35 Aproximace sou inu v kriteriu............................. 37 Realizace minimaxu v kriteriu............................. 39 7 e²ení úlohy celo íselného programování 40 7.1 Metoda v tví a mezí.................................. 40 7.2 Metoda se ných nadrovin............................... 42 8 Úlohy III. 46 8.1 Úloha o batohu..................................... 46 8.2 Výb r z mnoºiny investic............................... 47 9 Úlohy IV. 48 9.1 Problém obchodního cestujícího (TSP)........................ 48 10 Úlohy V. 52 10.1 Problém pokrytí oblastí................................ 53 10.2 Kuch ka a recepty................................... 55 10.3 Obsazování leteckých tras posádkami......................... 56 P íklad 1........................................ 57 P íklad 2........................................ 59 11 Úlohy VI. 59 11.1 Problém rozmíst ní sklad............................... 60 11.2 Vy²et ení infek ního onemocn ní........................... 61 2

12 Úlohy VII. 65 12.1 Problém po²tovních box............................... 65 13 Zobecn ní TSP 66 13.1 Nejkrat²í cesta grafem................................. 66 13.2 Nejkrat²í cesta z daného uzlu............................. 68 13.3 Nejkrat²í cesta s více náv²t vami m st........................ 69 13.4 Nejkrat²í cesta klastry uzl.............................. 70 3

1 Lineární a celo íselné programování 1.1 Obecná formulace Standardní úloha zní: Nalezn te hodnoty vektoru x, které (i) maximalizují lineární kriterium c x = c 1 x 1 + c 2 x 2 + + c n x n, (ii) spl ují vedlej²í podmínky Ax b, tedy a i,1 x 1 + a i,2 x 2 + + a i,n x n b i, pro i = 1, 2,, m (m podmínek pro n prom nných) a (iii) jsou nezáporné. Zápis standardní úlohy je následující c x max Ax b x 0 Poznámka Omezení vytvá í simplex na kterém se hledá optimum. Lineární kriterium tvo í nadrovinu v prostoru x, J. Extrém je ve vrcholu nebo na hranici nebo ute e do nekone na. 1.2 Algebraický model 1. Denice neznámých (rozhodovacích) veli in x V prvé ad musíme denovat veli iny x, které budeme optimalizovat. Ty mohou být spojité x 0 nap. po et ks vyráb ného produktu, nebo diskrétní x 0, cele nap. po et za ízení s rychlým ob erstvením nebo binární x {0, 1}, které nazýváme rozhodovací (0 ne, 1 ano) nap. ozna ení investic z ur ité mnoºiny, které budou realizovány. 2. Denice kritéria Kritérium v t²inou vyjad uje n co, co chceme maximalizovat (zisk) nebo minimalizovat (náklady, ztráty atd.). Je vyjád en jako funkce optimalizovaných veli in x, v t²inou ve form c x jako sou in vektor nebo matic ( j,j c ijx ij ). Prom nné c se asto nazývají ceny. 3. Denice omezujících podmínek Vyjad ují podmínky, za kterých má optimalizace probíhat. Nejb ºn j²í jsou (a) nezápornost nebo celo íselnost neznámých x 0, x {0, 1} (b) omezení ve tvaru nerovností Ax b, kde matice A má rozm ry po et omezení po et neznámých (c) a p ípadn dal²í, se kterými se postupn setkáme v p íkladech. 4

1.3 P íklad Ur ete hodnoty prom nné x = [x 1, x 2 ], která maximalizuje kritérium a vyhovuje podmínkám J = c 1 x 1 + c 2 x 2 3x 1 + 5x 2 15 2x 1 + x 2 8 x 2 2 x 1 0, x 2 0 Váhy v kriteriu volte následovn a) c = [5, 1], b) c = [1, 1], c) c = [1, 3], d) c = [ 1, 1]. a vysv tlete výsledky. e²ení Geometrická interpretace úlohy ne na následujícím obrázku x 2 [0, 8] criterion 3 criterion 3 direction of maximization criterion 2 criterion 1 [0, 3] [0, 2] [5/3, 2] [6/7, 25/7] admissible solutions [4, 0] [5, 0] x 1 K e²ení lze pouºít nap. Excel. 5

e²itel lze nalézt v menu Data (pokud tam není, je t eba ho nainstalovat File - Options - Add-ins dole Go a snad tam vleze :-) ) Nastavíme ho takto 6

Pozn. V nové verzi lze za²krtnout - prom nné x jsou nezáporné. 2 e²ení úlohy lineárního programování 2.1 Simplexová metoda Pro e²ení základní úlohy lze vyuºít simplexovou metodu, která prochází vrcholy simplexu omezení tak, aby stále nar stala hodnota kriteria. Postup je obsaºen v následujícím p íkladu Demonstrace simplexové metody Příklad x Zadání 3 2 z=2x(1)+3x(2) -> max x(1)+x(2)<=5 c z x(1)+2x(2)<=8 2 3 12 (-x(1)+x(2)<=-4) A Ax b 1 1 5 5 1 2 7 8 2-1 4 4 nové další omezení pro demonstraci nerovnosti <= v omezení (viz další strana) (zatím bez nového omezení) Tabulka x1 x2 s1 s2 RHS -2-3 0 0 0 pro nebazické=0 je krit.=0 1 1 1 0 5 5/1 první omezení 1 2 0 1 8 --- 8/2 druhé omezení x1 x2 s1 s2 RHS -0.5 0 0 1.5 12 0.5 0 1-0.5 1 --- 0.5 1 0 0.5 4 x1 x2 s1 s2 RHS výsledek nebazické jsou 0 0 0 1 1 13 krit.=13 bazické mají hodnotu 1 0 2-1 2 x1=2 z pravého sloupce 0 1-1 1 3 x2=3 (krit. je bazické) pokračuje dále... 7

... pokračování nejsou splněny základní podmínky ulohy ( záp. pravá strana omezení nebo obrácená nerovnost >= ) Když nejsou pravé stany kladné, tak se to nasobí -1 Když není <=, postupujeme následovně odečteme s_slack a přičteme x_art (artificial) - obě veličiny jsou nezáporné řešíme pro koeficienty v kriteriu rovny nule a jedna pro x_art - tj pro krit. = x_art --> max nulujeme koeficient pro x_art v kriteriu - řádek podmínky násobíme -1 a přičteme ke kriteriu normálně vyřešíme a dostaneme tabulku z fáze I. u tabulky vynecháme sloupec pro x_art řádek 0 pro kriterium nahradíme původním řádkem Původní tabulka + nové omez. Nové omezení (pro demonstraci postupu s nerovností >=) x1 x2 s1 s2 s3 xa RHS -2x1+x2<=-4-2 -3 0 0 0 1 0 1 1 1 0 0 0 5 1 2 0 1 0 0 8 2-1 0 0-1 1 4 Řešíme pro c=0 tj. min z=xa x1 x2 s1 s2 s3 xa RHS 0 0 0 0 0 1 0 1 1 1 0 0 0 5 1 2 0 1 0 0 8 2-1 0 0-1 1 4 báze: posl. ř. odečíst od prvního x1 x2 s1 s2 s3 xa RHS -2 1 0 0 1 0 0 1 1 1 0 0 0 5 5/1 1 2 0 1 0 0 8 8/1 2-1 0 0-1 1 4 --- 4/2 pokračuje... 8

... pokračování u x1 je záporná cena -- posledním ř. a prvním prvkem nulujeme první sl. x1 x2 s1 s2 s3 xa RHS 0 0 0 0 0 1 4 0 1.5 1 0 0.5-0.5 3 0 2.5 0 1 0.5-0.5 6 1-0.5 0 0-0.5 0.5 2 xx xx xx x1=2 x2=0 s1=3 s2=6 s3=0 xa=0 Fáze II záporná pravá strana nebo omezení >= x1 x2 s1 s2 s3 RHS -2-3 0 0 0 0 0 1.5 1 0 0.5 3 --- 2 2 0 2.5 0 1 0.5 6 2.4 2.4 1-0.5 0 0-0.5 2 x1 x2 s1 s2 s3 RHS -2 0 2 0 1 6 0 1 0.667 0 0.333 2 0 0-1.667 1-0.333 1 1 0 0.333 0-0.333 3 --- 0 0 2 2/3 0 1/3 12 Konec 0 1 2/3 0 1/3 2 0 0-1 2/3 1-1/3 1 1 0 1/3 0-1/3 3 x1=3 x2=2 s1=0 s2=1 s3=0 z=12 Tedy: standardní podmínky jsou: maximalizace kriteria, nezáporné pravé strany omezení, nerovnosti typu, nezáporné prom nné x. sestavíme simplexovou tabulku standardní e²ení najdeme nejmen²í záporný koecient v ádku kriteria klí ový sloupec 9

pro kladné prvky v klí ovém sloupci najdeme nejmen²í podíl levé strany a prvku v klí ovém sloupci klí ový ádek na pr se íku kl. sl. a kl.. leºí klí ový prvek ten vyd líme kl. prvkem tím vynulujeme ostatní prvky v kl. sloupci to d láme, dokud je v ádku kriteria n jaký záporný prvek Výsledek: bázové veli iny mají hodnoty odpovídající pravým stranám; nebázové veli iny jsou nula. nestandardní e²ení záporné b a podmínka násobíme -1 záporné b a podmínka (násobíme -1) nebo kladné b a podmínka dále uvedený postup postup ode teme slack variable s a p i teme articial variable x A. e²íme celý problém pro kriterium z = x A max a do e²íme aº do konce ve výsledné tabulce nahradíme ádek kriteria p vodním a vynecháme sloupec s arti- cial variable vy e²íme a to je e²ení p vodní nestandardní úlohy. 2.2 Model v se²it EXCEL 1. Nejd íve vymezíme blok bun k pro neznámé x (p ípadn dal²í neznámé) 2. Dále zapí²eme v²echny zadané veli iny - v t²inou to jsou ceny c a koecienty lineárních omezení A a poºadované pravé strany b. 3. Spo teme v²echno, co je pot eba spo ítat (do e²itele se dávají jen odkazy na bu ky nebo bloky bun k). V t²inou to je: (a) kriterium c x = i c ix i (b) vypo tené pravé strany omezení Ax = a ij x j i 4. Zavoláme e²itele a zadáme v²echny odkazy (a) zvolíme Min nebo Max pro kriterium (b) zadáme blok nebo bloky pro neznáme (optimalizované) veli iny (c) p idáme omezení ve tvaru, nebo bin (volí se na stejném míst ) (d) v t²inou necháme zatrºenou volbu neomezené veli iny jsou nezáporné (nemusí se to jiº deklarovat v podmínkách) (e) a v okénku dole vybereme volbu Simplex LP - lineární programování. 10

2.3 Triky p i práci v EXCELu Blok bun k - taºení my²í nebo Shift ²ipla P emíst ní bloku (s Ctrl kopie) -uchopení za okraj (bu ky nebo bloku) a taºení. Vkopírování hodnoty do celého bloku - vytvo íme blok, zadáme hodnotu a Ctrl Enter. Maticové vzorce - provád jí operace (nej ast ji násobení) prvek po prvku. Zadávají se pomocí Ctrl Shift Enter. Výsledek m ºe být v jedné bu ce, nebo v bloku bun k. Blok je moºno zadat p edem (pak se objeví výsledky v celém bloku). Vzorec je moºno kopírovat se v²emi pravidly o posunu adres. Fixace adres (absolutní adresy) - zaxované adresy se p i kopírování neposouvají. Adresu xuje dolar p ed písmenem, íslem nebo obojím. Dolar p ed písmenem xuje adresu p i vodorovném pohybu, p ed íslem p i svislém pohybu a p ed obojím i ve vodorovném i svislém sm ru. Zadání dolar - automaticky zadáme dolary klávesou F4 ihned po vloºení adresy (jinak se musí adresa dát do bloku). Opakované stisknutí F4 provede: oba dolary, jen p ed íslem, jen p ed písmenem, ºádný dolar (atd.) Skalární sou in: =suma(a1:a10*b1:b10) + Ctrl Shift Enter ud lá maticový výpo et = i a ib i Sou in matice a vektoru - matice je B1:D10 a vektor A1:A10. Sou in je =suma(b1:d1*$a$1:$a$10) + Ctrl Shift Enter a rozkopírovat svisle. (Druhá adresa je absolutní.) 3 Úlohy I. 3.1 Optimální produkce Máme rozhodnout o mnoºství, ve kterém budou vyráb ny produkty A a B. K jejich výrob jsou zapot ebí dva drahé stroje jejichº vyuºití je omezeno. Úloha je zadána v tabulce Cílem je navrhnout maximální produkci. e²ení x 1 a x 2 - produkce výrobk A a B v tisících. Formulace úlohy je následující ƒas stroj pot ebný ƒas stroj Stroj na 1000 výrobk k vyuºití Produkt A Produkt B 1 4 6 24 2 4 2 12 x 1 + x 2 max 4x 1 + 6x 2 24 4x 1 + 2x 2 12 11

x 1 0, x 2 0 Pokra ování p íkladu Uvaºujme nyní ceny c 1 = 10 pro A a c 2 = 20 pro B. Chceme docílit maximálního zisku. e²ení Nové kriterium bude Dal²í pokra ování 10x 1 + 20x 2 max Firma podepsala dohodu s dodavatelem, ºe minimální produkce výrobk bude 1 tis. Náklady na výrobu jednotlivých výrobk jsou n 1 = 5 a n 2 = 10. Cílem je minimalizovat výdaje. e²ení Nové kritérium a dal²í omezení jsou 5x 1 + 10x 2 min x 1 1, x 2 1 3.2 Optimální produkce s omezenými zdroji Továrna s dv ma provozy produkuje výrobek A, který se prodává samostatn a nebo jako sou ást pro výrobek B. Oba výrobky pot ebují ur itou surovinu (S), jejíº zdroj je omezen. Specikace úlohy je dána v tabulce Surovina + Spot eba K dispozici + A pro B na jednotku produkce celkem Produkt A Produkt B S 5 2 3000 A 0 1 Cena produktu 5 10 Dále stanovíme podmínku, ºe minimální po et samostatných výrobk musí být 250 ks. Poºadujeme a) maximální produkci, b) maximální zisk. e²ení x 1 je po et kus A a x 2 pro B. Kriterium pro maximální produkci x 1 + x 2 max, 12

a pro maximální zisk Podmínky 5x 1 + 10x 2 max. 5x 1 + 2x 2 3000 x 1 x 2 250 x 1 0, x 2 0 Program: U1a_prod2Vyrobky.xlsx 13

3.3 Optimální produkce s výb rem surovin Továrna produkuje dva výrobky B 1 a B 2. Na výrobu B 1 pot ebuje látku L 1, na B 2 látku L 2. Tyto látky je moºno získat ze surovin A 1, A 2, A 3 a A 4, které je t eba zakoupit. Kaºdá surovina dá jiné mnoºství látek. Specikace je v tabulce Výrobek Surovina látka Pot ebné mnoºství A 1 A 2 A 3 A 4 látky L 1 (pro B 1 ) 2 10 5 20 1000 L 2 (pro B 2 ) 10 1 1 2000 Cena za surovinu 20 10 5 10 Chceme minimalizovat výdaje. e²ení x 1 x 4 jsou navrhovaná mnoºství zakoupených surovin. Platí 20x 1 + 10x 2 + 5x 3 + 10x 4 min 2x 1 + 10x 2 + 5x 3 + 20x 4 1000 10x 1 + 5x 2 + x 3 2000 Program: U1c_prodSeSurovinou.xlsx 14

3.4 Optimální krmná sm s Pro výkrm jednoho kusu dobytka je zapot ebí 2.5 kg krmné sm si a 240 g protein na den. Pro krmení se pouºívá píce a kuku ice. Cena jednoho kg píce je 0.50 K a kuku ice 0.40 K. Dal²í specikace jsou v tabulce Krmivo krmná sm s/kg krmiva proteiny/kg krmiva cena K /kg Píce (x 1 kg) 1 0.4 0.5 Kuku ice (x 2 kg) 1.25 0.08 0.4 Pot ebné mnoºství 2.5 0.24 Poºadujeme minimální výdaje. e²ení x 1 zna í mnoºství píce, x 2 mnoºství kuku ice. Platí 0.5x 1 + 0.4x 2 min 15

x 1 + 1.25x 2 2.5 0.4x 1 + 0.08x 2 0.24 nebo = v omezení (nechceme zbytky). Program: U1e_KrmnaSmes.xlsx 3.5 Optimální ezání ty í Máme ty e dlouhé 7.4 m a chceme z nich na ezat kusy dlouhé 150, 210 a 290 cm. Jednotlivé délky pot ebujeme v mnoºství 1000 ks. Jak máme postupovat, kdyº chceme mít minimální odpad? e²ení Nejprve stanovíme tzv. ezné plány Délka Plán ezání 1 2 3 4 5 6 290 1 2-1 - 1 210 - - 2 2 1 1 150 3 1 2-3 1 Odpad 0 10 20 30 80 90 16

Ozna íme x 1 x 6 jsou mnoºství ezání podle jednotlivých plán. Úloha je: 10x 2 + 20x 3 + 30x 4 + 80x 5 + 90x 6 min x 1 + 2x 2 + x 4 + x 6 = 1000 2x 2 + 2x 4 + x 5 + x 6 = 1000 3x 1 + x 2 + 2x 3 + 3x 5 + x 6 = 1000. Program: U1f_RezaniTyci.xlsx 4 Úlohy II. 4.1 Minimální tok náklad v síti Minimum Cost Network Flow Problem (MCNF) Je dána sí (souvislý, orientovaný, acyklický graf s jedním vstupem a jedním výstupem) s m uzly a n hranami. Písmenem b i ozna íme zásobu v uzlu i, tj. výstupní tok - vstupní tok. Jestliºe je b i > 0 jedná se o zásobovací uzel (zdroj), pro b i < 0 jde o uzel s poºadavkem (cíl) a pro b i = 0 máme uzel pr jezdní. S kaºdou hranou je spojena dolní mez L ij a horní mez U ij toku 17

touto hranou. Cílem je ur it velikosti tok x ij v jednotlivých hranách grafu tak, aby náklady na p epravu byly minimální, jestliºe jednotková cena transportu po hran ij je c ij. P edpokládáme, ºe platí i b i = 0 (vyrovnané zdroje a poºadavky). e²ení Pomocí LP c ij x ij min ij x kj x ik = b k, k j i x ij U ij, x ij L ij, 0 L ij U ij, i, j Poznámka c a x jsou tvercové matice kde ádky i sloupce jsou indexovány uzly. Prvky t chto matic odpovídají hranám grafu. V t²inou ne v²echny hrany existují. Neexistující hrany vyplníme nulami. Jako m nící se bu ky v Excelu zadáme jen existující hrany - nejlépe vytaºené mimo do vektoru. Pro kriterium i podmínky pr toku m ºeme pouºít cele matice (i prvky odpovídajícími neexistujícím hranám - jsou to nuly). Podmínky pr toku konstruujeme jakoby pro diagonálu matice x a d láme sum( ádek)-sum(sloupec), kde v ádcích xujeme (F4) písmenka a ve sloupcích ísla adres. Pak lze kopírovat. V²e je vid t v Excelu. P íklad 1 Máme následující graf (vlevo), který doplníme zp tnou hranou s nulovým ohodnocením (vpravo) 4 4 2 2 zdroj 1 5 7 cíl zdroj 1 5 7 cíl 3 3 6 6 Uzel 1 je zdrojový se zásobou 150 jednotek toku, uzel 7 je cílový, tj. poºadující 150 jednotek toku. Ostatní uzly jsou p epravní. Ceny za p epravu jednotky toku jsou dány v tabulce (matici) 5 21 14 18 32 9 7 12 31, 29 35 0 18

hrana (7, 1) je zp tná s cenou 0. Jednotlivé toky budou 0 x 12 x 13 0 0 0 0 0 0 0 x 24 x 25 x 26 0 0 0 0 x 34 x 35 x 36 0 0 0 0 0 0 0 x 47 0 0 0 0 0 0 x 57 0 0 0 0 0 0 x 67 x 71 0 0 0 0 0 0 kde nepouºitým hranám jsme p i adili 0. Stejn tak doplníme 0 do matice ohodnocení. Minimální kapacitu hran zadáme jako 0, maximální 80. Potom úloha má tvar: Kritérium 7 i=1 j=1 7 c ij x ij min Podmínky konstruujeme pro kaºdý uzel. Jdeme po diagonále - to je k, a se teme k-tý sloupec a ode teme k-tý ádek. To se rovná b k, k = 1, 2,, 7. Protoºe jsme doplnili 0, m ºeme d lat sou ty vºdy od 1 do 7., x ki i j x jk = b k coº se týká uzlu k a íká, ºe to co p iteklo minus to co odteklo je to, co z stalo (ve skladu). V Excelu: jsme na k-tém prvku diagonály matice x a d láme: sou et prvk v k-tém ádku minus sou et prvku v k-tém sloupci rovná se b k. Dal²í podmínky jsou x ij L, x ij U, p ípadn x ij 0, x ij U. Pozor Bude-li zadána p íli² malá maximální kapacita hran, bude problém ne e²itelný. Program: U2a_tokMinimCesta.xlsx 19

P íklad 2 Je dáno 9 uzl podle obrázku zdroj cíl zdroj zdroj umely uzel cíl zdroj zpetna hrana se ty mi zdroji a dv ma poºadavky. Silnými ²ipkami je vyzna en výsledek. Detaily zadání jsou v programu. 20

Poznámka Graf sám nemá jeden výstupní uzel. Aby se mohla zavést zp tná hrana, je t eba denovat pomocný uzel s b = 0 do n hoº vedou pomocné hrany s nulovým ohodnocením. Ten se pak propojí se vstupem 1 (protoºe ten vede dále do ostatních vstup ). Program: U2b_tokMinimCesta2.xlsx 4.2 P i azovací dopravní problém Je dáno m zdrojových uzl, kaºdý s s i, i {1 m} = M jednotkami zboºí, a n cílových uzl, kaºdý s d j, j {1 n} = N jednotkami poºadavk. c ij, i M, j N je jednotková cena za p evoz zboºí po hran i, j a x ij je mnoºství zboºí p epravené po této hran. Chceme dosáhnout minima náklad za p evoz. Úloha c ij x ij min ij x ij = s i, i j x ij = d j, j i x ij 0, ij 21

Lze e²it p ímo pomocí LP. Program: U2c_prirazProbl.xlsx 4.3 P i azovací dopravní problém (pomocí MCNF) Jedná se jiné e²ení úlohy dopravního problému. s i jsou zdroje, d i poºadavky. e²ení Lze e²it jako MCNF vhodnou úpravou grafu: 1. P i adíme b i = s i, i M a b m+j = d j, j N. 2. Vytvo íme pomocné uzly 0 a m + n + 1 s nulovými cenami, zdroji i poºadavky (tohle je v textu ale nechodí to: zdroji b 0 = i b i, i M a poºadavky b m+n+1 = j b j, j N). 3. Uzel 0 spojíme hranami s uzly 1 aº m a uzly m + 1 aº m + n spojíme s uzlem m + n + 1. Tyto hrany mají nulová ohodnocení. 22

4. Zavedeme zp tnou hranu (m + n + 1, 0) rovn º s nulovým ohodnocením. 5. Ignorujeme horní meze tok (horní meze m ºeme a nemusíme zadat). Na takto modikovaný graf aplikujeme MCNF. Modikovaný graf je na obrázku. b > 0 b < 0 1 m + 1 0 m + n + 1 i b i j b j m m + n Program: U2d_prirazProblMCNF.xlsx (velké - prohlédnout v Excelu) 4.4 Nejkrat²í cesta grafem (pomocí MCNF) Je dána ohodnocená sí, kde ohodnocení c ij interpretujeme jako délky jednotlivých hran (i, j). Úkol je najít nejkrat²í cestu ze zdrojového uzlu 1 do cílového uzlu m. e²ení Pomocí MCNF, kde uvaºujeme o p eprav jednotky toku z uzlu 1 do uzlu m. Poloºíme U ij = 1, ij a b i = 0, i. P íklad Uvaºujeme graf z obrázku 23

2 5 8 1 3 6 10 9 4 7 Hledáme nejkrat²í cestu z uzlu 1 do uzlu 7 (nebo z uzlu s b i = 1 do uzlu s b j = 1) a vyuºíváme k tomu metodu MCNF. Údaje a e²ení jsou v programu. Program: U2e_minCestaMCNF.xlsx 24

25

26

5 Celo íselné programování Úloha IP je vlastn úloha LP, roz²í ená o celo íselné prom nné. Tedy c x min Ax 0 x R 0, x I I, x B {0, 1} kde x R je mnoºina reálných prom nných, x I jsou celo íselné prom nné a x B jsou celo íselné prom nné pouze s dv ma hodnotami 0 a 1. P íklad Chceme investovat $14000. Na²li jsme ty i investi ní p íleºitosti. Akce 1 vyºaduje investici ve vý²i $5000 a má o ekávaný výnos $8000; Akce 2 vyºaduje $7000 a má hodnotu $11000; Akce 3 vyºaduje $4000 má hodnotu $6000; Akce 4 poºaduje $3000 má hodnotu $4000. Do kterých akcí bychom m li vloºit své peníze tak, aby se dosáhlo maximálního p íjmu? e²ení Denujeme vektor prom nných x = [x 1, x 2, x 3, x 4 ], x i {0, 1}. Jednotlivé prom nné mají význam rozhodnutí: x i = 1 znamená akci i realizovat; x i = 0 nerealizovat. Úloha má tvar 8x 1 + 11x 2 + 6x 3 + 4x 4 max 5x 1 + 7x 2 + 4x 3 + 3x 4 14 x binární e²ení je x 1 = 0, x 2 = x 3 = x 4 = 1 s kriteriem 21. Úloha v Excelu je následující Z_vyberInvestAkce.xlsx 27

Poznámka P itom je ale z ejmé, ºe nejvýnosn j²í akce je akce 1. Pom ry výnos / investice je 1.6, 1.57, 1.5, 1.33 M li bychom tedy sázet p edev²ím na akci 1. Kdyº zru²íme podmínku na binární veli iny, dostaneme jako e²ení x 1 = 2.8 a ostatní nula s kriteriem 22.4. e²ení pro x celo íselné (ale neomezené) je x 1 = 2, x 3 = 1, ostatní nula s kriteriem 22. Z uvedeného je patrné, ºe za e²ení IP není vhodné vzít zaokrouhlené e²ení LP. e²ení 2, 0, 0, 0 dá kriterium 16. Tento fakt, který je velmi významný, budeme demonstrovat na 2D p ípadu, který lze pozorovat gracky. Uvaºujme úlohu x 1 + 9x 2 max x 1 + 10x 2 30 3x 1 + 5x 2 25 kterou e²íme pro spojité x, zaokrouhlené x a celo íselné x. Výsledky jsou 28

Spojité: x = [4, 2.6] s kriteriem 27.4 Zaokrouhlené: x = [4, 2] s kriteriem 22 Celo íselné: x = [0, 3] s kriteriem 27 Odtud je z ejmé, ºe IP e²ení je daleko blíºe LP e²ení neº zaokrouhlené. Situace je na obrázku kde plné áry jsou hranice omezení, árkované áry ukazují vrstevnice kriteria které nar stá sm rem nahoru. Programy: IP_rounding.xlsx a IP_rounding.sce. Poznámka Krom uvedeného je moºno uvaºovat je²t dal²í podmínky: 1. Lze ud lat nejvý²e 2 investice xi 2 2. Jestliºe chceme realizovat akci 2, musíme rovn º realizovat akci 4 x 2 x 4 0 3. Jestliºe budeme realizovat akci 1, potom akci realizovat 3 nelze x 1 + x 3 1 Takovými omezeními se budeme zabývat dále. 29

6 Formulace úloh celo íselného programování 6.1 Speciální typy omezení Pomocí celo íselných, zejména binárních, veli in je moºno modelovat daleko ²ir²í okruh omezení neº v klasickém LP. Omezení na výb r Pro binární x modelujeme: bude spln no alespo k, práv k, nejvý²e k xi k, xi = k, xi k kde x i = [1, 1,, 1] [x 1, x 2,, x n ]. Aktivace omezení Uvaºujme binární prom nnou y {0, 1} a podmínku a x b. S pomocí velkého ísla B (v t²ího neº maximální hodnota a x) zkonstruujeme novou podmínku Tato podmínka íká a x By b. 30

je-li y = 1, pak p vodní podmínka je vºdy spln na (podmínka je vy azena) je-li y = 0, pak p vodní podmínka z stává v platnosti. Hodnota binární prom nné y tedy aktivuje nebo deaktivuje p vodní podmínku a x b. Výb r z mnoºiny omezení Uvaºujme dv podmínky a 1x b 1 a a 2x b 2 s maximálními hodnotami levých stran B 1 a B 2. Poºadujeme, aby alespo jedna podmínka byla vºdy platná. Modelujeme takto nebo zavedeme y 1 = y y 2 = 1 y a a 1x B 1 y 1 b 1 a 2x B 2 y 2 b 2 y 1 + y 2 1 a 1x B 1 y b 1 a 2x B 2 (1 y) b 2 31

Poznámka Podmínka y 1 + y 2 1 íká, ºe p ipou²tíme následující moºnosti: y 1 = 1 a y 2 = 0 nebo y 1 = 0 a y 2 = 1 nebo y 1 = 0 a y 2 = 0. Tedy alespo jedna podmínka se vºdy poºaduje. Stejn lze modelovat práv 1 nebo nejvý²e jedno. Jednodu²e lze roz²í it na k podmínek. Implikované omezení Máme dv omezení a 1 x > b 1 a a 2 x b 2. Chceme aby platilo: kdyº platí první omezení, pak vyºadujeme platnost i druhého (kdyº první neplatí, tak nic). Jde o implikaci. Pro tu platí A B A B A A B 0 0 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 0 1 Odtud vidíme, ºe (A B) je stejné jako (A B), p i emº alternativu umíme - viz p edchozí odstavec. 32

(i) Modelujeme: a 1 x b 1 Mz 1 a pro z = 0 se podmínka vyºaduje (pro z = 1 je vy azena). Opa ná podmínka, tedy (a 1 x b 1 ) bude a 1 x b Mz 1 a op t, pro z 1 = 0 se vyºaduje, pro z 1 = 1 je vy azena. (ii) Alternativa dvou podmínek a 1 x > b 1 a a 2 x b 2 se modeluje a 1 x b 1 Mz 1 a 2 x b 2 Mz 2 z 1 + z 2 1 (iii) Implikace ale je A B - první podmínka se bere opa ná. Bude tedy a 1 x b 1 Mz 1 a 2 x b 2 Mz 2 z 1 + z 2 1 Program Omezení na oblasti Nech omezení tvo í k r zných oblastí (disjunktních nebo i p ekrývajících se). Jednotlivé oblasti jsou popsány pomocí lineárních omezení první oblast a 1x b 1, a 2x b 2, a 3x b 3 33

druhá oblast a 4x b 4, a 5x b 5 Chceme zaru it, ºe optimální bod e²ení bude leºet alespo v jedné z oblastí. Modelujeme takto první oblast a 1x B 1 y 1 b 1, a 2x B 2 y 1 b 2, a 3x B 3 y 1 b 3 druhá oblast a 4x B 4 y 2 b 4, a 5x B 5 y 2 b 5 atd., a k y j 1 j=1 kde napravo v poslední podmínce je po et oblastí z výroku aspo v jedné oblasti a y j {0, 1}. Kaºdá rovnice má svoje B i (maximální hodnota levé strany) ale spole nou veli inu y j, j = 1, 2,, k, kde k je celkový po et oblastí. 34

6.2 Aproximace kriteriální funkce Aproximace skokové funkce V n kterých p ípadech pot ebujeme modelovat nelineární funkci (nap. skok v po átku). Nap íklad náklady na výrobu ur itého výrobku, pokud výrobu budeme realizovat, se sestává z po áte ní investice a dále z investice do kaºdého výrobku. Pokud se výroba nerealizuje, jsou v²echny náklady nula. Jde tedy o následující funkci Modelujeme ji takto { 0 pro x = 0 K + c x pro x 0. Ky + c x min x By x 0 y {0, 1} Pro y = 0 dostáváme x = 0 a kriterium je také 0; pro y = 1 je x B a kriterium je K + c x. Tedy to, co jsme namodelovali je binárn lineární a kopíruje na²i formulaci úlohy (nelineární funkci náklad ). Aproximace po ástech lineární funkce M jme po ástech lineární funkce - nap. tu, co je na obrázku 35

f(x) 3 1 4 0 4 10 15 x První úse ka je na intervalu (0, 4) a má sklon 4, druhá na (4, 10) se sklonem 1 a t etí na (10, 15) se sklonem 3. Prom nnou x vyjád íme jako sou et t í len x = δ 1 + δ 2 + δ 3 tak, ºe platí 0 δ 1 4 délka prvního úseku Funkci f (x) vyjád íme takto 0 δ 2 6 délka druhého úseku 0 δ 3 5 délka t etího úseku f (x) = 4δ 1 + δ 2 + 3δ 3. Musíme ale zajistit, aby se δ i zapínala postupn a aby niº²í δ i drºely svou maximální hodnotu. Tedy, aby p i pr chodu hodnot x od 0 do 15 bylo δ 1 δ 2 δ 3 x 4 x 0 0 0 x (4, 10) 4 x 4 0 x > 10 4 6 x 10 To zaru í následující podmínky s dv ma novými binárními prom nnými w 1 a w 2 4w 1 δ 1 4 6w 2 δ 2 6w 1 0 δ 3 5w 2 w 1, w 2 {0, 1} Skute n, pro w 1 = w 2 = 0 dostaneme 0 δ 1 4, δ 2 = 0, δ 3 = 0 pro w 1 = 1 a w 2 = 0 je δ 1 = 4, 0 δ 2 6, δ 3 = 0 a nakonec pro w 1 = w 2 = 1 máme δ 1 = 4, δ 2 = 6, 0 δ 3 5. 36

Poslední varianta w 1 = 0 a w 2 = 1 je nep ípustná a podmínka 6w 2 δ 2 6w 1 6 0 ji vylu uje. Stejnou konstrukci lze provést i pro více interval, pomocí podmínek kde L j je délka j-tého segmentu. L j w j δ j L j w j 1, Poznámka Aproximaci nelineární funkce lze provést jejím nahrazením po ástech lineární funkcí a postupovat podle p edchozího. Aproximace sou inu v kriteriu Máme x 1, x 3, x 3 - binární veli iny, y (0, u) spojitá nebo diskrétní veli ina. Kriterium: x 1 x 2 x 3 y. Zavedeme novou prom nnou w = x 1 x 2 x 3 y rovnou sou inu a k ní podmínky w 0 w ux j w y ( ) w u xi 3 + y 37

Poznámka 1. Obecn m ºe být v sou inu k binárních prom nných. Potom poslední podmínka bude ( ) u xi k + y w 0 2. Pokud by n která binární prom nná byla umocn ná, lze mocninu vynechat, protoºe platí x k = x pro x {0, 1}. Analýza úlohy Dále budeme uvaºovat sou in binární veli iny x {0, 1} a reálné veli iny y (0, u). Kriterium bude J = xy. Op t zavedeme w = xy a podmínky Pro x = 0 bude w ux w 0 w y w u (x 1) + y w 0, w 0, w y, w u + y kde první dv podmínky denují w = 0 a druhé dv jsou automatiky spln ny. Pro x = 1 bude w u, w 0, w y, w y 38

kde t etí a tvrtá podmínka dává w = 1 a první dv jsou spln ny. Nebo Pro y binární bude w 0, w x, w y, w x + y 1 po prozkoumání zjistíme, ºe skute n je w = xy. Sou in jen binárních veli in Uvaºujme nejd íve jen dv binární veli iny x 1 a x 2 a kriterium J = x 1 x 2. Odpovídající podmínky pro w = x 1 x 2, w {0, 2} jsou P 1 : 2w x 1 + x 2 P 2 : w + 1 x 1 + x 2 Analýza úlohy Skute n : pro x 1 + x 2 = 0 je 2w 0 w 0 w + 1 0 w 1 a tedy w ( 1, 0) a pro w {0, 1} je w = 0. Pro x 1 + x 2 = 1 je 2w 1 w 0.5 w + 1 1 w 0 odkud w (0, 0.5) a tedy w = 0 Pro x 1 + x 2 = 2 je 2w 2 w 1 w + 1 2 w 1 a tedy w = 1. To p esn kopíruje sou in x 1 x 2. Realizace minimaxu v kriteriu Máme k pracovních tým pracujících na r zných úkolech. Chceme navrhnout podmínky práce tak, aby práce v²ech tým byla skon ena co nejd íve, p i emº kaºdý tým musí ukon it v²echny své úkoly. Hledáme tedy minimum pro nejdel²í dobu pln ní úkol - coº je úloha minimaxu. Modelujeme takto: p 1 (x), p 2 (x),, p k (x) jsou doby trvání práce jednotlivých tým (v závislosti na optimalizované veli in x). Denujeme novou prom nnou q (trvání nejdel²í práce) a zavedeme podmínky p 1 q p 2 q p k q 39

a jako kriterium vezmeme q min Program pro 3 týmy a 5 úkol je 7 e²ení úlohy celo íselného programování 7.1 Metoda v tví a mezí Je to metoda pro e²ení celo íselného programování, zaloºená na opakovaném e²ení pomocí simplexové metody s postupným p idáváním omezení. Metoda konverguje v kone ném po tu krok. i kdyº doba konvergence m ºe být dlouhá. Metoda v tví a mezí (Branch and Bound - B&B) postupuje takto: 1. Vezme optimální LP e²ení - nap. [12.5, 7.5] a tento bod vyjme z p ípustné oblasti bu na ose x nebo y (p jdeme p es x). Tj. p idá dv nová omezení x 12 a x 13. Tím vzniknou dv nové p ípustné oblasti - podoblasti p vodní, kde jiº optimální bod LP neleºí, ale ºádné celo íselné e²ení není vyjmuto. 2. Znovu e²íme LP úlohu (simplex) pro p vodní úlohu + dv nová omezení. 3. Dostaneme optimální e²ení. Pokud je celo íselné, je konec. Pokud není, pokra ujeme stejn jako p ed tím (s necelo íselnou sloºkou optimálního e²ení). 4. Takhle stále p idáváme nová omezení, dokud nedostaneme celo íselné e²ení. e²ení budeme demonstrovat na dvou následujících p íkladech. 40

P íklad 1 2x 1 + 1x 2 max 2x 1 + x 2 11 Lp e²ení dá [1.57, 3.14], J = 33 V tvíme nejd íve podle podle x 1, potom podle x 2 x 2 1 [1, 2] J = 21 x 1 1 [1, 4.5] x 2 5 [2, 1] J = 12 41

P íklad 2 x 1 + 10x 2 max 4x 1 + x 2 0.5 3x 1 + x 2 10 LP e²ení [1.36, 5.93] J = 60.64 x 2 4 [1, 4] J = 41 x 1 1 [1, 4.5] x 2 5 XXX x 1 2 [2, 4] J = 42 7.2 Metoda se ných nadrovin Tato metoda vychází z optimální simplexové tabulky pro LP. Tuto tabulku p epí²eme do rovnic. V nich eliminujeme zlomkové koecienty na pravou stranu a vzniklé rovnice se zlomkovými koecienty znovu e²íme simplexovou tabulkou. Kon íme, kdyº jako výsledek obdrºíme celá ísla. Poznámka (geometrická interpretace) K soustav omezení p idáváme dal²í lineární omezení, která vylou í optimální (zlomkové) LP e²ení ale zachovají v²echna p ípustná celo íselná e²ení. 42

Postup budeme ilustrovat na p íklad. J = 5x + 8y max x + y + s 1 = 6 5x + 9y + s 2 =45 x, y, s 1, s 2 0 LP e²ení tohoto problému dá simplexovou tabulku Tu p epí²eme následujícím zp sobem ( z) 5 4 s 1 3 4 s 2 = 41 1 4 x + 9 4 s 1 1 4 s 9 2 = 4 y 5 4 s 1 + 1 4 s 15 2 = 4 a to tak, ºe Platí: ( z) 2s 1 s 2 +42 = 3 4 3 4 s 1 1 4 s 2 x +2s 1 s 2 2 = 1 4 1 4 s 1 3 4 s 2 y 2s 1 3 = 3 4 3 4 s 1 1 4 s 2 vlevo jsou jen celo íselné koecienty, vpravo jdou zlomky, a to tak, ºe absolutní hodnoty jsou kladné, koecienty u prom nných jsou záporné. 1. Pro celo íselné e²ení je jsou levé strany celá ísla. 2. Pro s 1, s 2 0 jsou pravé strany men²í nebo rovny konstantám. 3. Protoºe konstanty jsou kladné zlomky, musí platit ºe pravé strany jsou 0 (a tedy i levé). M ºeme proto psát 3 4 3 4 s 1 1 4 s 2 0 3 4 3 4 s 1 1 4 s 2 + s 3 = 0 1 4 1 4 s 1 3 4 s 2 0 1 4 1 4 s 1 3 4 s 2 + s 4 = 0 poslední je stejná jako první 43

To jsou podmínky, které p idáme k p vodní úloze a op t e²íme pomocí simplexové tabulky. Celo íselné e²ení kon í výpo et, pro necelo íselné vyjdeme z nové simplexové tabulky a pokra- ujeme stejn. Program: cuts.lpx První e²ení z tabulky sestavíme nová omezení pro s 1 a s 2 a p epo ítáme na xa y. Ta jsou 2x + 3y 15 4x + 7y 35. První omezení dá rovnou výsledek [0, 5] 44

Kdyº zkusíme druhé omezení, dostaneme [ 7 3, ] 11 3 a museli bychom v hledání dál pokra ovat. 45

8 Úlohy III. 8.1 Úloha o batohu Jedná se o jednu ze základních úloh z t ídy investi ního rozhodování, viz úvod do IP. Formulace základní úlohy o batohu je následující: Jedeme na výlet stopem a balíme si s sebou v ci do batohu. Objem (nosnost) batohu je omezený hodnotou M. Jednotlivé v ci mají sv j objem (váhu) m i a d leºitost d i a celkem jich je n, tedy i = 1, 2,, n. Chceme s sebou vzít co nejvíce d leºitých v cí tak, aby nebyla p ekro ena kapacita batohu. Matematická formulace je následující: n d i x i max i=1 n m i x i M i=1 x i {0, 1}, i Základní úloha: C:\_Skola\LinearProgramming_II\Kapsack0.lpx Více v cí najednou: C:\_Skola\LinearProgramming_II\Kapsack1.lpx 46

Excel: U3a_batoh_IP.xlsx 8.2 Výb r z mnoºiny investic Máme moºnost investovat do n kolika z ²esti akcí. Kaºdá akce má n jaké nan ní nároky (investice) a p inese ur itý zisk. Máme omezené nan ní moºnosti. Specikace je dána v tabulce. akce 1 2 3 4 5 6 nance k dispozici nároky 6 9 8 4 9 5 30 výnosy 15 24 25 10 25 20 X Jak akce vybrat, aby celkový zisk byl maximální a abychom nep ekro ili nance, které máme k dispozici. e²ení Ze zadání máme c = [15, 24, 25, 10, 25, 20] A = [6, 9, 8, 4, 9, 5] Zavedeme binární vektor x - x i {0, 1} p i emº 0 znamená i-tou akci nerealizujeme, 1 znamená realizujeme. Úloha potom je c x max Ax 30 x {0, 1} 47

Excel: U3b_vyberAkci.xlsx, U3c_investicniRozhodnuti.xlsx 9 Úlohy IV. 9.1 Problém obchodního cestujícího (TSP) Asymetrický TSP Uvaºujeme n m st spojených navzájem cestami. Kaºdou cestu uvaºujeme jako jednosm rnou, obousm rné jsou dv jednosm rky tam a zp t. Kaºdá z jednosm rek má svou délku (obecn se délka cesty tam nerovná délce zp t). Cílem je najít cestu, kterou má projít obchodní cestující tak, aby kaºdé m sto nav²tívil práv jednou a vrátil se do stejného m sta, ze kterého vy²el. Celá cesta má být nejkrat²í moºná. Úlohu budeme demonstrovat pro 5 m st. 48

2 d 12 d 21 4 1 x 13 x 31 5 3 d ij 0 zna í délky cest, x ij {0, 1} znamená x ij = 1 cestující p jde z m sta i do m sta j ; x ij = 0 nep jde. Pro nejkrat²í cestu musí platit J = d ij x ij min ij Omezení 1: m sta se nesmí opakovat kaºdé m sto má jen jednu vstupní cestu a jednu výstupní, tj. x ij = 1, j výstupní i x ij = 1, i j vstupní Omezení 2: cesta se nesmí skládat z odd lených cykl - to je problematický a e²í se r zn. My budeme postupovat následovn : Sestavíme v²echny k-krokové cykly, k = 2, 3, 4,, n 2 1 a sou et x ij v nich musí být k 1. Pro n = 5 bude k = 2, 3 a tedy 2-krokové: 12, 13, 14, 15, 23, 24, 25, 34, 35, 45 (a vºdy návrat do prvního, tedy 121, 131, ) 3-krokové: (dohromady jich bude 2 ( 5 3) = 2 10 = 20) z uzlu 1: 123, 124, 125, 134, 135, 145, z uzlu 2: 234, 235, 245, z uzlu 3: 345 (a návrat do po. uzlu - na konci bude je²t íslo z po átku); A odzadu: 1 Ve skute nosti sta í kontrolovat cykly od 2 do [ ] n 2, kde [ ] zna í celou ást ísla. Je to proto, ºe kdyº se v grafu vytvo í cyklus, musí být zbylé uzly také v cyklu - pro kaºdý uzel poºadujeme jednu vstupní a jednu výstupní hranu. Pro cyklus s k kroky, kde k > [ ] [ n 2 tedy bude v grafu je²t jeden cyklus s délkou l n ] 2, který jsme jiº kontrolovali mezi cykly 2,3, [ ] [ n 2. Vedle cyklu s délkou v t²í neº n ] 2 m ºe být také více dal²ích cykl, ty ale budou také pat it mezi jiº kontrolované. 49

z uzlu 1: 1321, 1421, 1521, 1431, 1531, 1541 z uzlu 2: 2432, 2532, 2542 z uzlu 3: 3543 Návod Za ínáme od 1 a postupn zvy²ujeme 123 Pak zv t²ujeme poslední aº do n 123, 124, 125 Pak zvý²íme p edposlední, následuje o jedna v t²í 134 A zase zvy²ujeme poslední. A tak dál Program: U4b_tsp_nesymetric.xlsx Obchodní cestující - 5 měst podmínka na "každé město jednou" kritérium x 1 2 3 4 5 J = 12 1 0 0 1 0 0 1 2 1 0 0 0 0 1 3 0 0 0 1 0 1 4 0 0 0 0 1 1 5 0 1 0 0 0 1 pro sestavení kritéria 1 1 1 1 1 tady je možno zadat apriorní hodnoty x (i když to prakticky nemá význam) 12 13 14 15 21 23 24 25 31 32 34 35 41 42 43 45 51 52 53 54 x 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 d 5 1 8 4 2 9 1 1 1 8 7 6 4 9 6 1 3 1 6 5 Tady se zadávají podmínka na cykly délky cest 2 II III nemusí se hlídat vůbec 2 1 9 1 protože mohou být jen v kombinacích 9 1 4 4 1 s dvoukrokovými - a ty už se hlídají 5 8 6 1 0 1 0 1 4 1 5 0 8 7 3 5 0 1 6 6 1 3 1 0 1 dvou-krokové Hlídáme 2 a 3-krokové cykly. 2-krokové jsou OK ihned. 3-krokové bychom museli hlídat tam i zpět, ale v kombinaci s 3-krokovým by musel být 2-krokový a ty se hlídají. Takže zpět nemusíme! Dokonce 3-krokové nemusíme vůbec!!! Poznámka V podmínkách na cykly musíme hlídat, aby nenastala situace, ºe se v grafu utvo í dva odd lené cykly. 1-krokové cykly nemohou nastat nikdy, protoºe smy ky v grafu jsou vylou eny (prvky na diagonále inciden ní matice se neuvaºují). 2-krokové cykly jsou tam a zp t - obsahují tedy oba 50

cykly (po sm ru i proti sm ru). 3-krokové cykly bychom museli hlídat v obou sm rech - tedy po sm ru i proti sm ru - tj. to, co jsme vý²e uvedli nap. 1231 a je²t zp t 1321. Protoºe ale 3-krokový cyklus muºe být v kombinaci jedin s 2-krokovým (a ty jsou jiº hlídány) nemusíme je jiº v na²em p ípad (5 m st) v bec hlídat! Obecn : sta í kontrolovat cykly od 2 do [ ] n 2, kde [ ] zna í celou ást ísla. Je to proto, ºe kdyº se v grafu vytvo í cyklus, musí být zbylé uzly také v cyklu - pro kaºdý uzel poºadujeme jednu vstupní a jednu výstupní hranu. Pro cyklus s k kroky, kde k > [ ] n 2 tedy bude v grafu je²t jeden cyklus s délkou l [ ] [ n 2, který jsme jiº kontrolovali mezi cykly 2,3, n ] 2. Vedle cyklu s délkou v t²í neº [ ] n 2 m ºe být také více dal²ích cykl, ty ale budou také pat it mezi jiº kontrolované. Symetrický TSP Na rozdíl od p edchozího jsou v²echny cesty obousm rné. Inciden ní matice je horní trojúhelník. Kontrola na kaºdé m sto jednou se provádí takto: Pro kaºdý prvek inciden ní matice na diagonále (to je to m sto) se se tou prvky nad ním a vpravo od n ho. Tento sou et (po et cest ve trase, které jím prochází) musí být 2. Kontrola cykl : 2-krokové cykly se nemusí kontrolovat, protoºe x je zadáno jako binární (cyklus by dal 2, protoºe jdeme tam a zp t po stejné cest ), k-krokové cykly sta í kontrolovat jen po sm ru - proti sm ru jsou stejné. Program: U4a_tsp_symetric.xlsx 51

x 1 2 3 4 5 J 1 0 0 1 0 1 25 2 0 0 0 1 1 3 0 0 0 1 0 4 0 0 0 0 0 5 0 0 0 0 0 na diag. a pod nejsou přípustné stavy (hrany nejsou orientované - trojúhelníky) c 1 2 3 4 5 1 5 6 8 3 2 9 8 5 3 3 7 4 6 5 Podmínka 1: každý uzel 2 hrany 2 2 2 2 2 každý uzel má právě dvě hrany (vezmu pole (i,i) a sčítám nad ním a vpravo od něj) Podmínka 2: cykly - je dána tím, že x je binární Tady se zadávají délky cest 2 8 5 5 4 8 1 9 6 3 6 3 5 7 3 10 Úlohy V. Následující p íklady pat í do skupiny úloh o mnoºinách: Set covering, Set partitioning a Set packing. Jejich obecné formulace jsou následující: Set covering c x min Ax 1 x (0, 1) 52

Set partitioning c x min Ax = 1 x (0, 1) Set packing c x max Dále uvedem p íklady na jednotlivé typy úloh. Ax 1 x (0, 1) 10.1 Problém pokrytí oblastí (Set covering) Uvaºujme m sto, které se skládá z n kolika oblastí. Ty jsou zachyceny na obrázku 2 7 1 4 6 3 5 Kaºdé oblasti je p i azeno íslo. Ve m st chceme vybudovat poºární stanice. Jedna stanice je schopna pokrýt oblast, ve které je postavena a v²echny sousední oblasti (tj. takové, co sousedí hranou). Jak postavit stanice, aby jich bylo co nejmén? e²ení Oblastem p i adíme binární prom nné x 1, x 2,, x 7. Tyto prom nné budou mít hodnotu 1, kdyº stanice bude, jinak 0. Kriterium: minimální sou et x Podmínky: oblast 1 a její sousedi musí mít alespo jednu stanici; a dále pro 2,, 7. Sousední oblasti jsou 53

1,2,3 2,1,3,4,6,7 3,1,2,4 4,2,3,5 5,4,6 6,2,5,7 7,2,6 Úloha tedy bude x i min i x 1 + x 2 + x 3 1 x 1 + x 2 + x 3 + x 4 + x 6 + x 7 1 x 1 + x 2 + x 3 + x 4 1 x 2 + x 3 + x 4 + x 5 1 x 4 + x 5 + x 6 1 x 2 + x 5 + x 6 + x 7 1 x 2 + x 6 + x 7 1 Program: U5a_pozarniStanice.xlsx x 1 x 7 {0, 1} 54

10.2 Kuch ka a recepty (Set packing) ƒekáme neohlá²enou náv²t vu a chceme ji pohostit. Ve spíºi máme 7 ingrediencí do jídla a dal²í uº nesta íme po ídit. Nevíme ale, jaké chut náv²t va má, a proto chceme p ipravit co nejv t²í po et jídel. Máme kucha ku a z ní jsme vybrali jídla, která obsahují ty ingredience, které máme k dispozici. Ingredience ale nelze d lit; kaºdou lze pouºít jen jednou. O íslujeme-li ingredience 1,2,,7, pak vybraná jídla podle kucha ky pot ebují jídlo ingredience A 1,2 B 1 C 2,5,6 D 3,7 E 2,7 F 3,5 G 4,5,6 Která z jídel m ºeme p ipravit, aby jich bylo co nejvíce? 55

Program: U5b_recepty.xlsx e²ení: A, C, D. 10.3 Obsazování leteckých tras posádkami (Set partitioning) Letecká doprava zaji² uje spojení mezi vybranými m sty. Tyto spoje nazveme etapy letu. Jeden let (s jednou posádkou letadla) letí po ur itá trase a na ní m ºe realizovat n kolik etap (pokud se mezi n vejde povinný odpo inek posádky a údrºba letadla). Tak nap íklad let 10.00 z New Yorku do Chicaga a let 18.00 z Chicaga do Los Angeles je p íkladem takových etap, které mohou tvo it jednu trasu s jednou posádkou. Máme n etap a m posádek. Nejd íve sestavíme matici a, která bude svými sloupci odpovídat jednotlivým etapám. V ádcích bude obsahovat v²echny moºné trasy, sestavené z etap, které lze realizovat v jedné trase - etapy budou vyzna eny jedni kou ve sloupci p íslu²né etapy. Cílem je ze v²ech moºných tras vybrat ty, které obsadíme posádkou (budou realizovány) tak, aby 56

1. ºádná etapa nez staly neobsazena, 2. náklady na realizaci tras byly minimální. Ozna íme x j {0, 1} indikuje, zda trasa j bude realizována (tj. obsazena posádkou), c j je cena za pronajatí posádky na trase j (realizaci trasy j), a i,j {0, 1} ozna uje (jedni kou), ºe etapa i je za azena do trasy j Úloha je formulována takto n c j x j min j=1 n a i,j x j = 1, i = 1, 2,, m j=1 x j {0, 1}, j = 1, 2,, n kde kriterium vyjad uje minimalizaci náklad, a první podmínka vyjad uje skute nost, ºe kaºdá etapa má práv jednu posádku. Poznámka Jestliºe p ipustíme, ºe lenové n které posádky mohou ur itou trasu let t jako pasaºé i (p eváºí se na místo svého letu na dal²í etap ), bude mít tato podmínka tvar n a i,j x j 1, i j=1 P íklad 1 Uvaºujeme 4 m sta: A, B, C, D a lety mezi t mito m sty podle následujícího obrázku B 1 4 6 A 2 D 5 3 7 C 57

Jednotlivé ²ipky na obrázku zna í etapy. Jde o to, jak z nich sestavit trasy (obsazené posádkou) tak, aby pronájem posádek by minimální a v²echny etapy byly obslouºeny. Trasy jsou p edem denovány bu jako samostatné lety nebo jsou sestaveny z navazujících etap a jsou denovány maticí a. Zde vybereme trasy takto a = 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 Nejd íve uvaºujeme v²echny etapy jako samostatné lety, potom n které trasy sestavené z vhodných etap. Ceny posádek vezmeme p ibliºn rovny po tu etap v p íslu²né trase a trochu p ihodíme na samostatné lety, protoºe tam musí posádka dojet z domova. Ceny tedy budou c = [15, 12, 16, 14, 18, 12, 16, 22, 25, 24, 27, 26] Stavový vektor bude mít 12 prvk, které budou bu 0 nebo 1. Úloha má tvar n c j x j min j=1 n a j x j = 1 j=1 x j {0, 1} e²ení úlohy je x = [0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0] tedy budou realizovány lety (podle matice a) trasa 1 etapa 2 trasa 2 etapa 1, etapa 4, etapa 7 trasa 3 etapa 3, etapa 5, etapa 6 Tedy, v²echny etapy jsou obsazeny, poletí 3 posádky a doufejme, ºe cena za posádky je minimální. 58

P íklad 2 Jiný p íklad je realizován v programu: U5c_planovaniLetu.xlsx 11 Úlohy VI. V n kterých úlohách je kombinace spojité optimalizace s výb rem. Ukáºeme dva takové p íklady. 59

11.1 Problém rozmíst ní sklad Máme m sklad a n zákazník. Máme obstarat a dovézt zboºí, které poºadují zákazníci. Jde o to, rozhodnout, ze kterého skladu a kolik daného zboºí nakoupit a p evézt jednotlivým zákazník m tak, aby cena za nákup a p evoz byla minimální. Ty sklady, pro které se rozhodneme, musíme pronajmout, a to n co stojí. y i ozna uje, zda sklad i je pronajatý (y i = 1) nebo není (y i = 0). f i je cena pronájmu i-tého skladu. x i,j je mnoºství zboºí, zakoupeného ve skladu i a p evezeného zákazníkovi j. c i,j je cena za nákup jednotky zboºí x i,j. d j poºadavek j-tého zákazníka. Úlohu formulujeme takto j=1 m n m c i,j x i,j + f i y i min i=1 j=1 m x i,j = d j, i=1 n n x i,j y i j=1 d j x i,j 0, i=1 j = 1 n 0, i, j y i {0, 1}, i i = 1 m Vysv tlení: kriterium: celková cena za zboºí a dovoz + poplatky za pronájem sklad ; spln ní poºadavk zákazník ; odb r jen z pronajatých sklad - podmínka je n n x i,j y i d j, i j=1 tedy, pro i takové, ºe y i = 0 dostaneme j=1 n x i,j 0 j=1 a protoºe x i,j jsou nezáporné, znamená to, ºe k ºádnému odb ru z t chto sklad nedo²lo, pro y i = 1 máme n n x i,j j=1 tedy celkové mnoºství zboºí, odebrané ze skladu i je men²í nebo rovno celkovému poºadavku v²ech zákazník (rovno, kdyby se bralo v²echno z jednoho skladu). 2 j=1 2 d j je z ejm to nejmen²í velké íslo, aby se podmínka vºdy splnila. d j 60

11.2 Vy²et ení infek ního onemocn ní V n místech se vyskytlo infek ní onemocn ní. K dispozici je m léka ských tým, které mohou onemocn ní pro²et it. Tým i {1, 2,, m} bude místo j {1, 2,, n} vy²et ovat t ij hodin. Kaºdý tým m ºe obslouºit 0, 1 nebo 2 místa. Jestliºe má tým obslouºit je²t druhé místo (z místa k do místa l), musí se po ítat s dobou p ejezdu d kl. Jakmile jsou v²echna místa pro²et ena, m ºe se s infekcí za ít bojovat. Cílem je navrhnout plán vy²et ování tak, aby cela akce byla co nejkrat²í. e²ení Denujeme veli inu x ij {0, 1} s hodnotou 1 jestliºe tým i bude vy²et ovat místo j a 0, kdyº nebude. Omezení - kaºdé místo bude nav²tíveno práv jednou x ij = 1, j - ºádný tým nenav²tíví více neº dv místa x ij 2, i i j - x je binární x ij {0, 1}, i, j Kriterium - vy²et ení v²ech míst t ij x ij, i - cestování d kl x ik x il, i j k,l; k l { Optimalizace: min max i j t ijx ij + } k,l; k l d klx ik x il Pro kaºdou konstelaci je jeden tým nejdel²í a tohle maximum chceme minimalizovat. Tohle ale neumíme (i) nelinearita v sou inu, (ii) minimax. (i) nelinearita Zavedeme novou prom nnou w ikl = x ik x il s podmínkami w ikl x ik, w ikl 0, w ikl x il, w ikl x ik + x il 1. 61

P íklad 2 týmy (i=1,2), 3 místa (j=1,2,3) stav x = [ ] x11 x 12 x 13 x 21 x 22 x 23 binární asy t = [ ] t11 t 12 t 13 t 21 t 22 t 23 veli ina w (cesta tam a zp t je stejn dlouhá) [ ] w1;12 w w = 1;13 w 1;21 w 1;23 w 1;31 w 1;32 w 2;12 w 2;13 w 2;21 w 2;23 w 2;31 w 2;32 délky p ejezdu d = [ 8, 12, 8, 14, 12, 14 ] Podmínky 1. w i;kl 0, i, k, l 2. w i;kl x ik 0, w i;kl x il 0, i, k, l 3. w i;kl x ik x il + 1 0 4. j t ijx ij + kl; k l d klw i;kl q 0, i kde q je nová veli ina s významem doba trvání nejdel²í akce. Úloha q min Program: U6a_infekce_male.xlsx, U6b_infekce_vetsi.xlsx 62

63

Po ítám, ºe tady asi bude konec (jestli ne d ív). Zbytek je ne ukázku a podobn 64

12 Úlohy VII. 12.1 Problém po²tovních box Firma dostává platby od zákazník. Tyto platby jdou ze 4 míst: západu - 70tis., st edozápadu - 50tis., východu - 60tis. a jihu - 40tis. v pr m ru za den. Pro výb r t chto plateb chce otev ít pobo ky (po²tovní boxy). Pro tyto boxy p ichází v úvahu následující místa: Los Angeles, Chicago, New York a Atlanta. Za otev ení boxu v kaºdém z t chto míst zaplatí stejnou ástku 50tis. Po et dní, ve kterých budou platby realizovány, je dán v tabulce z / do L.A. Chicago New York Atlanta západ 2 6 8 8 st edo západ 6 2 5 5 východ 8 5 2 5 jih 8 5 5 2 Po dobu, kdy je platba uskute n na ale není proplacena jsou peníze pro rmu nedostupné a rma ztrácí úrok 20% z jejich p ípadné investice. Které z pobo ek má rma otev ít, aby co nejvíce u²et ila? e²ení Ztráty z nerealizovaných investic jsou dány v tabulce (v tis.) z / do L.A. Chicago New York Atlanta západ 28 84 112 112 st edo západ 60 20 50 50 východ 96 60 24 60 jih 64 40 40 16 kde nap. západ New York je 8 70 0.2 = 112 (dny, platba, procenta). Zavedeme binární veli iny y j 1-pobo ka j bude otev ena, a x ij 1-oblast i posílá platby na pobo ku j. Kriterium 28x 11 + 84x 12 + 112x 13 + 112x 14 + 60x 21 + + 16x 44 + +50y 1 + 50y 2 + 50y 3 + 50y 4 min Omezení x ij = 1 i j kaºdá oblast musí být p i azena jedné pobo ce. x ij 4y j i j neotev ené pobo ce se nesmí nic posílat (4 je tam proto, aby pro y = 1 podmínka vypadla - velké íslo) 65

x ij, y j {0, 1} i, j Program: U7a_postovniBoxy.xlsx 13 Zobecn ní TSP 13.1 Nejkrat²í cesta grafem V bec nejkrat²í cesta v²emi uzly bez ohledu na to, kde za íná a kde kon í. e²ení Vezmeme graf a p idáme jeden uzel. Z n j vedeme cesty tam a zp t do v²ech uzl grafu s nulovou délkou. Na tento roz²í ený graf aplikujeme TSP a to, co vznikne v p vodním grafu je nejkrat²í cesta. 66

puvodni graf 0 0 0 0 novy uzel Program: Z_TSP_asym6Ham1.xlsx 67

13.2 Nejkrat²í cesta z daného uzlu Po áte ní uzel cesty je dán. Hledáme nejkrat²í cestu z tohoto uzlu. e²ení Vezmeme po áte ní uzel, a hranám, které do n j vedou dáme nulová ohodnocení. Na tento upravený graf aplikujeme TSP. pocatecni uzel 0 0 0 0 0 carkovane hrany jsou pridany Program: Z_TSP_asym6Ham2.xlsx 68

13.3 Nejkrat²í cesta s více náv²t vami m st Úloha je dána jako asymetrický TSP, ale p ipou²tíme více náv²t v jednotlivých m st. 69

e²ení Místo matice vzdáleností jednotlivých dvojic uzl (ohodnoceni hran grafu) zadáme matici nejkrat²ích vzdáleností mezi jednotlivými dvojicemi uzl. M ºe být: bu je vzdálenost spojovací hrany nejmen²í, pak ji necháme. Nebo existuje krat²í cesta, pak ji p epí²eme. Nebo hrana neexistuje, pak ji p idáme s ohodnocením nejkrat²í vzdálenosti mezi t mito uzly. Poznámka Matice nejkrat²ích vzdáleností se velice jednodu²e spo te pomocí operace minimální s ítání matic. Tato operace funguje podobn jako sou in matic, ale místo násobení prvk a s ítání se provádí sou et prvk a vezme se minimum, tedy (A B) i,j = min {a i,k + b k,j } k Pro výpo et nejkrat²ích vzdáleností napí²eme matici ohodnocení grafu D, kde na diagonále jsou nuly a mimodiagonální prvky ozna ují orientovanou vzdálenost mezi uzly. Kde hrana nevede, dáme velké íslo. A provedeme D 2 = D D D 3 = D D 2 D n 1 = D D n 2 kde D 2 spo te v²echny nejkrat²í dvou-krokové cesty, D 3 t í-krokové atd. aº n 1-krokové, kde n je po et uzl (m st). Protoºe nejdel²í cesta grafem má n 1 hran, obsahuje matice D n 1 nejkrat²í cesty mezi jednotlivými uzly grafu. Na upravenou matici (nyní minimálních vzdáleností mezi uzly grafu) aplikujeme TSP. Dostaneme navazující dvojice uzl, které v p vodním grafu vyzna íme. Kaºdou hranu ale musíme prozkoumat. Pokud je délka hrany minimální délkou, pak ji na cest ponecháme. Pokud není minimální, musíme hledat, po kterých hranách minimální cesta mezi aktuální dvojicí bod vede a místo aktuální hrany vyzna íme tuto minimální cestu. Tím se m ºe stát, ºe n kterým uzlem projdeme vícekrát, ale m ºeme dostat krat²í cestu neº kdyº trváme na podmínce jediného pr chodu kaºdým m stem. Program: Z_TSP_asym5vice.xlsx (veliké - podívat se v Excelu) 13.4 Nejkrat²í cesta klastry uzl Uvaºujeme graf jehoº vrcholy jsou pokryty k klastry tak, ze klastry jsou disjunktní a ºádný vrchol není nepokryt. Uzly jsou spojeny orientovanými hranami s ohodnocením, reprezentujícím délku hrany. Úkol je projít v²emi uzly tak, ºe po vstupu do uzlu se musí projít v²emi uzly tohoto grafu a cesta je nejkrat²í moºná. e²ení Vyjdeme z existujícího grafu a hranám uvnit klastru p idáme velké ohodnoceni M. Dále aplikujeme TSP. Program: Z_TSP_asym6klast.xlsx 70