Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Hasonló dokumentumok
Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Gráfok, definíciók. Minden irányítatlan G = (V,E) gráf olyan irányított gráfnak tekinthető, amelyre teljesül, hogy

Algoritmuselmélet 11. előadás

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

HÁLÓZAT Maximális folyam, minimális vágás

Algoritmusok bonyolultsága

Diszkrét matematika 2. estis képzés

Gráfelméleti feladatok. c f

Diszkrét matematika 2.C szakirány

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Diszkrét matematika 2. estis képzés

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

Hálózati folyamok. Tétel: A maximális folyam értéke megegyezik a minimális vágás értékével.

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.

Speciális algoritmusok és adatstruktúrák ősz

Diszkrét matematika 2.C szakirány

Gráfalgoritmusok ismétlés ősz

Diszkrét matematika II. gyakorlat

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

Egyesíthető prioritási sor

Algoritmuselmélet 18. előadás

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Javító és majdnem javító utak

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Gráfelmélet jegyzet 2. előadás

Diszkrét matematika 2. estis képzés

DISZKRÉT MATEMATIKA 2 KIDOLGOZOTT TÉTELSOR 1. RÉSZ

Számítógép hálózatok, osztott rendszerek 2009

2: Minimális feszítőfák, legrövidebb utak. HálózatokII, 2007

Algoritmuselmélet 7. előadás

Diszkrét matematika 2.C szakirány

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

10. előadás. Konvex halmazok

Gráfelméleti alapfogalmak

Az optimális megoldást adó algoritmusok

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

Optimalizálási eljárások/operációkutatás MSc hallgatók számára

angolul: greedy algorithms, románul: algoritmi greedy

Diszkrét matematika 1. estis képzés

A számítástudomány alapjai

Gráfalgoritmusok: összefüggőség, párosítás páros gráfban

Algoritmuselmélet 1. előadás

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Hálózati folyamok. A használt fogalmak definiálása

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Diszkrét Matematika GYAKORLAT, Levelező MSc hallgatók számára. 3. Feladatsor

10. Gráf absztrakt adattípus, gráfok ábrázolása

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Diszkrét matematika 2. estis képzés

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. Párosítások. 1. ábra.

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

ELTE IK Esti képzés tavaszi félév. Tartalom

Diszkrét matematika 1. estis képzés

Bevezetés a számításelméletbe II. Zárthelyi feladatok április 23.

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

Algoritmuselmélet 1. előadás

Diszkrét matematika 2.C szakirány

2. Visszalépéses keresés

Frank András március

Matematikai problémák vizsgálata a Maple programcsomag segítségével

A DFS algoritmus. Összeállította: Szeszlér Dávid, c BME Számítástudományi és Információelméleti Tanszék, 2015, 2016.

Mohó algoritmusok. Példa:

Matematika. Számonkérés. Írásbeli vizsga januárban. 1. konzultáció. Irodalom

Diszkrét matematika I.

SZÁMÍTÁSTUDOMÁNY ALAPJAI

24. MINIMÁLIS KÖLTSÉGŰ UTAK I.

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

Neumann János Tehetséggondozó Program Gráfalgoritmusok II.

Gráfelméleti alapfogalmak-1

Programozási módszertan. Mohó algoritmusok

Tuesday, March 6, 12. Hasító táblázatok

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Diszkrét matematika 2. estis képzés

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

SzA II. gyakorlat, szeptember 18.

HAMILTON ÚT: minden csúcson PONTOSAN egyszer áthaladó út

Online migrációs ütemezési modellek

KOMBINATORIKUS OPTIMALIZÁLÁS

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmusok bonyolultsága

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrás: (

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Átírás:

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: C(T ) = (u,v) T c(u,v) Az F = (V,T) gráf minimális feszitőfája G-nek, ha F feszitőfája G-nek, és C(T) minimális Legyen A F valamely (V,F) minimális feszítőfára, és (u,v) E. Definíció (u,v) biztonságos él A-ra nézve, ha A {(u,v)} is része valamely minimális feszítőfának. Elvi algoritmus A := /0 While A nem feszítőfa (u,v) biztonságos él keresése; A := A {(u,v)} Definíció: A G = (V,E) gráf vágása: (S,V \ S), ahol S V ; Definíció: (u,v) E keresztél az (S,V \ S) vágásra, ha u S és v V \ S, vagy u V \ S és v S. Az (S,V \ S) vágás elkerüli az A E élhalmazt, ha A-ban nincs keresztél. Definíció: (u,v) könnyű él az (S,V \ S) vágásra, ha a legkisebb c-értékű (súlyú) keresztél. Tétel: Ha A része a G = (V,E,c) valamely minimális feszítőfájának és elkerüli az (S,V \ S) vágást, továbbá (u, v) könnyű él az (S,V \ S) vágásra, akkor (u,v) biztonságos él A-ra nézve. Bizonyítás: Legyen T = (V,F) egy olyan minimális feszítőfa, amelyre A F. Ha (u,v) F, akkor az állítás nyilvánvaló. Ha (u,v) / F, akkor (u,v)-t hozzá véve az F éleihez kört kapunk. Mivel u és v az S vágás különböző oldalán vannak, ezért van a körben egy másik (x,y) keresztél. Ekkor az F := F \ {(x,y)} {(u,v)} élhalmaz is feszítőfája lesz G-nek. Továbbá c(u,v) c(x,y) miatt C(F ) C(F), így szintén minimális. Kruskal algoritmusa Kruskal(G,w) Letesit(A: halmaz) for (v V ) Halmazt Keszit(v) rendezzük E éleit w szerint növekvő sorrendbe for (u,v) E esetén a súly szerinti sorrendben If Halmazt Keres(u) Halmazt Keres(v) A := A {(u,v)} Egyesít(u,v) Megvalósítás: Unio Holvan adattípussal. Helyesség: Az általános tétel alapján, vágásnak olyan vágást használva, ahol az egyik halmaz az u-tartalmazó részfa az aktuális feszítő erdőből. Futási idő: O( E log V ) Példa A Kruskal algoritmus a következő sorrendben választja be az éleket: (a,b),(c,e),(d, f ),(a,c),(d,e), Prím algoritmusa

b a c e d f. ábra. Prim(G,c,r) for(v in V) {d(v):=inf Apa(v):=0 Bent(v):=0} d(r):=0 Letesit(Q: ModPrisor) for(v in V) SorBa(Q,v) while(elemszam(q)>0) {SorBol(Q,u) Bent(u):= for(v in KiEl(G,u)) {If (Bent(v)=0) and (c(u,v)<d(v)) then {Apa(v):=u d(v):=c(u,v) Modosit(v) }}} Helyesség: Az általános tétel alapján, vágásnak olyan vágást használva, ahol az egyik halmaz azon v pontokat tartalmazza, akikre Bent(v)=. Futási idő: O( E + V log V ) Példa A Kruskal algoritmus a következő sorrendben választja be az éleket:

b a c e d f. ábra. (a,b),(c,e),(d, f ),(a,c),(d,e), A Prim algoritmus sorrendje (a,b),(a,c), (c,e), (d,e),(d, f ). Maximális párosítás páros gráfokra A G = (V,E) gráfot párosnak nevezzük, ha V csúcshalmaza felosztható két diszjunkt részre V -re és V -re úgy, hogy minden él ezen két halmaz között fut. Az E élhalmaz M E részhalmaza G egy párosítása, ha a G = (V,M) gráfban minden pont foka legfeljebb egy. Egy párosítás maximális ha a lehető legtöbb élet tartalmazza. A megoldandó probléma: Adott egy G = (V,V,E) páros gráf. Határozzuk meg egy maximális párosítását. Legyen G egy gráf, és M a G egy párosítása. Egy G-beli utat M-alternáló útnak hívunk, ha felváltva tartalmaz M-beli és nem M-beli éleket. Legyen M a G egy párosítása. Ekkor azokat az M-alternáló utakat, melynek egyik végpontja sincs benne a párosításban, M-re nézve javító útnak nevezzük. Tétel Legyen G = (V,E) egy tetszőleges gráf és M egy párosítása. Ha M-re nézve nincs javító út G-ben, akkor M a G gráfnak egy maximális párosítása. Javító út keresése páros gráfokban alternáló erdővel gyökérelemek: V azon pontjai, melyeket M nem fed le, vagyis a párosítatlan pontok.

az erdők páratlan szintjei: V azon még nem vizsgált pontjai, melyek egy M-en kívüli éllel elérhetőek az előző szintről az erdők páros szintjei: V azon még nem vizsgált pontjai, melyek egy M-beli éllel elérhetőek az előző szintről Tétel A G = (V,V,E) páros gráfban akkor es csak akkor van az M párosításra nézve javító út, ha az M-hez tartozó alternáló erdőben páratlan szinten van párosításon kívüli pont. Bizonyítás: Ha van ilyen, akkor az erdőben van út. Tegyük fel, hogy v 0,v,...,v k egy alternáló út, és v 0 V egy párosításon kívüli pont. i szerinti indukcióval megmutatható, hogy minden v i bekerül az erdőbe. Tehát az út utolsó pontja is bekerül, de az V -beli, így csak páratlan szintre kerülhet. Stabil párosítások Adott n fiú és n lány és minden fiú és lány rangsort állít fel az általa elfogadhatónak talált partnerek között. Egy házasítás stabil, ha nincs olyan blokkoló pár, akik jobban kedvelik egymást, mint jelenlegi házastársaikat. A leánykérő algoritmus - Minden fiú, aki aktuálisan pár nélkül van minden lépésben ajánlatot tesz a számára legjobban tetsző lánynak - Ha egy lány több ajánlatot kap, a legjobbat tartsa meg feltételesen, a többit utasítsa vissza véglegesen Tétel Az algoritmus stabil párosítást ad. http://mathsite.math.berkeley.edu/smp/smp.html Maximális folyam probléma Legyen G = (V,E) gráf, s,t különböző csúcsok a forrás és a nyelő, c az éleken értelmezett nemnegatív kapacításfüggvény. Legyen (V,E,s,t,c) egy hálózat, az f : E Z folyam, ha rendelkezik a következő tulajdonságokkal: 0 f (u,v) c(u,v) teljesül minden élre (u,v) E f (u,v) = (v,w) E f (v,w) teljesül bármely v V {s,t}-re A cél a (s,v) E f (s,v) összeg maximalizálása. Maradékhálózat: Adott gráf és folyam mellett definiálhatjuk a maradékhálózatot (V,E,s,t,m), ahol Minden uv E élre, ha f (uv) < c(uv), betesszük uv-t az E -be, m(uv) = c(uv) f (uv), és az uv élet előre élnek jelöljük. Minden uv E élre, ha pozitív (azaz f (uv) > 0), betesszük a vu fordított élet az E -be, m(vu) = f (uv), és a vu élet vissza élnek jelöljük. Ford Fulkerson algoritmusa Megkonstruáljuk a maradékhálózatot. Keresünk benne egy s,t utat. Ha nincs ilyen út véget ér az algoritmus, az aktuális folyam maximális. 4

Ha van s,t út, akkor az út előre élein növeljük a vissza éleken csökkentjük a folyam értékét, egy értékkel, amely a maximális érték, amivel ez megtehető. Kruskal algoritmus Prím algoritmus Ford Fulkerson algoritmus Stabil párosítási probléma és lánykérő algoritmus Kiskérdések ZH utáni hétre 5