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.

1. ábra. Számláló rendezés

Számláló rendezés. Példa

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.

Számjegyes vagy radix rendezés

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

Algoritmusok bonyolultsága

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

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)}

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

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:

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 ismétlés ősz

15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 30.

Gráfelméleti feladatok. c f

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.

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

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

A félév során előkerülő témakörök

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

Diszkrét matematika 2.C szakirány

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

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

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

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

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

Algoritmuselmélet 1. előadás

14. Mediánok és rendezett minták

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

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

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

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

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

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

Algoritmuselmélet 1. előadás

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

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

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

Diszkrét matematika 2.

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

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Diszkrét matematika 2.C szakirány

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

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

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

A számítástudomány alapjai

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

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Egyesíthető prioritási sor

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

Diszkrét matematika I.

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

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

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

Kupac adatszerkezet. 1. ábra.

Algoritmuselmélet 18. előadás

Diszkrét matematika II. gyakorlat

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

Programozási módszertan. Mohó algoritmusok

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

Az optimális megoldást adó algoritmusok

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

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

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

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

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

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

Egyesíthető prioritási sor

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Diszkrét matematika 2.C szakirány

Nagy Gábor compalg.inf.elte.hu/ nagy

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

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

Algoritmusok helyességének bizonyítása. A Floyd-módszer

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

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

7. előadás. Gyorsrendezés, rendezés lineáris lépésszámmal. Adatszerkezetek és algoritmusok előadás március 6.

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

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

2. Visszalépéses keresés

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

Adatszerkezetek 7a. Dr. IványiPéter

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Gyakorló feladatok ZH-ra

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

KOVÁCS BÉLA, MATEMATIKA I.

Online migrációs ütemezési modellek

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

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

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Adatszerkezetek 2. Dr. Iványi Péter

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

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

Gyakori elemhalmazok kinyerése

Á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. Prím algoritmusa 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):=1 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)=1. Futási idő: O( E + V log V ) 1

b a 1 2 3 c 1 2 3 e 2 d 3 f 1 1. ábra. Példa A Kruskal algoritmus a következő sorrendben választja be az éleket: (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 1 -re és V 2 -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 1,V 2,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 2

gyökérelemek: V 1 azon pontjai, melyeket M nem fed le, vagyis a párosítatlan pontok. az erdők páratlan szintjei: V 2 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 1 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 1,V 2,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 1,...,v k egy alternáló út, és v 0 V 1 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 1 -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. 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. 3

1:2 <= > 2:3 1:3 <= > <= > 1,2,3 1:3 <= > 1,3,2 3,1,2 2,1,3 2:3 <= > 2,3,1 3,2,1 2. ábra. 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ő. Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a legrosszabb esetben szükséges összahasonlítások számát a neki megfelelő döntési fa magassága adja meg. Tétel Egy n darab elemet rendező döntési fa magassága Ω(nlogn). Bizonyítás A fa leveleinek száma a lehetséges sorrendek száma, azaz n!. Ha a fa magassága h, akkor 2 h 1 n! kell teljesüljön, következésképpen h 1 lg(n!) lg((n/e) n ) = nlgn nlge = Ω(nlgn). Következmény Minden olyan rendezési algoritmusra, amely csak az elempárok összehasonlítása alapján működik T lr (n) = Ω(nlgn). Számláló rendezés Amennyiben a rendezendő elemek által felvehető értékek halmazának számossága kicsi, akkor megadható lineáris időigényű algoritmus. A bemenet a rendezendő elemek egy n méretű A tömbben eltárolva, a kimenet ezen számok egy B tömbben rendezetten. Továbbá feltesszük, hogy a rendezendő elemek mindegyike az {1,...,k} halmazba esik. C[i] tartalmazza azt az információt, hogy a legfeljebb i nagyságú elemből hány darab van. Szamlalorend(A,B,k) for i=1 to k 4

C[i]:=0 for j=1 to n C[A[j]]:=C[A[j]]+1 for i=2 to k C[i]:=C[i]+C[i-1] for j=n downto 1 {B[C[A[j]]]:=A[j] C[A[j]]:=C[A[j]]-1} Megjegyzés: Az algoritmus ötlete nem csak akkor használható, ha az elemek az {1,...,k} halmazba esnek. Általánosabb esetben meg kell keresni a minimális elemet min-t, és C[i] a legfeljebb i min + 1 nagyságú elemeket tartalmazza. Definíció Egy rendezést stabilnak nevezünk, ha az azonos értékű elemek ugyanabban a sorrendben jelennek meg a kimeneti tömbben, mint ahogy a bemeneti tömbben szerepeltek. A leszámláló rendezés stabil. Futási idő: Θ(n + k) Példa A=[3,1,3,1,2,1,1,2,3] C=[4,2,3] C=[4,6,9] B=[0,0,0,0,0,0,0,0,3] C=[4,6,8] B=[0,0,0,0,0,2,0,0,3] C=[4,5,8] B=[0,0,0,1,0,2,0,0,3] C=[3,5,8] Példa Számjegyes vagy radix rendezés 329 720 720 329 457 436 329 436 657 457 436 457 839 657 839 657 436 329 457 720 720 839 657 839 Bemenet: H k dimenziós vektorok halmaza, ahol az i-edik komponens minden i-re egy olyan elemtípusból kerül ki, amelyen adott egy rendezési reláció. Kimenet: H elemei a lexikografikus rendezés alapján rendezve. Definíció Egy X = (x 1,...,x k ) vektor megelőzi az Y = (y i,...,y k ) vektort a lexikografikus rendezésben, ha i, amelyre teljesül, hogy j < i x j = y j és x i < y i. Elvi algoritmus for i:=d downto 1 H Stabil rendezése a kulcs i-edik jegye szerint 5

Helyesség: A ciklusmag végrehajtása után a H halmaz rendezett lesz arra a kulcsra nézve, amely az eredeti kulcs [i..d] jegyeit (karaktereit) tartalmazza. Bizonyítás i-szinti indukcióval. Futási idő Ha a jegyek szerinti rendezés lineáris idejű (pl számláló), akkor a futási idő O(dn). Kiskérdések jövő hétre Dijskstra algoritmus Ford Bellman algoritmus Floyd Warshall algoritmus Kruskal algoritmus 6