Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék 2000.

Slides:



Advertisements
Hasonló előadás
A Floyd-Warshall algoritmus
Advertisements

Készítette: Kosztyán Zsolt Tibor
KÉSZÍTETTE: Takács Sándor
Tranzitív lezárt és Warshall algoritmus
Készítette: Szinai Adrienn
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
GRÁFELMÉLET Alapfogalmak 2..
Készítette: Major Máté
Készítette: Mester Tamás METRABI.ELTE.  Adott egy G irányított vagy irányítás nélküli, véges gráf. Az eljárás célja a G gráf összes csúcsának bejárása.
Dualitás.
Illeszkedési mátrix Villamosságtani szempontból legfontosabb mátrixreprezentáció. Legyen G egy irányított gráf, n ponton e éllel. Az n x e –es B(G) mátrixot.
Illés Tibor – Hálózati folyamok
Algebrai specifikációk Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Copyright, 2009 © Szlávi Péter A kupac és a prioritási sor típuskonstrukciók Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Minimális költségű feszítőfák
Streaming Algorithms for k-core Decomposition. K-mag dekompozíció Maximális részgráf, amiben minden csúcshoz legalább k részgráfbeli csúcs csatlakozik.
Erősen összefüggő komponensek meghatározása
Szélességi bejárás , 0.
Dijkstra algoritmus Baranyás Bence. Feladat Adott egy G=(V,E) élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges.
Gráfbejárás
Operációkutatás NYME Gazdaságinformatikus mesterképzés
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Keresés Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
DAG topologikus rendezés
Copyright, 1999 © Szlávi Péter Prioritási sor típuskonstrukció Szlávi Péter ELTE Informatika Szakmódszertani Csoport
„Országos” feladat. Feladat: Egy tetszőleges, színes országokat tartalmazó térképen akar eljutni egy kommandós csapat egy országból egy másikba. Viszont.
Készítette: Kosztyán Zsolt Tibor
Kvantitatív módszerek
Gráfok Készítette: Dr. Ábrahám István.
Gráf szélességi bejárása
Készítette: Lakos Péter.  Adott egy élsúlyozott, véges gráf  Negatív élsúlyokat nem tartalmaz  Lehet irányított vagy irányítatlan  Továbbá adott egy.
Dijkstra-algoritmus ismertetése
Algoritmusok II. Gyakorlat 3. Feladat Pup Márton.
GRÁFELMÉLET Alapfogalmak 1..
Készítette: Mester Tamás METRABI.ELTE.  Adott egy G=(V,E) élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges gráf.
GRÁFELMÉLET.
A Dijkstra algoritmus.
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Nevezetes algoritmusok: Fa megvalósítása Készítette: Várkonyi Tibor Zoltán.
Copyright, 1999 © Szlávi Péter Sor típuskonstrukció Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Dinamikus programozás
1 Szélességi Bejárás Györgyi Tamás – GYTNAAI.ELTE 2007 Március 22 Algoritmusok És Adatszerkezetek 2 Gráfalgoritmus S b a d e f h g c.
Kruskal-algoritmus.
Háló- (gráf-) algoritmusok
Business Mathematics A legrövidebb út.
INFOÉRA Gráfok, gráfalgoritmusok I. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
GRÁFOK Definíció: Gráfnak nevezzük véges vagy megszámlálhatóan végtelen sok pont és azokat összekötő szintén véges vagy megszámlálhatóan végtelen sok.
Gráfok ábrázolása teljesen láncoltan
Útkeresések.
Projektmenedzsment gráf általában súlyozott irányított
Morvai Mária-Júlia F3D3D4.  Adott egy G=(V,E)élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó,véges gráf. Továbbá adott.
Halmazok Érettségi követelmények:
Gráf szélességi bejárása. A szélességi bejárás elmélete Célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő.
Algoritmusok és adatszerkezetek
Készítette : Giligor Dávid Neptun : HSYGGS
Geometriai feladatok programozása Geometriai programozás Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék 2010.
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Kvantitatív módszerek
HÁLÓZAT Maximális folyam, minimális vágás
GRÁFOK Marczis Ádám és Tábori Ármin. Kőnig Dénes ( ) Magyar matematikus Az első tudományos színvonalú gráfelmélet könyv írója.
Gráfalgoritmusok Tassy Gergely Veres Péter Gimnázium, Budapest június 30.
PRÜFER KÓD. Fák kódolása számsorozatokkal Prüfer-kód: n csúcsú fa ↔ n-2 db szám Minden szám 1 és n közötti lehet Kölcsönösen egyértelmű: n csúcsú fák.
A Dijkstra algoritmus.
Gráf csúcsainak színezése
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) IDE KELL: prioritási sor kupaccal. Juhász.
INFOÉRA Gráfok, gráfalgoritmusok III. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Gráfok 4. Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Gráfok 2. Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Gráfok - 1 Definíció: Irányított gráf (digráf) G=(V,E) rendezett pár.
Gráfalgoritmusok G=(V,E) gráf ábrázolása
Előadás másolata:

Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék

 Gráfok 1 Tartalom 0 Bevezetés 1 Hagyományos gráfábrázolások 2 A Gráftípus 2.1 Specifikáció 2.2 Megvalósítás 3 A gráfok bejárásának módszerei 3.1 Szélességi 3.2 Mélységi 4 A gráfbejárások alkalmazásai 4.1 Összefüggő-e a gráf? 4.2 A gráf komponensei 4.3 Útkeresés két pont között 2 / 26

 Gráfok 1 Tartalom 4.4 Két pont közötti legrövidebb út 4.5 A legrövidebb út súlyozott gráf esetén 4.6 Páros-e a gráf? 5 A feszítőfák 5.0 Fogalmak 5.1 Feszítőfák generálása 5.2 Minimális feszítőfák generálása 6 Az elérési és a távolsági mátrix meghatározása 6.1 Összefüggőség 6.2 Távolságmátrix súlyozott gráfokra 7 Hálózati folyamok 3 / 26

 Gráfok 1 0 Bevezetés A gráf fogalma: Gráf(P,E): P pontok és E  P  P élek halmaza Gráfokra vezető típusfeladatok:  Párosítás  Szállítás  Hátizsákfeladat  Legrövidebb út  Project management  Térképszínezés Pl.: munkát munkavállalót egymáshoz rendelni Pl.: munkát munkavállalót egymáshoz rendelni Pl.: legtöbb árut elszállítani Pl.: legtöbb árut elszállítani Pl.: „méretes” dolgokat minél kevesebb „zsákba” Pl.: kockás papíron „autós” játék Pl.: kockás papíron „autós” játék Pl.: munkákat ütemezni Pl.: legkevesebb színnel eltérően kiszínezni a térképet (  a gráf kromatikus száma) 4 / 26

 Gráfok 1 0 Bevezetés Párosítás mV 1 mV 2 mV i mV N Munkavállalók m1m1 m2m2 mjmj mMmM Munkák 5 / 26

 Gráfok 1 V 3 : 1 V 4 : 2 V N : 3 0 Bevezetés Szállítás V1V1 V2V2 V3V3 VNVN ViVi V4V4 V 2 : 1 V 1 : 2 V 2 : 2 V i : 1 V 3 : 2 V N : 3 V i : 2 6 / 26

 Gráfok 1 V 3 : 1 V 4 : 2 V N : 3 0 Bevezetés Szállítás V1V1 V2V2 V3V3 VNVN ViVi V4V4 V 2 : 1 V 1 : 2 V 2 : 2 V i : 1 V 3 : 2 V N : 3 V i : 2 Eddigi nye- reség: 1 Eddigi nye- reség: 4 Eddigi nye- reség: 6 Eddigi nye- reség: 10 7 / 26

 Gráfok 1 V 3 : 1 V 4 : 2 V N : 3 0 Bevezetés Szállítás V1V1 V2V2 V3V3 VNVN ViVi V4V4 V 2 : 1 V 1 : 2 V 2 : 2 V i : 1 V 3 : 2 V N : 3 V i : 2 Eddigi nye- reség: 1 Eddigi nye- reség: 4 Eddigi nye- reség: 6 Eddigi nye- reség: 10 Eddigi nye- reség: / 26

 Gráfok 1 0 Bevezetés Legrövidebb út – autós játék Rajt Cél 9 / 26

 Gráfok 1 0 Bevezetés Fogalmi emlékeztető:  Irányított/tatlan gráf  Út  Kör  Hurokél  Izolált pont  Összefüggő gráf E nem szimmetrikus, azaz  (p 1,p 2 )  E  (p 2,p 1 )  E Egymáshoz illeszkedő élek sorozata, amelyben nincs pont- ismétlődés, azaz út(p 1,…,p N )=((p 1,p 2 )(p 2,p 3 )...(p N-1,p N )  E : p i  p j ) VanÚt?(p,q)=(  p 1,…,p N  P: út(p 1,…,p N )  p=p 1  q=p N ) Út + kiindulási és végpont között él = záródó élsorozat, azaz kör(p 1,…,p N )=út(p 1,..,p N )(p N,p 1 ), (p N,p 1 )  E Pont, amelyre legfeljebb hurokél illeszkedik (hf.) Pont, amelyre legfeljebb hurokél illeszkedik (hf.)  p 1,p 2  P: VanÚt?(p 1,p 2 ) Egy pontra illeszkedő él, azaz e  E: e=(p,p) 10 / 26

 Gráfok 1 0 Bevezetés  Összefüggő komponens  Súlyozott gráf  Fa  Feszítőfa  Liget  Többszörös él sGráf(P,E,s:E  R) s „mérték” sGráf(P,E,s:E  R) s „mérték” Összefüggő, körmentes gráf (hf.) Összefüggő, körmentes gráf (hf.) A Gr=Gráf(P,E) gráf összes pontját tartalmazó fa, azaz Fa Gr =Gráf(P,E’), E’  E és fa Csak fa-komponenseket tartalmazó gráf (hf.) e 1..n  E: e 1..n =(p i,p j ), E multihalmaz Irányítatlanra: K  P:  p,q  K: VanÚt?(p,q)  maximális gráf Irányítottra: K  P:  p  K:  q  K: VanÚt?(p,q)  maximális gráf 11 / 26

 Gráfok 1 0 Bevezetés  Fokszám  Háló  Hálózat  Teljes gráf  Páros gráf Irányított, körmentes gráf egyértelmű kezdő- és végponttal (hf.) Irányított, összefüggő, súlyozott (  0) gráf egyértelmű kezdő- és végponttal P={p 1,..,p n }   p i  p j  P:  (p i,p j )  E  n   E  =   2  P:  R,Q  P: P=R  Q  R  Q=  :  (r,q)  E  (r  R  q  Q)  (q  R  r  Q)  * (p)=befok(p)=n, ha  e 1..n  E: e 1..n =(p 1..n,p)  (p)=kifok(p)=n, ha  e 1..n  E: e 1..n =(p,p 1..n ) 12 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások A gráfról, mint adatszerkezetről madártávlatból – műveletfajták :  Globálisak – a gráf egészére vonatkozók Konstrukciósak: üres / nem üres kezdőállapotú Állapot-tesztelők  Alkotó elemek száma / …  Struktúra-felderítők: pont-rákövetkezés 13 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások  Alkotó elemekre vonatkozók Komponensekre vonatkozók  Állapot-tesztelők: darabszám / kezdőpont / … Pontokra vonatkozók  Konstrukciósak: hozzáadás / törlés / módosítás /…  Állapot-tesztelők: érték Élekre vonatokozók  Konstrukciósak: hozzáadás / törlés / módosítás /…  Állapot-tesztelők: hossz Mindez miért érdekes? A választott ábrázolás nagyban befolyásolja ezek megvalósításának hatékonyságát. 14 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások Jelölések:  P – véges ponthalmaz,   – reláció (  P  P), a  b, ha a-ból b-be vezet él,  n– pontok száma,  E – véges élhalmaz,  é– élek száma,  L – logikai értékek halmaza,  R – valós számok,  N – természetes számok. irányítatlan gráf esetén  szimmetrikus: a  b  b  a a rövidség kedvéért: '  ' =Igaz  megadható: E-vel, M – mutatókkal TElem 15 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások Ábrázolások:  Visszatérő példa: Visszatérő példa  Csúcsmátrix Súlyozatlan gráfra: A : P  P  L, A (p,q)=p  q  Súlyozott gráfra: T : P  P  R, T (p,q)=t, ha p  q és  p-q  =t, illetve T (p,q)= ,ha nincs a gráfban (p,q) él. 16 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások Néhány egyszerű észrevétel:  nem irányított  A szimmetrikus.  az A soraiban levő Igaz (  ) értékek száma =  (p) kimenő-fokszáma, az oszlopbeliek száma =  * (p) bemenő-fokszáma. (A nem irányított gráfokra:  (p)=  * (p)).  A hurokéleket a mátrix főátlója írja le.  Ha é«n, akkor az A nagyon rosszul kitöltött, azaz az Igaz értékek relatív száma  2*é/(n*n). Pl. n pontú fára A kitöltöttsége kisebb, mint 2/n (hiszen fákra é=n-1  2*(n-1)/(n*n)<2/n). 17 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások  Többszörös (párhuzamos) súlyozatlan élek esetére:  Másik ötlet: annyi „álpont” beillesztése a gráfba, ahány többlet él van az egyes pontokhoz. Az álpontok (0 hosz- szúságú) éllel kapcsolódnak a valódihoz. Ez súlyozott gráfokra (és amelyben nincsenek eleve 0 hosszúságú élek) működő ötlet.  Hatékonyság: Könnyű új éleket hozzávenni, törölni, nehéz pontokat törölni, illetve új pontokat hozzávenni. Memóriapazarláson segíthetünk a ritka mátrixoknál alkalmazható ábrázolási (és kezelési) módszerekkel. A * : P  P  N, A * (p,q)=ennyi párhuzamos él megy p és q között. 18 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások  Csúcslista Megjegyzések:  Bonyolódnak az él-dinamikus műveletek (beillesztés, törlés)  Nehezek a pont-dinamikusak.  Súlyozott gráfok megoldhatók: (pont+súly)-kettősökkel. A l : P  (k=1..n) P k, A l (p)=a p-ből induló élek végpontjainak listája. 19 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások  Éllista egy másik elképzelés szerint: Megjegyzések:  Láncolt lista esetén könnyűek az él-dinamikus műveletek.  Bizonyos gyakori diagnosztikai kérdések megválaszolása nehézkesek (pl. van-e 2 pont között él).   Aprólékosak a pont-dinamikus műveletek. É l : E  P  P, É l (e)=(p,q), ahol az e él végpontok kettőse: p, q. É l : N  E  P  P, É l (i)=(e,p,q), azaz az i. él=e él a p és a q pont között vezet.. Mintha éllel indexelnénk. „ Listásabban ”: „ Listásabban ”: é l  ( E  P  P) * 20 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások  Pont-él mátrix Megjegyzések:  az I minden oszlopában 1 vagy 2 Igaz érték lehet; 1, ha hurokél;  kitöltöttsége rossz:  2*é/(é*n)=2/n;  fokszám = a sorbeli Igaz értékek;  irányított gráfra: 3-állapotú elemek („Nincs”, „Ki”, „Be”). I : P  E  L, I (p,e)=az e él a p ponton nyugszik-e. I * : P  E  {0,Ki,Be}, I * (p,e) = Ki,ha az e él a p pontból lép ki, I * (p,e) = Be,ha az e él a p pontba lép be, I * (p,e) = 0,ha az e él nem érintkezik a p ponttal. 21 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások  Algoritmikus, „mutatós” ábrázolás Megjegyzések:  Ábrázolás: „sovány”, ui. a komponenseket nem „tartja össze” semmi, tehát „kiegészítésre” szorul.  Kezelési nehézségek nyilvánvalók (láncolásból adódóak).  Előny: általánosság és abszolút dinamikusság. ( P   (k=0..n) M k ) * 22 / 26

 Gráfok 1 1 Hagyományos gráfábrázolások „Általánosítások” ábrázolásai  Elérési (összefüggőségi) mátrix Megjegyzés:  A blokkok szemmel láthatóvá teszik a komponenseket. E : P  P  L, E (p,q)=VanÚt?(p,q). átsorszámozás 23 / 26

 Gráfok 124 / 26 1 Hagyományos gráfábrázolások  Távolságmátrix T : P  P  R, T (p,q)=t, ha p  q és  p-q  =t, illetve T (p,q)= , ha nincs a gráfban (p,q) él. 1-lépéses

 Gráfok 125 / 26 1 Hagyományos gráfábrázolások 1-lépéses2-lépéses3-lépéses 4-lépéses

 Gráfok 1 Megjegyzés: Példagráf 26 / 26