Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék 2018.12.25. Gráfok 1. Szlávi Péter ELTE IK Média- és Oktatásinformatikai Tanszék szlavi@ludens.elte.hu http://people.inf.elte.hu/szlavi 2000 Gráfok 1
Tartalom 0 Bevezetés 1 Hagyományos gráfábrázolások 2 A Gráftípus 2018.12.25. 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 2018.12.25. Gráfok 1 Gráfok 1
2018.12.25. 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 2018.12.25. Gráfok 1 Gráfok 1
0 Bevezetés A gráf fogalma: Gráf(P,E): P pontok és EPP élek halmaza 2018.12.25. 0 Bevezetés A gráf fogalma: Gráf(P,E): P pontok és EPP élek halmaza Gráfokra vezető típusfeladatok: Párosítás Szállítás Hátizsákfeladat Intervallumpakolás Project management Térképszínezés Pl.: munkát munkavállalót egymáshozrendelni Pl.: szállítást legkevesebb lépésben megszervezni Pl.: „méretes” dolgokat minél kevesebb „zsákba” Pl.: intervallumokból minél több adottba Pl.: munkákat ütemezni Pl.: legkevesebb színnel eltérően kiszínezni a térképet 2018.12.25. Gráfok 1 Gráfok 1
0 Bevezetés Példák Párosítás Munkavállalók mH1 mH2 mHj mHM Munkahelyek 2018.12.25. 0 Bevezetés Példák Párosítás mV1 mV2 mVi mVN Munkavállalók mH1 mH2 mHj mHM Munkahelyek 2018.12.25. Gráfok 1 Gráfok 1
0 Bevezetés Szállítás V2 V1 VN V4 V3 Vi V1: 0 V3: 2 … VN: 3 2018.12.25. 0 Bevezetés V1: 0 V3: 2 … VN: 3 Szállítás V2 V2: 1 V3: 0 … VN: 2 V1 V1: 1 V2: 0 … VN-1: 2 VN V1: 1 V2: 0 … VN: 0 V4 V3 V1: 2 V2: 2 … VN: 0 V1: 1 V2: 0 … VN: 0 Vi 2018.12.25. Gráfok 1 Gráfok 1
0 Bevezetés Fogalmi emlékeztető: Irányított/tatlan gráf Út Kör 2018.12.25. 0 Bevezetés E nem szimmetrikus, azaz (p1,p2)E (p2,p1)E Fogalmi emlékeztető: Irányított/tatlan gráf Út Kör Izolált pont Összefüggő gráf Egymáshoz illeszkedő élek sorozata, amelyben nincs pont-ismétlődés: azaz út(p1,…,pN)=((p1,p2)(p2,p3)...(pN-1,pN)E : pipj) VanÚt?(p,q)=(p1,…,pNP: út(p1,…,pN) p=p1 q=pN) Út + kiindulási és végpont között él = záródó élsorozat, azaz kör(p1,…,pN)=út(p1,..,pN)(pN,p1), (pN,p1)E pont, amelyre legfeljebb hurokél illeszkedik (hf.) p1,p2P: VanÚt?(p1,p2) 2018.12.25. Gráfok 1 Gráfok 1
0 Bevezetés Összefüggő komponens Súlyozott gráf Fa Feszítőfa Liget 2018.12.25. 0 Bevezetés Irányítatlanra: KP: p,qK: VanÚt?(p,q) maximális gráf Irányítottra: KP: pK: qK: VanÚt?(p,q) maximális gráf Összefüggő komponens Súlyozott gráf Fa Feszítőfa Liget Hurokél Többszörös él sGráf(P,E,s:ER) s „mérték” Összefüggő, körmentes gráf (hf.) A Gr=Gráf(P,E) gráf összes pontját tartalmazó fa, azaz FaGr=Gráf(P,E’), E’E és fa Csak fa-komponenseket tartalmazó gráf (hf.) eE: e=(p,p) e1..nE: e1..n=(pi,pj), E multihalmaz 2018.12.25. Gráfok 1 Gráfok 1
0 Bevezetés Fokszám Háló Hálózat Teljes gráf Páros gráf 2018.12.25. 0 Bevezetés *(p)=befok(p)=n, ha e1..nE: e1..n=(p1..n,p) (p)=kifok(p)=n, ha e1..nE: e1..n=(p,p1..n) 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={p1,..,pn} pipjP: (pi,pj)E P:R,QP: P=RQ RQ= : r,r’R:(r,r’),(r’,r)E, q,q’Q:(q,q’),(q’,q)E n E = 2 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 1 Hagyományos gráfábrázolások TElem irányítatlan gráf esetén szimmetrikus: ab ba Jelölések: P – véges ponthalmaz, – reláció (ÌPP), ab, 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. megadható: E-vel, M – mutatókkal a rövidség kedvéért: '' =Igaz 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 1 Hagyományos gráfábrázolások Ábrázolások: Visszatérő példa: Csúcsmátrix Súlyozatlan gráfra: A:PPL, A(p,q)=pq. Súlyozott gráfra: T:PPR, T(p,q)=t, ha pq és p-q=t, illetve T(p,q)=,ha nincs a gráfban (p,q) él. 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 1 Hagyományos gráfábrázolások Néhány egyszerű észrevétel: nem irányított A szimmetrikus. A soraiban levő Igaz értékek száma =r(p) kimenő-fokszáma, az oszlopbeli Igazak száma=r*(p) bemenő-fokszáma. (A nem irányított gráfokra r(p)=r*(p)). A hurokéleket a mátrix főátlója írja le. Ha é«O(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). 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 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. Így akár súlyuk is lehet az éleknek.) Hatékonyság: könnyű új éleket hozzávenni, törölni, nehéz pontokat törölni, illetve új pontokat hozzávenni. Memória pazarláson segíthetünk a ritka mátrixoknál alkalmazható ábrázolási (és kezelési) módszerekkel. A*:PPN, A*(p,q)= ennyi párhuzamos él megy p és q között. 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 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. Al:P(k=1..n)Pk, Al(p)=a p-ből induló élek végpontjainak listája. 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 1 Hagyományos gráfábrázolások Mintha éllel indexelnénk. É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:EPP, Él(e)=(p,q), ahol az e él végpontok kettőse: p, q. Él:NEPP, Él(i)=(e,p,q), azaz az i. él=e él a p és a q pont között vezet.. „Listásabban”: Él(EPP)* 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 1 Hagyományos gráfábrázolások Pont-él mátrix Megjegyzések: 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:PEL, I(p,e)=az e él a p ponton nyugszik-e. I = Incidencia mátrix I*:PE{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. 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 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)Mk )* 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 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ések: A blokkok szemmel láthatóvá teszik a komponenseket. E:PPL, E(p,q)=VanÚt?(p,q). átsorszámozás 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 1 Hagyományos gráfábrázolások Távolságmátrix T:PPR, T(p,q)=t, ha pq és p-q=t, illetve T(p,q)=, ha nincs a gráfban (p,q) él. 1-lépéses 2018.12.25. Gráfok 1 Gráfok 1
1 Hagyományos gráfábrázolások 2018.12.25. 1 Hagyományos gráfábrázolások 1-lépéses 2-lépéses 3-lépéses 4-lépéses 2018.12.25. Gráfok 1 Gráfok 1