Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék 2000."— Előadás másolata:

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

2  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

3  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

4  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

5  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

6  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

7  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

8  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

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

10  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

11  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

12  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

13  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

14  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

15  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

16  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

17  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

18  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

19  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

20  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

21  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

22  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

23  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

24  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

25  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

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


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

Hasonló előadás


Google Hirdetések