Adatszerkezetek 2. Dr. Iványi Péter



Hasonló dokumentumok
Adatszerkezetek 7a. Dr. IványiPéter

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

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

Feladatok, amelyek gráfokkal oldhatók meg 1) A königsbergi hidak problémája (Euler-féle probléma) a

Gráfelméleti alapfogalmak

Algoritmusok bonyolultsága

Elemi adatszerkezetek

22. GRÁFOK ÁBRÁZOLÁSA

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

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

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

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

Algoritmusok és adatszerkezetek gyakorlat 07

Diszkrét matematika 2.C szakirány

Gráfelméleti feladatok. c f

Gráfalgoritmusok ismétlés ősz

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

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

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

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

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

10. előadás Speciális többágú fák

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

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

Adatszerkezetek és algoritmusok

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. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

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

Struktúra nélküli adatszerkezetek

Algoritmuselmélet 18. előadás

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

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

Diszkrét matematika 2.C szakirány

3D számítógépes geometria és alakzatrekonstrukció

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

A számítástudomány alapjai

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

Algoritmuselmélet 2. előadás

TÉRINFORMATIKAI ALGORITMUSOK

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

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság

2. csoport, 8. tétel: Gráfok

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

A gráffogalom fejlődése

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

Síkbarajzolható gráfok Április 26.

Diszkrét matematika 2.C szakirány

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

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

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

Diszkrét matematika 2.C szakirány

Amortizációs költségelemzés

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

Adatszerkezetek II. 1. előadás

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

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:

3D-s számítógépes geometria és alakzatrekonstrukció

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

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

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

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

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

Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek

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.

Adatszerkezetek 1. Dr. Iványi Péter

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

Síkbarajzolható gráfok, duális gráf

2. Visszalépéses keresés

Bevezetés a számításelméletbe (MS1 BS)

1. tétel - Gráfok alapfogalmai

Az optimális megoldást adó algoritmusok

SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE

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

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

23. SZÉLESSÉGI BEJÁRÁS

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

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

Síkba rajzolható gráfok

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

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

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

Intelligens Rendszerek Elmélete IRE 4/32/1

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Dijkstra algoritmusa

Mesterséges Intelligencia MI

GráfRajz fejlesztői dokumentáció

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Hierarchikus adatszerkezetek

file:///d:/okt/ad/jegyzet/ad1/b+fa.html

Adatszerkezetek 1. előadás

Diszkrét matematika 2.

Vektorok, mátrixok, lineáris egyenletrendszerek

Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása

21. Adatszerkezetek Az adattípus absztrakciós szintjei Absztrakt adattípus (ADT) Absztrakt adatszerkezet (ADS) Egyszerű adattípusok Tömbök

Adatszerkezetek 2. Dr. Iványi Péter

Gráfelméleti feladatok programozóknak

Adatszerkezetek II. 2. 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)}

Átírás:

Adatszerkezetek 2. Dr. Iványi Péter 1

Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2

Bináris fák Azokat a fákat, amelyekben egy elemből csak két másik elembe mutat nyíl bináris fáknak nevezzük. A bináris fa Vagy üres fa Vagy egy olyan fa amelynek a bal és jobb oldali mutatója egy-egy bináris fára mutat

Bináris fák, példa root alma korte szőlő barack szilva dió 4

Bináris kereső fa építése Helyezzük el az első elemet. Ha a következő elem kisebb, mint az előző akkor a gyökérelemtől balra helyezzük el, ha nagyobb akkor jobbra. A bevitt elemeket bejárva, ha a csomópontnál kisebb akkor balra menjünk, egyébként jobbra. 5

Példa root 5 Input: 5 6

Példa root 5 Input: 5 7

Példa root 5 Input: 5 9 9 8

Példa root 5 Input: 5 9 4 9 4 9

Példa root 5 Input: 5 9 4 1 9 1 4 10

Példa root 5 Input: 5 9 4 1 6 1 4 6 9 szint Legnagyobb elem 2 lépésben található meg Ha más sorrendben visszük be az elemeket más fát kapunk! 11

Példa root 1 Input: 1 4 5 6 9 4 5 6 6szint Legnagyobb elem 6 lépésben található meg 9 12

Bejárási példa root 5 9 1 4 6 Eredmény: 1 1

Bejárási példa root 5 9 1 4 6 Eredmény: 1 14

Bejárási példa root 5 9 1 4 6 Eredmény: 1 4 15

Bejárási példa root 5 9 1 4 6 Eredmény: 1 4 5 16

Bejárási példa root 5 9 1 4 6 Eredmény: 1 4 5 6 17

Bejárási példa root 5 9 1 4 6 Eredmény: 1 4 5 6 9 (ZH kérdés) 18

Bináris kereső fa A bináris kereső fákba gyorsan lehet adatot beilleszteni és adatot keresni Általában egy adat keresését egy N csomópontú fában log(n) idő alatt lehet végrehajtani Mivel különböző sorrendű adatok esetén különböző fát kapunk, rosszabb esetben lassabb az algoritmus (rosszul egyensúlyozott bináris fák) Egyensúlyozott fát kell létrehozni 19

Egyensúlyozás Alapművelet a forgatás balra jobbra 20

Forgatás Max szintek száma: 5 Max szintek száma: 4 (ZH kérdés) 21

Mélységi keresés fákban 1. A gyökér csúcsból indulunk 2. Addig megyünk lefelé amíg lehetséges. Ekkor visszalépünk egyet 4. Ha most nem a gyökérben állunk akkor visszaugrunk a 2. Lépésre BACKTRACK: lásd előző bejárási példa Másik módszer: Szélességi keresés 22

Fákban vagy gráfokban Szélességi keresés Egy tetszőleges csomópontból indulunk Minden lépésben a feldolgozandó csúcsokhoz hozzáadjuk a legutóbbi lépésben elért csúcsokat 2

Példa szélességi keresésre root 5 Lista: 5 9 1 4 6 Eredmény: 24

Példa szélességi keresésre root 5 Lista: 9 9 1 4 6 Eredmény: 5 25

Példa szélességi keresésre root 5 Lista: 9 9 1 4 1 4 6 Eredmény: 5 26

Példa szélességi keresésre root 5 Lista: 9 1 4 6 1 4 6 Eredmény: 5 9 27

Példa szélességi keresésre root 5 Lista: 9 4 6 1 4 6 Eredmény: 5 9 1 28

Példa szélességi keresésre root 5 Lista: 6 9 1 4 6 Eredmény: 5 9 1 4 29

Példa szélességi keresésre root 5 Lista: - 9 1 4 6 Eredmény: 5 9 1 4 6 0

Bináris fa Művelet Átlagos eset Legrosszabb eset Keresés O(log N) O(N) Beillesztés O(log N) O(N) Törlés O(log N) O(N) Kiválasztás O(N) O(N) Rendezés O(N) O(N) 1

Gráfok A legelvontabb adattípus, de fontos több szempontból is Példa: Vegyük az európai országokat, minden ország egy csomópont Húzzunk vonalat két ország (csomópont) közé, ha van közös határuk 2

Példa 18 17 19 16 8 14 15 5 2 5 7 1 20 4 6 6 11 10 12 7 24 2 25 22 21 1 2 9 26 1 28 29 0 27 4

Eredmény 9 4

Eredmény 5

Csomópontok (V) Élek (E) Gráf csomópontok + élek = gráf (G) G=(V,E) Gráfok: Objektumok, helyek, emberek,... közötti valamilyen kapcsolatot írnak le 6

Élek Irányítottság nélküli él Irányított élek A B Egyirányú él A B Kéirányú él A B 7

Súlyozott élek Számot rendelünk az élekhez Például Ellenállás Hossz Egyéb jellemző Legrövidebb út A-ból D-be? 2 A B 5 2 Csomópontok is lehetnek súlyozottak C D 8

Gráfok ábrázolása 1 2 Szomszédsági lista A ponttal szomszédos pontokat tároljuk egy listában 5 4 Pontok listája 1 2 2 5 1 4 5 2 4 4 5 2 5 1 2 4 9

Gráfok ábrázolása 1 2 5 4 Irányítatlan gráf esetén: A T = A Szomszédsági mátrix (csúcsmátrix) 1 2 4 5 a ij 1, ha (i, j) E = 0, külkönben 1 2 4 5 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 40

Teljes gráf Minden csomópont minden csomóponttal össze van kötve 41

Izomorf G 1 és G 2 gráf izomorf, ha van közöttük egy-egy értelmű megfeleltetés. B A H B E H C G G C D F D F E A 42

Utak és körök A G=(V,E) gráfban az u csúcsot az u csúccsal összekötő út, amely a csomópontok véges sorozata, [u 0, u 1,..., u n ], ahol u 0 = u és u n = u és (u i-1,u i ) eleme E-nek. Az út hossza az élek száma Az út egy kör, ha az [u 0, u 1,..., u n ] utban u 0 = u n 4

Euler féle gráf Minden élen úgy végig lehet menni, hogy minden élen csak egyszer megyünk át 44

N csomópontú gráf Gráf éleinek összege Egy csúcsba befutó élek száma: fokszám ( ) P 1 P 2 P 1, P 2, P n (P 1 ), (P 2 ), (P n ) P P n E = 1 2 n i= 1 ρ ( P i ) 45

Königsbergi hidak problémája Be lehet-e járni a várost úgy, hogy minden hídon csak egyszer megyünk át? 46

Königsbergi hidak problémája A C D A csúcsok nem páros fokúak. Tétel : ha páros fokúak a csúcsok, akkor körül lehet járni és Euler gráf B 47

Hamilton kör Egy irányítatlan gráfban olyan kör mely a gráf minden pontján pontosan egyszer megy végig. Dodekaéder gráf reprezentációja 48

Utazó ügynök probléma Travelling salesman problem (TSP) Egy ügynöknek n várost kell meglátogatnia tetszőleges sorrendben, de minnél kisebb utazási költség mellett. Adott egy n csúcsú teljes gráf, melynek éle súlyozottak A feladat olyan Hamilton-kör megtalálása, melynke összköltsége minimális (az élekhez rendelt számok összege) 49

Fák A fa olyan gráf, amiben nincs kör Tétel : ha n csúcsa van egy fának akkor n-1 éle 50

Laplace mátrix a ij = -1ha i ρ j és ( v ) v i i és ha i v = j 0 egyébként j szomszédosak 1 2 4 5 1 5 2 4 1 2 4 5 2-1 0 0-1 -1 4-1 1-1 0-1 2-1 0 0-1 -1-1 -1-1 0-1 51

Fiedler vektor A Laplace mátrix második legkisebb saját vektora Megadja hogyan kell a gráfot elvágni úgy, hogy A lehető legkevesebb élet vágjuk el A csomópontok száma a két al-gráfban egyenlő legyen 52

Gráfok, duális gráfok 5

Voronoi diagram Egy pont halmaz közelségi diagramja Felosztja a teret úgy, hogy a tartomány minden pontja közelebb van a tartomány pontjához mint bármelyik másik ponthoz 54

Delaunay háromszögelés A Voronoi diagram duálisa egy háromszögelés Matematikailag definiálható A háromszögelés egyedi A háromszögek köré írt kör üres!!!! Maximalizálja a háromszögek minimális szögét Kiterjeszthető n dimenzióba Felhasználása széleskörű 55

Felszín modellezés 11,000,000 magassági mérés kombinálásából 10,000 pont és 260,000 háromszögből készített model 56

Véges elemes analízis 57

Delaunay háromszögelés 58

Eredmény 59