A számítástudomány alapjai

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

Gráfalgoritmusok ismétlés ősz

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

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

Diszkrét matematika 2.C szakirány

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

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

Algoritmusok bonyolultsága

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.

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

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

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

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

Algoritmuselmélet 7. előadás

Diszkrét matematika 2.C szakirány

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

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.

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

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

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

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.

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

Dijkstra algoritmusa

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

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. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

Algoritmuselmélet 11. előadás

III. Gráfok. 1. Irányítatlan gráfok:

Algoritmuselmélet 18. előadás

Közösségek keresése nagy gráfokban

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

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:

Adatszerkezetek 2. Dr. Iványi Péter

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

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika 2.C szakirány

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

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

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

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika 2.

Adatszerkezetek II. 2. előadás

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17

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:

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

Gráfelméleti feladatok. c f

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

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

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

Gráfok. Programozás II. előadás. Szénási Sándor.

Diszkrét matematika 2.

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

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

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrá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:

Diszkrét matematika 2.C szakirány

SzA II. gyakorlat, szeptember 18.

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

A gráffogalom fejlődése

Diszkrét matematika II. gyakorlat

Gráf-algoritmusok Legrövidebb utak

angolul: greedy algorithms, románul: algoritmi greedy

Legrövidebb utat kereső algoritmusok. BFS (szélességi keresés)

Gráfokkal megoldható hétköznapi problémák

Diszkrét matematika 2.

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.

1. ábra ábra

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

Totális Unimodularitás és LP dualitás. Tapolcai János

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

Diszkrét matematika I.

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Diszkrét matematika 2.

Algoritmuselmélet. Hashelés. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

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

Az optimális megoldást adó algoritmusok

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

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

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

Csima Judit BME, VIK, november 9. és 16.

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

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

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

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

Adatszerkezetek II. 3. előadás

Bonyolultságelmélet gyakorlat 06 Gráfos visszavezetések II.

Megoldások 7. gyakorlat Síkgráfok, dualitás, gyenge izomorfia, Whitney-tételei

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

Digitális jelfeldolgozás

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

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

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

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

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

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

Átírás:

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 Legszélesebb utak Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 1 / 11 Legszélesebb utak Definíció Jelöljük gráf e élének szélességét w(e)-vel. Legyen a gráf egy P útjának szélessége az úton található legkisebb szélességű él szélessége, azaz w(p) = min e P {w(e)}. Feladat Keressük meg egy gráf s pontjából a többi pontjába a legszélesebb utakat. Keressük meg egy gráf bármely két pontja között a legszélesebb utakat. Például egy számítógép hálózatban keressük a legnagyobb sávszélességű összeköttetést. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 2 / 11

Legszélesebb utak keresése irányítatlan gráfban Módosítsuk a Kruskal algoritmust: Minden lépésben a legszélesebb olyan élet választjuk, ami még nem alkot kört a már korábban kiválasztottakkal. Tétel Egy összefüggő gráfban az így kapott feszítőfa a gráf bármely két pontja között egy legszélesebb utat határoz meg. Bizonyítás. Jelöljük F-el az algoritmus által adott fát.indirekt tegyük fel, hogy valamely s, t pontokra van olyan P-vel jelölt s t út, amelyik szélesebb az F-beli s t útnál.legyen e az F-beli s t út egy minimális szélességű éle.mivel P szélesebb w(e)-nél, ezért P minden éle is szélesebb w(e)-nél. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 3 / 11 Legszélesebb utak keresése irányítatlan gráfban Bizonyítás. Ha F -ből elhagyjuk e-t, két komponensre esik, s az egyik, t a másik komponensbe esik. A P útnak van olyan e éle, ami F e két komponense között megy. Ekkor w(e ) > w(e). Amikor az algoritmus az e élet bevette a fa élei közé, akkor e -t kellett volna választania, hiszen az sem alkothatott kört az F korábban kiválasztott éleivel, de nagyobb a szélessége. Megjegyzés Az így konstruált fa egyébként egy maximális össz-szélességű (=max. súlyú) feszítőfa is egyben. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 4 / 11

Legszélesebb utak keresése irányított gráfban Módosítsuk a Dijkstra algoritmust: Minden pontra nyilvántartjuk az addig megtalált legszélesebb út szélességét: w(v) Kezdetben: w(s) = és minden v s-re w(v) = 0. Javítás az e = (a, b) élen: Ha min(w(a), w(e)) > w(b), akkor legyen w(b) = min(w(a), w(e)). u 0 kiválasztása: Válasszuk a T -ből azt az u 0 pontot, amire w(u 0 ) maximális. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 5 / 11 Legszélesebb utak keresése irányított gráfban Állítás Az így kiválasztott u 0 -ra w(u 0 ) a legszélesebb út szélessége lesz. Bizonyítás. A bizonyítás ugyanúgy működik, mint a Dijkstra algoritmus bizonyítása. Ehhez elég, hogy az út szélesség definíciója rendelkezik a következő 2 tulajdonsággal: Egy út egyik részútja sem lehet kevésbé széles az egész út szélességénél. Ha az út egy részét (pl. az elejét) keskenyebbre cseréljük, akkor az egész út szélessége nem növekedhet. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 6 / 11

Legszélesebb legrövidebb utak Feladat Keressük a legrövidebb utat, de ha több legrövidebb is van, akkor azok közül a legszélesebbet. Módosítsuk a Dijkstra algoritmust: Minden pontra nyilvántartunk egy rendezett párt: (d(v), w(v)), ahol d(v) az eddig megtalált legrövidebb út hossza, w(v) pedig az ilyen rövidek közül az eddig megtalált legszélesebb út szélessége. Kezdetben: (d(s), w(s)) = (0, ) és minden v s-re (d(v), w(v)) = (, 0). Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 7 / 11 Legszélesebb legrövidebb utak Javítás az e = (a, b) élen: Ha d(a) + d(e) < d(b), akkor d(b) = d(a) + d(e), w(b) = min(w(a), w(e)). Ha d(a) + d(e) = d(b), akkor d(b) nem változik, de ha w(b) < min(w(a), w(e)), akkor w(b) = min(w(a), w(e)). Más esetben nincs változás. u 0 kiválasztása: Válasszuk a T -ből azt az u 0 pontot, amire (d(u 0 ), w(u 0 )) lexikografikus értelemben minimális, azaz elsősorban a d értékek nagysága dönt (a kisebbet választjuk), ha azok egyenlőek, akkor a w érték dönt (a nagyobbat választjuk). Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 8 / 11

Legrövidebb legszélesebb utak Feladat Keressük a legszélesebb utat két adott pont között, de ha több legszélesebb is van, akkor azok közül a legrövidebbet. Sajnos itt nem működik a Dijkstra algoritmus módosítása. Ugyanis egy részút lehet lehet szélesebb, mint az egész út, viszont ezen részúton az egész út szélességének megfelelőek közül kellene a legrövidebbet nyilvántartani, nem a részút szélességének megfelelőek közül. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 9 / 11 Legrövidebb legszélesebb utak Algoritmus Valamely adott w élszélesség esetén a w-nél keskenyebb éleket elhagyva, BFS-el eldönthetjük, hogy a maradék gráfban van-e út a két pont között. Bináris kereséssel meghatározzuk, hogy mi az a legnagyobb szélesség, amikor még van ilyen út, ez megadja a legszélesebb út szélességét. Ebben a gráfban (a keskenyebb élek elhagyása után), Dijkstra algoritmusával megkeressük a legrövidebb ilyen szélességű utat. Ez az algoritmus lassabb, mint a Dijkstra algoritmusa és csak két adott pont között keresi meg az utat. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 10 / 11

Legrövidebb legszélesebb utak Egy gyakran előforduló speciális eset, amikor az élek hossza egységesen 1, azaz a legszélesebb utak közül a legkevesebb élből állót keressük. Ilyenkor használhatjuk a Dikstra-ához hasonlóan módosított Ford algoritmust az élszélességekkel. Ez a k-adik körben meghatározza a legfeljebb k élből álló utak közül a legszélesebbet, amiből már könnyen megkapható az eredmény. Katona Gyula Y. (BME SZIT) A számítástudomány alapjai Legszélesebb utak 11 / 11