5 Minimální kostry, Hladový algoritmus

Podobné dokumenty
5 Minimální kostry, Hladový algoritmus

5 Orientované grafy, Toky v sítích

10 Přednáška ze

Optimalizační Úlohy(FI: IA102)

4 Pojem grafu, ve zkratce

8 Přednáška z

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

H {{u, v} : u,v U u v }

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

Matematika III 10. přednáška Stromy a kostry

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Diskrétní matematika. DiM /01, zimní semestr 2015/2016

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Množiny, relace, zobrazení

Teorie grafů. Kostra grafu. Obsah. Radim Farana Podklady pro výuku pro akademický rok 2013/2014

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

Výroková a predikátová logika - III

3. Podmíněná pravděpodobnost a Bayesův vzorec

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2014

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

2 Důkazové techniky, Indukce

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

7 Konvexní množiny. min c T x. při splnění tzv. podmínek přípustnosti, tj. x = vyhovuje podmínkám: A x = b a x i 0 pro každé i n.

1 Linearní prostory nad komplexními čísly

Matematická analýza III.

Báze a dimenze vektorových prostorů

Vrcholová barevnost grafu

STROMY. v 7 v 8. v 5. v 2. v 3. Základní pojmy. Řešené příklady 1. příklad. Stromy

Kreslení grafů na plochy Tomáš Novotný

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

6 Simplexová metoda: Principy

GRAFY A GRAFOVÉ ALGORITMY

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

10 Podgrafy, isomorfismus grafů

8 Rovinnost a kreslení grafů

9 Kolmost vektorových podprostorů

Lineární algebra : Lineární prostor

Úvod do teorie her

letní semestr Katedra pravděpodobnosti a matematické statistiky Matematicko-fyzikální fakulta Univerzity Karlovy Matematická statistika vektory

4EK311 Operační výzkum. 5. Teorie grafů

Graf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.

1 Báze a dimenze vektorového prostoru 1

Definice 1 eulerovský Definice 2 poloeulerovský

Tento text je stručným shrnutím těch tvrzení Ramseyovy teorie, která zazněla

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

Aplikovaná numerická matematika

analytické geometrie v prostoru s počátkem 18. stol.

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

2. přednáška 8. října 2007

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

Definice 5.1 Graf G = (V, E) je tvořen množinou vrcholů V a množinou hran, kde

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

3.3.5 Množiny bodů dané vlastnosti II (osa úsečky)

TGH09 - Barvení grafů

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

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

TEORIE GRAFŮ TEORIE GRAFŮ 1

V ypoˇ cetn ı sloˇ zitost v teorii graf u Martin Doucha

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Teorie grafů Jirka Fink

Náhodný vektor. Náhodný vektor. Hustota náhodného vektoru. Hustota náhodného vektoru. Náhodný vektor je dvojice náhodných veličin (X, Y ) T = ( X

Kongruence na množině celých čísel

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

Zajímavé matematické úlohy

Rovinné grafy Kostra grafu Minimální kostra Toky v sítích Problém maximálního toku v síti. Stromy a kostry. Michal Bulant

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

6 Lineární geometrie. 6.1 Lineární variety

07 Základní pojmy teorie grafů

Úvod do informatiky. Miroslav Kolařík

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Algoritmizace prostorových úloh

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

f( x) x x 4.3. Asymptoty funkce Definice lim f( x) =, lim f( x) =, Jestliže nastane alespoň jeden z případů

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Dijkstrův algoritmus

Cvičení z Lineární algebry 1

Výroková a predikátová logika - IV

Náhodný vektor. Náhodný vektor. Hustota náhodného vektoru. Hustota náhodného vektoru. Náhodný vektor je dvojice náhodných veličin (X, Y ) T = ( X

(ne)závislost. α 1 x 1 + α 2 x α n x n. x + ( 1) x Vektoru y = ( 1) y říkáme opačný vektor k vektoru y. x x = 1. x = x = 0.

Formální systém výrokové logiky

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

Lineární algebra : Lineární (ne)závislost

Základní pojmy teorie grafů [Graph theory]

10. Vektorové podprostory

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

Organizace. Zápočet: test týden semestru (pátek) bodů souhrnný test (1 pokus) Zkouška: písemná část ( 50 bodů), ústní část

Základní pojmy teorie množin Vektorové prostory

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

Transkript:

5 Minimální kostry, Hladový algoritmus Kromě teoretických hrátek mají kostry grafů(oddíl 4.4) následující důležité praktické použití: Dříve jsme uvažovali spojení v grafech cestami jdoucími z jednoho místa do druhého, ale nyní se podíváme na jiný způsob propojování všech vrcholů grafu najednou. Vezměme si třeba požadavky propojení domů elektrickým rozvodem, propojení škol internetem, atd. Zde nás ani tak nezajímají délky jednotlivých cest mezi propojenými body, ale hlavně celková délka či cena vedení/spojení, které musíme postavit. Našim cílem je tedy najít minimální souvislý podgraf daného grafu, tedy minimální způsob propojení(v daných podmínkách), ve kterém existují cesty mezi každou dvojicí vrcholů. Stručný přehled lekce Řešení problému minimální kostry v grafu hladový a Jarníkův algoritmus. Obecné pojetí hladového algoritmu. Matroidy struktury, na nichž hladový algoritmus vždy funguje. Petr Hliněný, FI MU Brno FI: MA00: Kostry, Hladový algoritmus

5. Hledání minimální kostry Problém 5.. Problém minimální kostry(mst) Jedán(souvislý)váženýgraf G, wsnezápornýmohodnocenímhran w.otázkouje najít kostru T v G, která má nejmenší možné celkové ohodnocení. Formálně MST = min w(e). kostra T G e E(T) Kostra daného grafu je minimální podgraf, který zachovává souvislost každé komponenty původního grafu. Proto nám vlastně ukazuje minimální propojení daných vrcholů, ve kterém ještě existují cesty mezi všemi dvojicemi, které byly propojeny i původně. Petr Hliněný, FI MU Brno 2 FI: MA00: Kostry, Hladový algoritmus

Praktickou formulací problému je třeba propojení domů elektrickým rozvodem, škol internetem,atd.jednásetadyozadání,vekterýchnászajímápředevšímcelkovádélkačicena propojení, které je třeba vytvořit. Příklad je uveden na následujícím obrázku i s vyznačenou minimální kostrou vpravo. 4 4 2 2 2 2 2 2 4 2 4 2 Algoritmus5.2. Hladový prominimálníkostru. Jedánsouvislýváženýgraf G, wsnezápornýmohodnocenímhran w. Seřadíme hrany grafu G vzestupně podle jejich ohodnocení, tj. w(e ) w(e 2 )... w(e m ). Začnemesprázdnoumnožinouhran T= prokostru. Pro i=,2,...,mvezmemehranu e i apokud T {e i }nevytváříkružnici, přidáme e i do T.Jinak e i zahodíme. Na konci množina T obsahuje hrany minimální kostry váženého grafu G, w. Petr Hliněný, FI MU Brno FI: MA00: Kostry, Hladový algoritmus

Pro ilustraci si ukážeme postup hladového algoritmu pro vyhledání kostry výše zakresleného grafu.hranysinejprveseřadímepodlejejichvah,,,,2,2,2,2,,,,4,4. V obrázku průběhu algoritmu používáme tlusté čáry pro vybrané hrany kostry a tečkované čáry pro zahozené hrany. Hrany teď postupně přidáváme do kostry/ zahazujeme... 4 4 2 2 2 4 2 2 2 2 4 2 4 4 2 2 2 4 2 2 2 2 4 2 Získámetakminimálníkostruvelikosti+2+2++++2=2,kterájevtomtopřípadě (náhodou) cestou, na posledním obrázku vpravo. Poznamenáváme, že při jiném seřazení hran stejné váhy by kostra mohla vyjít jinak, ale vždy bude mít stejnou velikost 2. Petr Hliněný, FI MU Brno 4 FI: MA00: Kostry, Hladový algoritmus

Důkaz správnosti Algoritmu??: Nechť T jemnožinahranzískanávalgoritmu??anechťhranyjsoujižseřazené w(e ) w(e 2 )... w(e m ).Vezměmemnožinuhran T 0 téminimálníkostry(může jichbýtvícesestejnouhodnotou),kterásestshodujenaconejvíceprvníchhranách. Pokud T 0 = T,algoritmuspracovalsprávně. Předpokládejmetedy,že T 0 T,aukážemespor,tj.žetotonemůževeskutečnosti nastat.označme j >0takovýindex,žesemnožiny T 0 a T shodujínaprvních j hranách e,..., e j,aleneshodujísena e j.toznamená,že e j T,ale e j T 0. (Jistěnemůženastat e j T,ale e j T 0.) PodleDůsledku4.5obsahujegrafnahranách T 0 {e j }právějednukružnici C.Kružnice Cvšaknemůžebýtobsaženavnalezenékostře T,aprotoexistujehrana e k v C,která e k Tazároveň k > j.potomvšakje w(e k ) w(e j )podlenašehoseřazeníhran,a tudížkostranahranách ( T 0 \ {e k } ) {e j }(vzniklánahrazenímhrany e k hranou e j ) neníhoršínež T 0 amělijsmejivnašíúvazezvolitmísto T 0.Tojehledanýspor. Správný pohled na předchozí důkaz by měl být následovný: Předpokládali jsme, že nalezená kostra Tsesněkterouoptimálníkostroushodujeaspoňnaprvních j hranách.potéjsme ukázali,ženěkteroudalšíhranu e k v(předpokládané)optimálníkostřelzezaměnithranou e j,atudíždosáhnoutshoduaspoňnaprvních jhranách.dalšímiiteracemizáměnukážeme úplnou shodu naší nalezené kostry T s některou optimální kostrou. V našem důkaze jsme se vlastně zaměřili na fakt, že ta poslední iterace záměn nemůže selhat. Nakreslete si tento důkaz obrázkem! Petr Hliněný, FI MU Brno 5 FI: MA00: Kostry, Hladový algoritmus

Základní hladový algoritmus pro hledání minimální kostry grafu byl poprvé explicitně popsán Kruskalem, ale už dříve byly objeveny jeho podobné varianty, které zde jen stručně zmíníme. Algoritmus 5.. Jarníkův pro minimální kostru. Hrany na začátku neseřazujeme, ale začneme kostru vytvářet z jednoho vrcholu a v každém kroku přidáme nejmenší z hran, které vedou z již vytvořeného podstromu do zbytku grafu. Poznámka: Tento algoritmus je velmi vhodný pro praktické výpočty a je dodnes široce používaný. Málokdo ve světě však ví, že pochází od Vojtěcha Jarníka, známého českého matematika ve světové literatuře se obvykle připisuje Američanu Primovi, který jej objevil až skoro 0 let po Jarníkovi. Avšak historicky vůbec první algoritmus pro problém minimální kostry(z roku 928) byl nalezen jiným českým(brněnským) matematikem: Algoritmus 5.4. Borůvkův pro minimální kostru(náznak). Toto je poněkud složitější algoritmus, chová se jako Jarníkův algoritmus spuštěný zároveň ze všech vrcholů grafu najednou. Petr Hliněný, FI MU Brno 6 FI: MA00: Kostry, Hladový algoritmus

5.2 Hladový algoritmus v obecnosti Asi nejprimitivnějším možným přístupem při řešení diskrétních optimalizačních úloh je postupovatstylem beruvždytonejlepší,cosezrovnanabízí... Tento postup obecně v češtině nazýváme hladovým algoritmem, i když lepší by bylo použít správnější překlad anglického greedy, tedy nenasystný algoritmus. A ještě hezčí české spojení by bylo algoritmus hamouna. Jednoduše bychom jej nastínili takto: Postupněvkrocíchvybervždytonejlepší,cosedá(nabízí). To vyžaduje zvolit uspořádání na objektech, ze kterých vybíráme. Průběh a úspěch algoritmu silně závisí na tomto zvoleném uspořádání. Jak asi každý ví, nenasystnost či hamounství nebývá v životě tím nejlepším postupem, ale kupodivu tento princip perfektně funguje v mnoha kombinatorických úlohách! Jedním známým příkladem je výše uvedené hledání minimální kostry. Jiným příkladem je třeba jednoduchý problém přidělování(uniformních) pracovních úkolů, na němž si obecné schéma hladového algoritmu ilustrujeme. Petr Hliněný, FI MU Brno 7 FI: MA00: Kostry, Hladový algoritmus

Problém 5.5. Přidělení pracovních úkolů Uvažujeme zadané pracovní úkoly, které mají přesně určený čas začátku i délku trvání. (Jednotlivé úkoly jsou tedy reprezentovány uzavřenými intervaly na časové ose.) Cílem je takové přidělení úkolů pracovníkům, aby jich celkově bylo potřeba co nejméně. Všichni pracovníci jsou si navzájem rovnocenní uniformní, tj. každý zvládne všechno. Pro příklad zadání takové problému si vezměme následující intervaly úkolů: 4 2 2 Kolik je k jejich splnění potřeba nejméně pracovníků? Asi sami snadno zjistíte, že 4 pracovníci stačí, viz zobrazené očíslování. Ale proč jich nemůže být méně? Poznámka: Uvedené zadání může být kombinatoricky popsáno také jako problém optimálního obarvení daného intervalového grafu(vrcholy jsou intervaly úkolů a hrany znázorňují překrývání intervalů). Petr Hliněný, FI MU Brno 8 FI: MA00: Kostry, Hladový algoritmus

Algoritmus 5.6. Hladový algoritmus rozdělení pracovních úkolů. Problém?? je vyřešen následující aplikací hladového postupu:. Úkoly nejprve seřadíme podle časů začátků. 2. Každému úkolu v pořadí přidělíme volného pracovníka s nejnižším číslem. Důkaz: Nechť náš algoritmus použije celkem k pracovníků. Dokážeme jednoduchou úvahou, že tento počet je optimální nejlepší možný. V okamžiku, kdy začal pracovat pracovníkčíslo k,všichni,2,...,k taképracovali(jinakbychomvzaliněkterého znich).vtomokamžikutedymáme kpřekrývajícíchseúkolůakaždýznichvyžaduje vlastního pracovníka. Příklad neoptimálního přidělení pracovních úkolů dostaneme například tak, že na začátku úkoly seřadíme podle jejich časové délky.(tj. čím delší úkol, tím dříve mu hladově přiřadíme pracovníka.) 5 2 2 4 Jak vidíme na obrázku, nalezené řešení není optimální vyžaduje 5 místo 4 pracovníků. Je tedy velmi důležité, podle jakého prinicipu seřadíme objekty(úkoly) na vstupu. Petr Hliněný, FI MU Brno 9 FI: MA00: Kostry, Hladový algoritmus

5. Pojem matroidu Definice5.7. Matroid namnožině X,značený M=(X, N), je takový systém N podmnožin nosné množiny X, ve kterém platí následující:. N 2. A Na B A B N. A, B Na A < B y B \ A: A {y} N Množinám ze systému N říkáme nezávislé množiny. Těm ostatním pak říkáme závislé. Nezávislým množinám, do kterých již nelze přidat žádný prvek tak, že zůstanou nezávislé, říkáme báze matroidu. Nejdůležitější částí definice matroidu je zvýrazněný třetí bod. Přímo ukázkový příklad matroidu nám dává lineární algebra všechny lineárně nezávislé podmnožiny vektorů tvoří matroid. Odtud také pocházejí pojmy nezávislosti a báze matroidu, které přímo odpovídají příslušným pojmům vektorového prostoru. Lema 5.8. Všechny báze matroidu obsahují stejně mnoho prvků. Důkaz: Toto přímo vyplývá z třetí vlastnosti definice matroidu: Pokud nezávislá množina Amáméněprvkůnežbáze B,takdo Alzevždypřidatdalšíprvek xtak,že zůstane A {x} nezávislá. Petr Hliněný, FI MU Brno 0 FI: MA00: Kostry, Hladový algoritmus

Nyní uvedeme několik poznatků o stromech, které jsou relevantní pro zavedení grafových matroidů. Lema5.9.Lesna nvrcholechsckomponentamisouvislostimápřesně n chran. Důkaz: Každý vrchol lesa L náleží právě jedné komponentě souvislosti z definice. Jak známo,každýstrom,tj.komponentalesa L,máojednuhranuméněnežvrcholů.Ve sjednocení c komponent tak bude právě o c méně hran než vrcholů. Definice: Řekneme, že podmnožina hran F E(G) je acyklická, pokud podgraf s vrcholy V(G)ahranamizFnemákružnici. Lema5.0.Nechť F, F 2 jsouacyklicképodmnožinyhrangrafu Ga F < F 2.Pak existujehrana f F 2 \ F taková,že F {f}jetakéacyklickápodmnožina. Důkaz:Jelikož F < F 2 aplatílema??,mápodgraf G tvořenýhranamizf více komponentnežpodgraf G 2 tvořenýhranamizf 2.Potomvšakněkteráhrana f F 2 musíspojovatdvěrůznékomponentypodgrafu G,atudížpřidáním fdo F nevznikne kružnice. Petr Hliněný, FI MU Brno FI: MA00: Kostry, Hladový algoritmus

Definice: Podle Lematu?? tvoří systém všech acyklických podmnožin hran v(libovolném) grafu G matroid. Tento matroid nazýváme matroidem kružnic grafu G. V analogií s grafy používáme název kružnice pro minimální závislé množiny matroidu. Dva příklady matroidu jsou hezky ilustrovány v následujícím obrázku, který ukazuje, jak hrany grafu K 4 vlevo odpovídajívektorůmvmatroidukružnicvpravo.čáry(zvané přímky )v pravém schématu vyznačují lineární závislosti mezi vektory; tj. nezávislé jsou ty trojice bodů, které neleží na žádné společné přímce. [ f 00 ] K 4 a f d e b [ 0 [ 0 ] d ] [ 0 ] e [ ] c 0 a c [ 0 ] b 0 Petr Hliněný, FI MU Brno 2 FI: MA00: Kostry, Hladový algoritmus

Abstraktní hladový algoritmus V praxi se matroid obvykle nezadává výčtem všech nezávislých množin, protože těch jepřílišmnoho(až2 n pro n-prvkovoumnožinu X). Místo toho bývá dána externí funkce pro testování nezávislosti dané podmnožiny. Algoritmus 5.. Nalezení minim. báze matroidu hladový algoritmus. vstup:množina Xsváhovoufunkcí w: X R, matroid na X určený externí funkcí nezavisla(y); setříditx=(x[],x[2],...,x[n])tak, aby w[x[]]<=...<=w[x[n]]; B = ; for (i=; i<=n; i++) if (nezavisla(b {x[i]})) B = B {x[i]}; výstup: báze Bdanéhomatroidusmin.součtemohodnocenívzhledemkw. Poznámka: Pokud X v tomto algoritmu je množina hran grafu, w váhová funkce na hranách a nezávislost znamená acyklické podmnožiny hran(matroid kružnic grafu), pak Algoritmus?? je přesně instancí Algoritmu??. Petr Hliněný, FI MU Brno FI: MA00: Kostry, Hladový algoritmus

Věta 5.2. Algoritmus??(hladový algoritmus) pro danou nosnou množinu X s váhovoufunkcí w:x Raprodanýmatroid N na X správněnajdebázivn s nejmenším součtem vah. Důkaz:Zdefinicematroidujejasné,žekvýslednémnožině Bjižnelzepřidatdalší prvek,abyzůstalanezávislá,protoje B báze.seřaďmesiprvky X podlevahjako valgoritmu w(x[])... w(x[n]).nechťindexy i, i 2,...,i k určujívybranou k- prvkovoubázi Bvalgoritmuanechťindexy j, j 2,...,j k vyznačují(třebajinou?)bázi {x[j ],..., x[j k ]}snejmenšímmožnýmsoučtemvah. Vezměmenejmenší r takové,že w(x[i r ]) w(x[j r ]).Potomnutně w(x[i r ]) < w(x[j r ]),protoženášalgoritmusje hladový abralbymenší w(x[j r ])jiždříve.na druhoustranu,pokudbydruhábáze {x[j ],..., x[j k ]}dávalamenšísoučetvah,muselobyexistovatjiné s takové,že w(x[i s ]) > w(x[j s ]).Nynívezměmenezávislé podmnožiny A = {x[i ],..., x[i s ]}aa 2 = {x[j ],...,x[j s ]},kde A 2 máojeden prvekvícenež A avšechnyprvky A 2 majídlepředpokladumenšíváhunež w(x[i s ]). Podledefinicematroiduexistuje y A 2 \ A takové,že A {y}jenezávislá.přitom samozřejmě y=x[l]pronějaké l.aletonenímožné,protože,jakjevýšenapsáno, w(y) < w(x[i s ]),takžebynášhladovýalgoritmusmusel y= x[l], l < i s vzítdřívedo vytvářenébáze Bnežvzal x[i s ].Protojinábázesmenšímsoučtemvahnežnalezená B neexistuje. Petr Hliněný, FI MU Brno 4 FI: MA00: Kostry, Hladový algoritmus

5.4 Kdy hladový algoritmus(ne)pracuje správně Jak ukážeme, funkčnost hladového algoritmu je přímo svázána s matroidy. Věta 5.. Nechť X je nosná množina se systémem nezávislých podmnožin N splňujícípodmínky(,2)definice??.pokudprojakoukolivváhovoufunkci w: X R najde Algoritmus?? optimální nezávislou množinu z N, tak N splňuje také podmínku (),atudížtvořímatroidna X. Důkaz: Tvrzení dokazujeme sporem. Předpokládejme, že vlastnost() neplatí pro dvojicinezávislýchmnožin A, B,tj.že A < B,aleprožádnýprvek y B \ Anení A {y}nezávislá.nechť A =a, B =b,kde2b >2a+.Zvolímenásledující ohodnocení w(x)= 2bpro x A, w(x)= 2a pro x B \ A, w(x)=0jinak. Hladovýalgoritmuspřirozeněnajdebázi B obsahující AadisjunktnísB \ Apodle našehopředpokladu.jejíohodnoceníje w(b )= 2ab.Avšakoptimálníbázíjev tomtopřípadějiná B 2 obsahujícícelé Bamajícíohodnocenínejvýše w(b 2 ) ( 2a )b = 2ab b < w(b ).Tojevesporusdalšímpředpokladem,žeipřinámi zvoleném ohodnocení w nalezne hladový algoritmus optimální bázi. Proto je sporný nášpředpokladomnožinách A, Bapodmínka()jesplněna. Petr Hliněný, FI MU Brno 5 FI: MA00: Kostry, Hladový algoritmus

Příklad 5.4. Nakonec uvádíme dvě ukázky, ve kterých hladový algoritmus výrazně selže: Obarvení grafu. Problém obarvení grafu žádá přiřazení co nejméně barev vrcholům tak, aby sousední dvojice dostaly různé barvy. Obecně hladově barvíme graf tak, že ve zvoleném pořadí vrcholů každému následujícímu přidělíme první volnou barvu. 2 Třeba v nakreslené cestě délky můžeme barvit hladově v pořadí od vyznačených krajních vrcholů, a pak musíme použít barvy místo optimálních dvou. Vrcholové pokrytí. Problém vrcholového pokrytí se ptá na co nejmenší podmnožinu Cvrcholůdanéhografutakovou,žekaždáhranamáalespoňjedenkonecvC. Přirozeným hladovým postupem by bylo vybírat od vrcholů nejvyšších stupňů ty, které sousedí s doposud nepokrytými hranami. Bohužel tento postup také obecně nefunguje. Petr Hliněný, FI MU Brno 6 FI: MA00: Kostry, Hladový algoritmus