TOKY V GRAFU MAXIMÁLNÍ TOK SÍTÍ, MINIMALIZACE NÁKLADŮ SPOJENÝCH S DANOU HODNOTOU TOKU, FIXNÍ NÁKLADY, PŘEPRAVNÍ (TRANSHIPMENT) PROBLÉM.

Podobné dokumenty
OKRUŽNÍ A ROZVOZNÍ ÚLOHY: OBCHODNÍ CESTUJÍCÍ. FORMULACE PŘI RESPEKTOVÁNÍ ČASOVÝCH OKEN

ÚLOHA ČÍNSKÉHO LISTONOŠE, MATEMATICKÉ MODELY PRO ORIENTOVANÝ A NEORIENTOVANÝ GRAF

8.1.2 Vzorec pro n-tý člen

Budeme pokračovat v nahrazování funkce f(x) v okolí bodu a polynomy, tj. hledat vhodné konstanty c n tak, aby bylo pro malá x a. = f (a), f(x) f(a)

8.1.2 Vzorec pro n-tý člen

Tento materiál vznikl díky Operačnímu programu Praha Adaptabilita CZ.2.17/3.1.00/33254

5. Lineární diferenciální rovnice n-tého řádu

4EK311 Operační výzkum. 4. Distribuční úlohy LP část 2

2 IDENTIFIKACE H-MATICE POPISUJÍCÍ VEDENÍ Z NAMĚŘENÝCH HODNOT

3. Charakteristiky a parametry náhodných veličin

MATICOVÉ HRY MATICOVÝCH HER

k(k + 1) = A k + B. s n = n 1 n + 1 = = 3. = ln 2 + ln. 2 + ln

2. Vícekriteriální a cílové programování

6. KOMBINATORIKA Základní pojmy Počítání s faktoriály a kombinačními čísly Variace

SPOTŘEBITELSKÝ ÚVĚR. Na začátku provedeme inicializaci proměnných jejich vynulováním příkazem "restart". To oceníme při opakovaném použití dokumentu.

MATEMATICKÁ INDUKCE. 1. Princip matematické indukce

Regrese. Aproximace metodou nejmenších čtverců ( ) 1 ( ) v n. v i. v 1. v 2. y i. y n. y 1 y 2. x 1 x 2 x i. x n

8.1.3 Rekurentní zadání posloupnosti I

Komplexní čísla. Definice komplexních čísel

n 3 lim 3 1 = lim Je vidět, že posloupnost je neklesající, tedy z Leibnize řada konverguje, ( 1) k 1 k=1

S k l á d á n í s i l

Posloupnosti a číselné řady. n + 1. n n n n. n n n. = lim. n2 sin n! lim. = 0, je lim. lim. lim. 1 + b + b b n) = 1 b

1.3. POLYNOMY. V této kapitole se dozvíte:

Aritmetická posloupnost, posloupnost rostoucí a klesající Posloupnosti

je konvergentní, právě když existuje číslo a R tak, že pro všechna přirozená <. Číslu a říkáme limita posloupnosti ( ) n n 1 n n n

1. Nakreslete všechny kostry následujících grafů: nemá žádnou kostru, roven. roven n,

1. K o m b i n a t o r i k a

8.2.1 Aritmetická posloupnost

je konvergentní, právě když existuje číslo a R tak, že pro všechna přirozená <. Číslu a říkáme limita posloupnosti ( ) n n 1 n n n

Kapitola 5 - Matice (nad tělesem)

4EK212 Kvantitativní management 4. Speciální úlohy lineárního programování

7 VYUŽITÍ METOD OPERAČNÍ ANALÝZY V TECHNOLOGII DOPRAVY

3. Lineární diferenciální rovnice úvod do teorie

NMAF061, ZS Zápočtová písemná práce skupina A 16. listopad dx

1 PSE Definice základních pojmů. (ω je elementární jev: A ω (A ω) nebo (A );

u, v, w nazýváme číslo u.( v w). Chyba! Chybné propojení.,

FUNKCÍ JEDNÉ REÁLNÉ PROMĚNNÉ PRVNÍ DIFERENCIÁL

Diskrétní matematika

NEPARAMETRICKÉ METODY

3. část: Teorie hromadné obsluhy. Ing. Michal Dorda, Ph.D.

Národní informační středisko pro podporu kvality

Petr Šedivý Šedivá matematika

DISTRIBUČNÍ ÚLOHY. Cílem pokrývacího problému je vybrat firmy tak, aby byly co nejlevněji pokryty všechny úkoly.

66. ročník matematické olympiády III. kolo kategorie A. Liberec, března 2017

Název školy: Gymnázium Jana Nerudy, škola hl. města Prahy. Předmět, mezipředmětové vztahy: matematika a její aplikace

1 Uzavřená Gaussova rovina a její topologie

8.2.1 Aritmetická posloupnost I

6. Posloupnosti a jejich limity, řady

Pravděpodobnostní modely

Užitečné zdroje příkladů jsou: Materiály ke cvičením z Kalkulu 3 od Kristýny Kuncové:

Užití binomické věty

DURACE A INVESTIČNÍ HORIZONT PŘI INVESTOVÁNÍ DO DLUHOPISŮ

8.2.6 Geometrická posloupnost

Spojitost a limita funkcí jedné reálné proměnné

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

Náhoda. Pravděpodobnost výhry při sázce na barvu: p = 18/37 = 0,486 Průměrný zisk při n sázkách částky č: - n.č + 2.č.n.p = n.č.

Sekvenční logické obvody(lso)

Identifikátor materiálu: ICT 2 59

Aplikace marginálních nákladů. Oceňování ztrát v distribučním rozvodu

Permutace s opakováním

Přednáška č. 2 náhodné veličiny

VLASTNOSTI ÚLOH CELOČÍSELNÉHO PROGRAMOVÁNÍ

3. cvičení 4ST201 - řešení

Funkce. RNDr. Yvetta Bartáková. Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou

f x a x DSM2 Cv 9 Vytvořující funkce Vytvořující funkcí nekonečné posloupnosti a0, a1,, a n , reálných čísel míníme formální nekonečnou řadu ( )

Lineární regrese ( ) 2

!!! V uvedených vzorcích se vyskytují čísla n a k tato čísla musí být z oboru čísel přirozených.

3.4.7 Můžeme ušetřit práci?

2,3 ČTYŘI STANDARDNÍ METODY I, ČTYŘI STANDARDNÍ METODY II

Vzorový příklad na rozhodování BPH_ZMAN


P. Girg. 23. listopadu 2012

O Jensenově nerovnosti

DERIVACE FUNKCÍ JEDNÉ REÁLNÉ PROM

Předmět: SM 01 ROVINNÉ PŘÍHRADOVÉ KONSTRUKCE

1. Číselné obory, dělitelnost, výrazy

Matematika 1. Katedra matematiky, Fakulta stavební ČVUT v Praze. středa 10-11:40 posluchárna D / 13. Posloupnosti

Notice:Jagran Infotech Ltd. Printed by Fontographer 4.1 on 6/3/2003 at 7:12 PM

Vlastnosti posloupností

10.3 GEOMERTICKÝ PRŮMĚR

M - Posloupnosti VARIACE

1. Vztahy pro výpočet napěťových a zkratových

Základy Teorie Grafů. Pavel Strachota, FJFI ČVUT

9 Stupně vrcholů, Věta Havla-Hakimiho

Kombinatorika a grafy I

8. cvičení 4ST201-řešení

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY ÚNORA 2018

Lineární programování

Přijímací řízení akademický rok 2013/2014 Bc. studium Kompletní znění testových otázek matematika

4 DOPADY ZPŮSOBŮ FINANCOVÁNÍ NA INVESTIČNÍ ROZHODOVÁNÍ

6. FUNKCE A POSLOUPNOSTI

Cvičení 6.: Výpočet střední hodnoty a rozptylu, bodové a intervalové odhady střední hodnoty a rozptylu

Přijímací řízení akademický rok 2012/2013 Kompletní znění testových otázek matematické myšlení

Správnost vztahu plyne z věty o rovnosti úhlů s rameny na sebe kolmými (obr. 13).

Permutace s opakováním

11. přednáška 16. prosince Úvod do komplexní analýzy.

Přednáška 7, 14. listopadu 2014

Pravděpodobnost a aplikovaná statistika

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY BŘEZNA 2018

23. Mechanické vlnění

Transkript:

TOKY V GRAFU MAXIMÁLNÍ TOK SÍTÍ, MINIMALIZACE NÁKLADŮ SPOJENÝCH S DANOU HODNOTOU TOKU, FIXNÍ NÁKLADY, PŘEPRAVNÍ (TRANSHIPMENT) PROBLÉM. Graf je útvar, terý je možo zázorit obrázem v roviě pomocí bodů (uzly grafu) a spojic mezi body (hray grafu). Hray v grafu mohou být orietovaé ebo eorietovaé. Orietovaý graf obsahuje a rozdíl od eorietovaého grafu orietovaé hray. Cesta v grafu je posloupost orietovaých hra, při teré vždy ásledující hray začíají v uzlu, v ěmž očí předcházející hraa. Sled v grafu je posloupost vrcholů taová, že mezi aždými dvěma po sobě jdoucími je hraa. Cylus (uzavřeá cesta) je taová cesta, terá začíá a očí v témže uzlu. Souvislý graf je graf, u terého mezi všemi dvojicemi uzlů existuje alespoň jeda cesta. Nesouvislý graf je graf, u terého eexistuje alespoň jeda cesta mezi všemi dvojicemi uzlů. Úplý graf je taový graf, ve terém je aždá dvojice uzlů spojea hraou. Strom je taový graf, terý eobsahuje žádý cylus. Podgraf původího grafu je graf, terý vzie tím, že vyecháme z grafu ěteré uzly a příslušé hray těchto uzlů. Síť je graf, terý je oečý, souvislý, orietovaý, acylicý a ohodoceý, v ěmž existuje jede oečý a jede počátečí uzel. ZDROJ: WIKIPEDIA.ORG

HLEDÁNÍ MAXIMÁLNÍHO TOKU Máme graf s jedím počátečím uzlem (zdroj) a jedím ocovým uzlem (místo určeí). Záme apacitu hra ij mezi aždou dvojicí uzlů i, j. Naším cílem je maximalizovat celový to tímto grafem. Stačí tedy maximalizovat to, co celem vyteče z prvího uzlu, ebo to, co celem přiteče do posledího uzlu, protože to odpovídá celovému tou grafem. Zavedeme jedu proměou xij, terá ozačuje objem tou z uzlu i do uzlu j. z = j(1,j)εh x 1j = j(j,)εh x j max Sažíme se maximalizovat buď celový to z prvího uzlu, ebo celový to do posledího uzlu. Sčítáme přes všechy hray, teré vedou z prvího uzlu, resp. do posledího uzlu. j(i,j)εh x ij (,i)εh x i = 0 i 1, (1) Pro aždý uzel romě prvího a posledího musí platit, že to, co do i-tého uzlu celem vteče, se musí rovat tomu, co z ěj celem vyteče. Sčítáme přes všechy hray, teré vedou z daého uzlu a do ěj. 0 x ij ij (i,j) εh (2) Pro aždou hrau mezi dvojicí uzlů i, j musí platit, že jí eproteče více, ež oli je její apacita. Uvazujme orietovay graf s 6 uzly (a az f). V asledujici tabulce jsou uvedey apacity existujících hra. Jay je maximali to timto grafem? Spojeí Kapacita Spojeí Kapacita a,b 2 c,f 4 a,c 3 d,c 5 a,d 4 d,e 9 b,d 1 d,f 8 b,e 4 e,f 3 ; model: sets: uzel/a,b,c,d,e,f/; to(uzel,uzel)/a b,a c,a d,b d,b e,c f,d c,d e,d f,e f/: x,apacita; edsets! výčet hra; data: apacita = 2 3 4 1 4 4 5 9 8 3; eddata max = @sum(to(i,j) i#eq#1: x(i,j));!dybychom epoužili výčet hra, pa podmiu zapíšeme jao @sum(uzel(j): x(1,j), ale poud zadáváme hray výčtem, pa musíme v podmíách pracovat s tou možiou, pro iž je teto výčet zadá; @for(uzel(i) i#ne#1#and#i#ne#6: @sum(to(i,j): x(i,j)) = @sum(to(j,i): x(j,i))); @for(to: x<=apacita); ed Zadáí Řešeí Celovy to je 9.

HLEDÁNÍ NEJLEVNĚJŠÍHO TOKU Máme graf s jedím počátečím uzlem (zdroj) a jedím ocovým uzlem (místo určeí). Záme apacitu hra ij mezi aždou dvojicí uzlů i, j. Zároveň záme álady cij spojeé s jedotou tou hraou i, j. Naším cílem je zajistit požadovaou hodotu celového tou T0 s co ejižšími álady. Zavedeme jedu proměou xij, terá ozačuje objem tou z uzlu i do uzlu j. z = i j(i,j)εh c ij x ij mi Sažíme se miimalizovat celové álady spojeé s toem. j(i,j)εh x ij (,i)εh x i = 0 i 1, (1) Pro aždý uzel romě prvího a posledího musí platit, že to, co do i-tého uzlu celem vteče, se musí rovat tomu, co z ěj celem vyteče. Sčítáme přes všechy hray, teré vedou z daého uzlu a do ěj. 0 x ij ij (i,j) εh (2) Pro aždou hrau mezi dvojicí uzlů i, j musí platit, že jí eproteče více, ež oli je její apacita. j(1,j)εh x 1j T 0 (3) To, co dohromady vyteče z prvího uzlu (tedy zároveň i celový průto grafem) musí být větší ebo rovo požadovaé hodotě celového tou, Uvazujme graf z předchozího priladu. Navíc zame pro azdou hrau alady a jedotu tou. Chceme, aby celovy to byl alespoň 9. Jae budou miimali alady? Spojeí Kapacita Nalady Spojeí Kapacita Nalady a,b 2 5 c,f 4 8 a,c 3 4 d,c 5 2 a,d 4 6 d,e 9 1 b,d 1 6 d,f 8 6 b,e 4 7 e,f 3 2 ; model: sets: uzel/a,b,c,d,e,f/; to(uzel,uzel)/a b,a c,a d,b d,b e,c f,d c,d e,d f,e f/: x,apacita,alady; edsets data: apacita = 2 3 4 1 4 4 5 9 8 3; alady = 5 4 6 6 7 8 2 1 6 2; T = 9; eddata mi = @sum(to: x*alady); @sum(to(i,j) i#eq#1: x(i,j))>=t; @for(uzel(i) i#ne#1#and#i#ne#6: @sum(to(i,j): x(i,j)) = @sum(to(j,i): x(j,i))); @for(to: x<=apacita); ed Zadáí Řešeí Miimali alady jsou 109.

MAXIMALIZACE TOKU PŘI ZADANÝCH NÁKLADECH Máme graf s jedím počátečím uzlem (zdroj) a jedím ocovým uzlem (místo určeí). Záme apacitu hra ij mezi aždou dvojicí uzlů i, j. Zároveň záme álady c ij spojeé s jedotou tou hraou i, j. Naším cílem je maximalizovat to grafem, ale epřeročit přitom povoleé álady C 0. Zavedeme jedu proměou x ij, terá ozačuje objem tou z uzlu i do uzlu j. z = j(1,j)εh max Sažíme se maximalizovat buď celový to z prvího uzlu x 1j j(i,j)εh x ij (,i)εh x i = 0 i 1, (1) Pro aždý uzel romě prvího a posledího musí platit, že to, co do i-tého uzlu celem vteče, se musí rovat tomu, co z ěj celem vyteče. Sčítáme přes všechy hray, teré vedou z daého uzlu a do ěj. 0 x ij ij (i,j) εh (2) Pro aždou hrau mezi dvojicí uzlů i, j musí platit, že jí eproteče více, ež oli je její apacita. i j(i,j)εh c ij x ij C 0 (3) Celové álady a to esmí přeročit povoleé álady. MAXIMALIZACE TOKU S FIXNÍMI NÁKLADY Máme graf s jedím počátečím uzlem (zdroj) a jedím ocovým uzlem (místo určeí). Záme apacitu hra ij mezi aždou dvojicí uzlů i, j. Zároveň záme fixí (apřílad ivestičí) álady cij a hrau mezi uzly i, j. To zameá, že poud tuto hrau použijeme, zaplatíme cij bez ohledu a objem tou touto hraou. Naším cílem je zajistit požadovaou hodotu celového tou T0 s co ejižšími álady. Zavedeme dvě proměé: - proměá xij, terá ozačuje objem tou z uzlu i do uzlu j. - biárí proměá yij, terá bude rova 1 v případě, že bude hraa mezi uzly i, j použita z = i j(i,j)εh c ij y ij mi Sažíme se miimalizovat celové álady spojeé s toem. j(i,j)εh x ij (,i)εh x i = 0 i 1, (1) Pro aždý uzel romě prvího a posledího musí platit, že to, co do i-tého uzlu celem vteče, se musí rovat tomu, co z ěj celem vyteče. Sčítáme přes všechy hray, teré vedou z daého uzlu a do ěj. 0 x ij ij y ij (i,j) εh (2) Pro aždou hrau mezi dvojicí uzlů i, j musí platit, že poud bude daá hraa použita, a tedy poud bude y ij rovo 1, eproteče jí více, ež oli je její apacita. V opačém případě jí eproteče ic, poěvadž pravá straa bude rova 0. j(1,j)εh x 1j T 0 (3) To, co dohromady vyteče z prvího uzlu (tedy zároveň i celový průto grafem) musí být větší ebo rovo požadovaé hodotě celového tou, y ij {0, 1} (i,j) εh (4) Bude hraa mezi uzly i,j použita? Poud by v předchozích modelech existovalo apacití omezeí uzlů (tz. může jimi protéct je určitý objem d j), pa přidáme podmíu: i(i,j)εh x ij d j j 1, Pro aždý z j uzlů romě prvího a posledího musí platit, že suma všeho, co do ěj přiteče, epřeročí jeho apacití omezeí.

VÍCEPRODUKTOVÉ TOKOVÉ ÚLOHY U víceprodutových úloh protéají grafem růzé produty 1,2 K, taže proměé mají tři idexy. Můžeme se apřílad sažit miimalizovat celové álady spojeé s toem všech produtů. Záme álady spojeé s jedotou tou produtu hraou ij: c ij. Taé záme požadovaý to produtu : T 0 Proměá x ij říá, jaý objem -tého produtu protéá hraou mezi uzly i, j. K z = c i j (i,j)εh =1 ij x ij mi Sažíme se miimalizovat celové álady spojeé s toem všech produtů. x j (i,j)εh ij x l (l,i)εh li = 0, i 1, (1) Pro aždý uzel romě prvího a posledího musí platit, že objem -tého produtu, terý do i-tého uzlu vteče, se musí rovat objemu -tého produtu, terý z ěj vyteče. Sčítáme přes všechy hray, teré vedou z daého uzlu a do ěj. Musí to platit pro aždý z produtů. K =1 x ij ij (i,j) εh (2) Pro aždou hrau mezi dvojicí uzlů i, j musí platit, že jí eproteče více, ež oli je její apacita. x 1j T 0 =1,2 K (3) Celový objem -tého produtu, terý dohromady vyteče j (1,j)εH x ij 0 = 1,2 K, (i,j) εh z prvího uzlu (tedy zároveň i celový průto -tého produtu grafem) musí být větší ebo rove požadovaé hodotě celového tou -tého produtu. (4) To bude ezáporý pro aždou hrau a produt. PŘEPRAVNÍ PROBLÉM (TRANSSHIPMENT PROBLEM) Uvažujme situaci, dy u aždého uzlu máme zadá parametr a i. Poud je ladý, je teto uzel dodavatelem (zdrojem), poud je záporý, je odběratelem (místem určeí), poud je rove 0, jde o průběžý uzel (přeladiště). Dále máme opět zadáu apacitu hray (i,j) ij a álady spojeé s jedotou tou c ij. Cílem je split požadavy odběratelů a epřeročit apacity dodavatelů při miimálích áladech spojeých s toem. Zavedeme jedu proměou xij, terá ozačuje objem tou mezi uzly i, j. z = i j(i,j)εh c ij x ij mi Sažíme se miimalizovat celové álady spojeé s toem. j(i,j)εh x ij (,i)εh x i = a i i (1) Pro aždý uzel musí platit, že to, co do i-tého uzlu vteče, míus to, co z ěj vyteče, se rová objemu zdrojů či požadavů daého uzlu. Sčítáme přes všechy hray, teré vedou z daého uzlu a do ěj. 0 x ij ij (i,j) εh (2) Pro aždou hrau mezi dvojicí uzlů i, j musí platit, že jí eproteče více, ež oli je její apacita.!miimalizujte celové álady spojeé s toem orietovaým grafem, terý má 6 uzlů ozačeých a, b, c, d, e, f. Spojeí mezi uzly, příslušé apacity hra a álady spojeé s jedotou tou raou jsou uvedeé v tabulce: Spojeí Kapacita Nálady Spojeí Kapacita Nálady a,b 10 5 c,e 7 6 a,c 10 10 c,f 5 9 a,d 12 20 d,c 3 12 b,e 11 11 d,f 9 17 c,d 3 12 e,f 18 8

Možství produtu, teré charaterizuje uzel je: a = 15, b = 0, c = 10, d = -5, e = 0, f = -20; model: sets: uzel/a,b,c,d,e,f/:produt; hraa(uzel,uzel)/a b,a c,a d,b e,c d,c e,c f,d c,d f,e f/: apacita,x,alady; edsets data: apacita=10 10 12 11 3 7 5 3 9 18; alady= 5, 10, 20, 11, 12, 6, 9, 12, 17, 8; produt=15 0 10-5 0-20; eddata mi = @sum(hraa: alady*x); @for(hraa: x<=apacita); @for(uzel(i): @sum(hraa(i,j): x(i,j)) - @sum(hraa(,i): x(,i)) = produt(i));!odto míus příto odpovídá požadavům ebo apacitám uzlů; ed Zdroj: Ig. Ja Fábry, Ph.D.: 4EK314 Disrétí modely Zadáí Řešeí

MINIMÁLNÍ KOSTRA (MINIMAL SPANNING TREE) Uvažujme graf s možiou uzlů V a možiou hra H. Cílem je ajít ostru tohoto grafu s miimálím ohodoceím hra, tz. G' = {V,H'}, H' ε H. Záme přitom álady spojeé s áladem a zřízeí (využití) jedotlivých hra. Úlohu převádíme a trasshipmet problem. Zavedeme dvě proměé: - biárí proměá x ij se rová 1 v případě, že je hraa (i,j) vybráa, jia 0 - proměá y ij je to hraou (i,j) Pricip řešeí si ejdříve uážeme a obrázu (model je íže vyřeše v Ligu). Uzel číslo 1 je uzlem, am vše poteče, ale z ěj ic evytéá. Je tedy odběratelem, odebere právě 1 hra, protože právě toli hra musí výsledý strom obsahovat, aby bylo všech uzlů propojeo. Každý ze zbylých uzlů je dodavatelem s apacitou 1, protože přidá do stromu jedu hrau. V ásledujícím stromu budou tedy proměé x 52, x 21, x 31, x 43 rovy 1, protože tyto hray budou využity. Zbylé proměé x budou rovy 0. Z proměých y ij budou eulové je y 52, y 21, y 31, y 43. Proměá y 43 se bude rovat jedé, protože do uzlu 4 ic evtelo, ale jeda hraa z ěj musí vytéct, jao oecoců z aždého uzlu romě prvího. Proměá y 31 se bude rovat dvěma, protože do uzlu přitel to o objemu jeda (1 hraa ze čtvrtého uzlu), což z ěj musí zase vytéct, ale zároveň se tomu musí přidat další hraa. Aalogicy se bude proměá y 52 rovat jedé a proměá y 21 dvěma. Celem do prvího uzlu přijde to o objemu 4, což odpovídá čtyřem hraám. z = i j(i,j)εh c ij x ij mi Sažíme se miimalizovat celové álady spojeé s toem. Nálady platíme pouze za hray (i,j), teré vybereme do stromu. j(i,j)εh y ij (,i)εh y i = 1 i V {1} (1) Pro aždý uzel musí platit, že počet hra, teré z ěj vytečou, míus počet hra, teré do ěj vtečou, se rová 1. Jia řečeo, aždý uzel přidá do stromu právě jedu hrau. Výjimou je prví uzel, am vše je vtéá, ale ic z ěj evytéá. 0 y ij ( 1)x ij (i,j) εh (2) Pro aždou hrau (i,j) musí platit, že poud bude vybráa, proteče jí ejvýše to o objemu 1, a poud vybráa ebude, eproteče jí ic. x 1j = 0 j V {1} (3) Z prvího uzlu žádá hraa evede. Je de facto ocovým uzlem, do ěhož hray směřují. j(i,j)εh x ij = 1 i V {1} (4) Z aždého uzlu romě prvího povede právě jeda hraa. x ij {0, 1} (i,j) εh (5) Bude hraa (i,j) použita?

!Najděte miimálí ostru grafu s pěti uzly, de álady a zřízeí hra jsou: C = 0 2 3 4 5 2 0 4 5 2 3 4 0 2 3 4 5 2 0 4 5 2 3 4 0. ; model: sets: uzel/1..5/; to(uzel,uzel): x,y,c;!x = bude hraa vybráa? y = oli poteče; edsets data: C = 0 2 3 4 5 2 0 4 5 2 3 4 0 2 3 4 5 2 0 4 5 2 3 4 0; eddata mi = @sum(to: x*c); @for(to: @bi(x)); @for(uzel(i) i#ne#1: @sum(uzel(j): x(i,j)) = 1);!z aždého romě 1.uzlu poteče právě 1 hraa; @for(to: y<=4*x); @for(uzel(i) i#ne#1: @sum(uzel(j): y(i,j)) - @sum(uzel(): y(,i)) = 1);!aždý uzel přidá do tou právě jedu hrau; @for(uzel(i) i#eq#1: @sum(uzel(j): x(i,j)) = 0); ed Zdroj: Ig. Ja Fábry, Ph.D.: 4EK314 Disrétí modely

MINIMÁLNÍ STEINERŮV STROM Cílem je podobě jao u miimálí ostry ajít co ejlevější podgraf, abychom zajistili propojeí uzlů. Rozdíl spočívá v tom, že je zde ale možost zapojit tzv. průběžé uzly (přeladiště), poud bude díy im propojeí levější. Sažíme se tedy propojit všechy ocové uzly se zdrojem (přes průběžé uzly ebo přímo) ta, aby álady byly miimálí. Pracujeme se třemi typy uzlů: zdroj (to ozačíme jao uzel 1), ocové uzly (ty ozačíme jao uzel 2, 3, p) přeladiště (průběžé uzly, pomocé staice, ústředy, ozačíme jao uzly p+1,p+2 ). Přitom záme jeda álady c ij a hrau (i,j), jeda álady a zřízeí ústředy (d j). Zavedeme tři proměé: - biárí proměá x ij se rová 1 v případě, že je hraa (i,j) vybráa, jia 0 - biárí proměá f i se rová 1 v případě, že je uzel i zahrutý, jia 0; to zameá, že pro ocové uzly a zdroj ji musíme pevě astavit a 1, zatímco u průběžých uzlů může abývat hodot 0, 1; - proměá y ij je to hraou (i,j) z = i=1 j=1 c ij x ij + i=1 d i f i mi Sažíme se miimalizovat celové álady spojeé s toem. Nálady platíme pouze za hray (i,j), teré vybereme do stromu (x ij = 1). K tomu avíc platíme álady za aždé přeladiště teré chceme taé zahrout (f i = 1). j=1 y ij j=2 y ji = f i i = 2,3 (1) Pro aždý uzel musí platit, že počet hra, teré z ěj vytečou, míus počet hra, teré do ěj vtečou, se rová jedé, poud bude teto uzel zahrutý, a ule v opačém případě. Výjimou je prví uzel, am vše je vtéá, ale ic z ěj evytéá. 0 y ij ( 1)x ij i, j = 1,2 (2) Pro aždou hrau (i,j) musí platit, že poud bude vybráa, proteče jí ejvýše to o objemu 1, a poud vybráa ebude, eproteče jí ic. x 1j = 0 j = 2,3 (3) Z prvího uzlu žádá hraa evede. Je de facto ocovým uzlem, do ěhož hray směřují. j=1 x ij = f i i = 2,3 (4) Z aždého uzlu romě prvího povede právě jeda hraa, poud bude teto uzel zahrutý, a ula hra v opačém případě. x ij {0, 1} i, j = 1,2 (5) Bude hraa (i,j) použita? f i {0, 1} i, j = p+1, p+2 (6) Bude přeladiště zahruto? f i = 1 i, j = 1,2 p (7) Kocové zdroje a zdroj musí být zahruty.!optimalizujte projet abelových rozvodů mezi třemi uživateli této abelové sítě. Kromě uživatelů (teří tvoří jedu supiu uzlů) máme i dvě pomocé staice, teré vša eí uté zahrout do optimálího projetu a jeda ústředa. Nálady a zřízeí rozvodů jsou: 15, 3, 18, 4, 7, 9, 6, 7, 12 (2-1, 2-5, 3-1, 3-5, 3-6, 4-5, 4-6, 5-1, 6-1) a álady a zřízeí uzlu jsou: 0, 0, 0, 0, 30, 20. Miimalizujte celové álady. (poz.: f1,2,3,4 = 1); model: sets: uzel/1..6/:f,aladyuzel; to(uzel,uzel)/2 1,2 5,3 1,3 5,3 6,4 5,4 6,5 1,6 1/:x,y,aladyto; edsets data: aladyuzel=0 0 0 0 30 20;

aladyto=15 3 18 4 7 9 6 7 12; eddata mi = @sum(to: x*aladyto) + @sum(uzel: f*aladyuzel); @for(uzel(i) i#ge#5: @bi(f(i)));!přeladiště emusí být zapojea; @for(uzel(i) i#lt#5: f(i) = 1);!prví čtyři uzly jsou zapojey; @for(uzel(i) i#ne#1: @sum(to(i,j): x(i,j)) = f(i));!suma cest odpovídá 1, je-li uzel zapoje, jia 0; @for(uzel(i) i#ne#1: @sum(to(i,j): y(i,j)) - @sum(to(j,i) j#gt#1: y(j,i)) = f(i));!suma výtou míus suma přítou odpovídá 1, je-li uzel zapoje, jia 0; @for(to: y<=5*x);!ic eteče, eí-li hraa zapojea; @for(to: @bi(x)); ed Zadáí Řešeí Zdroj: Ig. Ja Fábry, Ph.D.: 4EK314 Disrétí modely ZDROJE: Ig. J. Fábry, Ph.D.: předášy 4EK314 Disrétí modely, 2011., VŠB 2008. Dostupé z: http://boos.fs.vsb.cz/systaal/texty/21.htm