Adatszerkezetek II. 3. előadás

Hasonló dokumentumok
Adatszerkezetek II. 2. előadás

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

Adatszerkezetek II. 1. előadás

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

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

Gráfelméleti alapfogalmak

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

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

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Gráfalgoritmusok ismétlés ősz

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

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.

Diszkrét matematika 2.

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. 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 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

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:

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.

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

A gráffogalom fejlődése

Algoritmuselmélet 7. előadás

A számítástudomány alapjai

Építésikivitelezés-Vállalkozás / 2: Gráftechnikai alapfogalmak VÁLLALKOZÁS. javított háttöltés

Programozás nyelvek 3 3. előadás

Adatszerkezetek 2. Dr. Iványi Péter

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

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

Diszkrét matematika 2.

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

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

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

Gráf-algoritmusok Legrövidebb utak

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

10. Egy családfában csak a férfiakat és fiúgyerekeket ábrázoljuk, egy közös ősből kiindulva. Készíts

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

Diszkrét matematika 2.C szakirány

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

Diszkrét matematika 2.C szakirány

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.

Algoritmusok és adatszerkezetek 2.

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

Az optimális megoldást adó algoritmusok

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

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

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

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

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

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

Alapfogalmak II. Def.: Egy gráf összefüggő, ha bármely pontjából bármely pontjába eljuthatunk egy úton.

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

11.5. Ellipszis és ellipszisív

1. tétel - Gráfok alapfogalmai

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

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

Sali Attila Budapest Műszaki és Gazdaságtudományi Egyetem. I. B. 137/b március 16.

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:

22. GRÁFOK ÁBRÁZOLÁSA

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

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Gráfelméleti feladatok. c f

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

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

Algoritmusok és adatszerkezetek gyakorlat 07

Bp. Déli pu. - Murakeresztúr vv. Kis-Gellért-hegy alagút hm. szelvény. Általános képek. Kezdőponti kapuzat

Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)

Hierarchikus adatszerkezetek

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

2. Visszalépéses keresé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:

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

Algoritmizálás, adatmodellezés tanítása 7. előadás

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

1. Gráfmodellek. 1.1 Königsbergi hidak (Euler, 1736)

352 Nevezetes egyenlôtlenségek. , az átfogó hossza 81 cm

GráfRajz fejlesztői dokumentáció

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

Diszkrét matematika 2.C szakirány

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

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

Algoritmusok és adatszerkezetek I. 10. előadás

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

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

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

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

Algoritmizálás, adatmodellezés tanítása 8. előadás

Adatszerkezetek és algoritmusok

Hálózatszámítási modellek

Algoritmusok bonyolultsága

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. II. (programozás) kategória

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

C C. Ábrázold gráffal, hogy melyik csapat melyikkel játszott! Hány mérkőzés van még hátra a bajnokságból?

Algoritmuselmélet 11. előadás

38. A gráfalgoritmusok alkalmazása

Tartalomjegyzék. Algoritmuselmélet előadás jegyzet

CNC PROGRAMOZÁS A CNC szerszámgépek alkalmazásának főbb előnyei: CNC szerszámgépek fő részei Számjegyvezérlési módok CNC gépeken

Átírás:

Adatszerkezetek II. 3. előadás

Körmentes-e egy irányítatlan gráf? Alapötlet: Ha a bejárás során minden szürke pontból csak fehér pontba vezet él, akkor a gráf körmentes. 2013.02.27. 2

Körmentes?(p): Szín(p):=szürke; Sorba(p); Honnan(p):=p; km:=igaz Ciklus amíg nem üressor? és km Sorból(p); Szín(p):=fekete Ciklus i=1-től Pontszám-ig Ha Vanél?(p,i) akkor Ha Szín(i)=fehér akkor Sorba(i); Szín(i):=szürke Honnan(i):=p különben ha Honnan(p) i akkor km:=hamis Körmentes?:=km Eljárás vége. 2013.02.27. 3

Legrövidebb utak száma Alapötlet: fehér pont, illetve szürke pont esetén külön számítás. Fehér pontba annyi legrövidebb út vezet, amennyi a szürkébe, ahonnan jöttünk. Szürke pontba annyival több legrövidebb út vezet, amennyi a szürkébe, ahonnan jöttünk, ha a távolság így is minimális. 2013.02.27. 4

Legrövidebb utak száma(p): Szín(p):=szürke; Sorba(p); Táv(p):=0; Db(p):=1 Ciklus amíg nem üressor? Sorból(p); Szín(p):=fekete Ciklus i=1-től Pontszám-ig Ha Vanél?(p,i) akkor Ha Szín(i)=fehér akkor Sorba(i); Szín(i):=szürke Táv(i):=Táv(p)+1; Db(i):=Db(p) különben Ha Táv(i)=Táv(p)+1 akkor Db(i):=Db(i)+Db(p) Eljárás vége. Megjegyzés: A p pontból fekete pontba is vezethet él, de az éppen a p őse. 2013.02.27. 5

Topologikus rendezés hálóban Háló: irányított körmentes gráf, egyetlen forrással és nyelővel Pontok olyan sorba rendezése, hogy az élek csak a rendezés szerinti irányban haladjanak! Alapötlet: A 0 befokúak kerüljenek be a sorba! 2013.02.27. 6

Topologikus rendezés(p): Sorba(p); t:=1; hely(t):=p Ciklus amíg nem üressor? Sorból(p) Ciklus i=1-től Szomszédpontokszáma(p)-ig j:=szomszéd(p,i); Befok(j):=Befok(j)-1 Ha Befok(j)=0 akkor Sorba(j) t:=t+1; hely(t):=j Eljárás vége. 2013.02.27. 7

Leghosszabb utak topologikus rendezés esetén Alapötlet: Távolság becslés a topologikus rendezés sorrendjében ha egy ponthoz elérünk, akkor már minden bemenő élét feldolgoztuk ismerjük a legnagyobb távolságát is. 2013.02.27. 8

Leghosszabb utak(p): Topologikus rendezés(p) Táv:=(0,,0) Ciklus i=1-től Pontszám-ig Ciklus j=1-től Szomszédpontokszáma(hely(i))-ig Ha Táv(szomszéd(hely(i),j))<Táv(hely(i))+1 akkor Táv(szomszéd(hely(i),j)):=Táv(hely(i))+1 Eljárás vége. 2013.02.27. 9

Adott ponton átmenő legrövidebb kör Induljunk ki az adott pontból! Ha megy át rajta kör, akkor az a szélességi feszítőfában biztosan két különböző gyereke felé indul el. Minden ponthoz tároljuk, hogy 1 3 a kezdőpont melyik gyerekéből 3 jutottunk oda! 2 3 2 A kört okozó él az ezek közül 4 3 2 valamelyik. 4 2013.02.27. 10

Szélességi bejárás(p,v,min1,min2): Szín(p):=szürke; Sorba(p); Honnan(p):=p; Táv(p):=0 Min:=+ Ciklus amíg nem üressor? Sorból(q); Szín(q):=fekete Ciklus i=1-től Szomszédpontokszáma(q)-ig j:=szomszéd(q,i) Ha Szín(j)=fehér akkor Sorba(j); Szín(j):=szürke; Honnan(j):=q Táv(j):=Táv(q)+1 Ha p=q akkor Ős(j)=j különben Ős(j):=Ős(q) Gyökérelem gyerekének saját maga az őse, a többieké azonos a szülő ősével. 2013.02.27. 11

különben Ha Szín(j)=szürke és Ős(q) Ős(j) és Táv(j)+Táv(Q)+1<Min akkor Min:=igaz; Táv(j)+Táv(Q)+1 Min1:=q; Min2:=j Eljárás vége. Keresztél, aminek a végpontjaihoz különböző ősök tartoznak. 2013.02.27. 12

Elkerülhetetlen pont hálóban Alapötlet: A bejárás során a szürke pontokból vezet még ki feldolgozatlan él. Ha a bejárás során egyetlen 0 befokú szürke pont van, akkor az a pont elkerülhetetlen. A sorba csak a 0-befokú szürkék kerülnek be. A kezdő- és a végpont biztos elkerülhetetlen. Általános irányított körmentes gráf esete? 2013.02.27. 13

Szélességi bejárás(p): Sorba(p); Szdb:=1; Szín(p):=szürke; db:=0 Ciklus amíg nem üressor? Sorból(p); Szdb:=Szdb-1; Szín(p):=fekete Ha Szdb=0 akkor db:=db+1; Elk(db):=p Ciklus i=1-től Szomszédpontokszáma(p)-ig j:=szomszéd(p,i); Befok(j):=Befok(j)-1 Ha Befok(j)=0 akkor Sorba(j) Ha Szín(j)=fehér akkor Szín(j):=szürke Szdb:=Szdb+1 Eljárás vége. 2013.02.27. 14

Elkerülhetetlen él hálóban Alapötlet: A bejárás során a szürke pontokból vezet még ki feldolgozatlan él. Ha a bejárás során egyetlen 0 befokú szürke pont van, akkor az a pont elkerülhetetlen. Ha elkerülhetetlen pontból egy él vezet ki, akkor az az él elkerülhetetlen. Általános irányított körmentes gráf esete? 2013.02.27. 15

Szélességi bejárás(p): Sorba(p); Szdb:=1; Szín(p):=szürke; db:=0 Ciklus amíg nem üressor? Sorból(p); Szdb:=Szdb-1; Szín(p):=fekete Ha Szdb=0 és Szomszédpontokszáma(p)=1 akkor db:=db+1; Elk(db):=p Ciklus i=1-től Szomszédpontokszáma(p)-ig j:=szomszéd(p,i); Befok(j):=Befok(j)-1 Ha Befok(j)=0 akkor Sorba(j) Ha Szín(j)=fehér akkor Szín(j):=szürke Szdb:=Szdb+1 Eljárás vége. 2013.02.27. 16

Legrövidebb utak súlyozott gráfban A szélességi bejárás megadja a legrövidebb utat, ha az út hosszán a benne szereplő élek számát értjük. Ha az élek összhosszát, akkor azonban nem. Ha minden él pozitív hosszúságú, akkor a kezdőponthoz legközelebbi pontba biztosan ismerjük a legrövidebb út hosszát. A többi pontra pedig ismerjük az odavezető út hosszának egy felső korlátját. Mi a helyzet a negatív élekkel? 2013.02.27. 17

Legrövidebb utak súlyozott gráfban Abból a szürke pontból lépjünk tovább, ami a legközelebb van a kezdőponthoz prioritási sor legelső eleme. A belőle elérhető pontokra számoljunk új felső korlátot: a fehér pontokra a szürke távolságát megnöveljük az élhosszal bekerül a prioritási sorba; a szürke pontokra javítjuk a becslést az új távolsággal, ha lehetséges mozog a prioritási sorban előre. 2013.02.27. 18

Szélességi bejárás(p): Szín(p):=szürke; PrSorba(p); Táv(p):=0 Ciklus amíg nem üresprsor? PrSorból(p); Szín(p):=fekete Ciklus i=1-től Szomszédpontokszáma(p)-ig j:=szomszéd(p,i) Ha Szín(j)=fehér akkor Táv(j):=Táv(p)+Élhossz(p,j) PrSorba(j); Szín(j):=szürke különben ha Táv(j)>Táv(p)+Élhossz(p,j) akkor Táv(j):=Táv(p)+Élhossz(p,j) PrSorbanMozgat(j); Eljárás vége. 2013.02.27. 19

Adatszerkezetek II. 3. előadás vége