30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

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

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

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

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

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika 2.C szakirány

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:

Diszkrét matematika 2.

Diszkrét matematika 2.C szakirány

22. GRÁFOK ÁBRÁZOLÁSA

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

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

Diszkrét matematika 2.

Diszkrét matematika 2.C szakirány

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

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

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

Algoritmusok és adatszerkezetek 2.

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

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

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

28. MÉLYSÉGI BEJÁRÁS

Gráfalgoritmusok ismétlés ősz

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Alap fatranszformátorok II

KOVÁCS BÉLA, MATEMATIKA I.

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.

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

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

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

KOVÁCS BÉLA, MATEMATIKA I.

Algoritmusok és adatszerkezetek gyakorlat 07

Az optimális megoldást adó algoritmusok

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

Diszkrét matematika 2.

2. Visszalépéses stratégia

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

A számítástudomány alapjai

V. Kétszemélyes játékok

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

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

1. tétel - Gráfok alapfogalmai

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

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

Adatszerkezetek 2. Dr. Iványi Péter

Diszkrét matematika 2.

Adatszerkezetek 7a. Dr. IványiPéter

Elemi adatszerkezetek

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

Diszkrét matematika 2.C szakirány

Diszkrét matematika I.

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

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

2. Visszalépéses keresés

A gráffogalom fejlődése

Diszkrét matematika 2.

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/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

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

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.

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

DISZKRÉT MATEMATIKA 2 KIDOLGOZOTT TÉTELSOR 1. RÉSZ

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

Relációk. 1. Descartes-szorzat. 2. Relációk

Nagy Gábor compalg.inf.elte.hu/ nagy

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

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

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

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Gráfalgoritmusok: összefüggőség, párosítás páros gráfban

Javító és majdnem javító utak

Relációk. 1. Descartes-szorzat

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.

Ramsey-féle problémák

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

Adatszerkezetek II. 2. előadás

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

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

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

Általános algoritmustervezési módszerek

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

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:

karakterisztikus egyenlet Ortogonális mátrixok. Kvadratikus alakok főtengelytranszformációja

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

GráfRajz fejlesztői dokumentáció

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

KOVÁCS BÉLA, MATEMATIKA I.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

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

GRÁFOK ÉS ALGORITMUSOK ELMÉLETE VIZSGAKÉRDÉSEK Matematika BSc Elemző szakirány II. év 1. félév

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Átírás:

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá egyesítjük. A részekre bontás alapja gyakran a gráfok összefüggősége: a gráfot olyan részekre bontjuk, amelyek a csúcsok közötti közlekedés szempontjából egyben lévőnek érzünk. Egy irányítatlan gráfot összefüggőnek mondunk, ha bármely két csúcsa összeköthető úttal. Ha egy gráf összefüggő komponensekre esik szét, akkor ez egyes részeken belül szabadon lehet közlekedni az irányítatlan éleken, de a komponensek között nincsen átjárás. Ez egy ekvivalencia osztályozás a csúcsok között, az elérhetőség relációja alapján. Az irányított gráfok esetén kétféle összefüggőséget is bevezetnek. A gráfot egyszerűen csak összefüggőnek mondjuk, ha az élek irányításától eltekintve, az előző értelemben összefüggő. Szigorúbb fogalom az erős összefüggőség, amely azt követeli meg, hogy egy ennek eleget tevő gráfban bármely csúcs elérhető bármelyik másikból, a gráf irányított élein haladva. Ha egy irányított gráf bomlik részekre az erős összefüggőség relációja szerint, akkor a gráf erősen összefüggő (erős) komponenseihez jutunk. Ebben a fejezetben az irányított gráfok erősen összefüggő komponenseinek előállítására adunk eljárást, amely két mélységi bejárás egymás utáni alkalmazásával lehetséges. 30.1. Néhány fogalom és összefüggés Definíció: Legyen G = (V, E) irányított, véges gráf. G összefüggő, ha G irányítás nélkül összefüggő. G erősen összefüggő, ha u, v E esetén u v út. A definíciók közötti különbség érzékelhető, ha egy város úthálózatára egyszer a gyalogos, másszor az autós szemével tekintünk. A gyalogosok számára az egyirányú utca nem jelent megkötést, tehát ők tekinthetik irányítatlannak az utcákat, míg az autósok számára az utcák irányítottak. Egy városrész összefüggő, ha gyalogosan bármely pontjából bármely pontjába eljuthatunk, míg a városrész erősen összefüggő, ha ugyanez megtehető autóval is. Érezhető, hogy az erősen összefüggőség valóban szigorúbb követelmény, mint az (egyszerű) összefüggőség. A 30.1. ábrán látható gráf összefüggő, de nem erősen összefüggő, hiszen például a 2-es csúcsból nem lehet eljutni az 1-es csúcsba. 30.1. ábra. Egy összefüggő, de nem erősen összefüggő gráf

Definíció: Legyen G = (V, E) irányított, véges gráf, u, v V. Ekkor legyen u v, ha léteznek u v, illetve v u utak a gráfban. Állítás: A reláció ekvivlenciareláció, tehát osztályozza a V csúcshalmazt. Definíció: A reláció ekvivalencia osztályait nevezzük a gráf erős komponenseinek. Állítás: Egy összefüggő gráf két erős komponense között az élek csak egy irányba mehetnek. Bizonyítás: Indirekt tegyük fel, hogy két erős komponens között oda-vissza is mehetnek élek. Legyen a két komponens C 1 és C 2 (30.2. ábra). Ekkor u C 1 és v C 2 csúcsok között léteznek u v és v u utak, ugyanis az erős komponenseken belül definíció szerint, C 1 és C 2 között pedig az indirekt feltevés szerint létezik út, tehát u v, ami ellentmondás. 30.2. ábra. Erős komponensek közötti utak Definíció: Legyen G = (V, E) irányított, véges gráf. G redukált gráfja olyan irányított gráf, amelynek csúcsai G erős komponensei, és a redukált gráf két csúcsa között, akkor halad él, ha csúcsoknak megfelelő G erős komponensei között halad él, továbbá az él irányítása megegyezik az erős komponensek között haladó él(ek) irányításával. A 30.1. ábrán látható gráf redukált gráfját illusztráltuk a 30.3. ábrán. 30.3. ábra. Redukált gráf Állítás: A redukált gráf DAG, azaz körmentes irányított gráf. Bizonyítás: Indirekt tegyük fel, hogy a redukált gráf nem DAG, azaz létezik benne irányított kör. Legyen egy ilyen kör C 1 C 2 C k C 1. Ekkor a kör mentén lévő komponensek kölcsönösen elérhetők, vagyis C 1 C 2 C k, ami ellentmondás. 30.2. A redukált gráf előállításának algoritmusa A redukált gráf előállításához tehát a gráf erős komponenseit kell meghatároznunk, amelyet a következő algoritmussal végezhetünk: 1. A gráfot bejárjuk mélységi bejárással, a csúcsokat a befejezési számok sorrendjében kiírjuk egy verembe. 2. Transzponáljuk a gráfot, azaz megfordítjuk az élek irányítását.

3. Bejárjuk a transzponáltat mélységi bejárással, de nem az alapvető sorrend szerint vesszük a csúcsokat kiinduló csúcsnak, hanem az 1. lépésben készített veremből történő kivétel sorrendjében. A lépések végrehajtásával egy mélységi erdőt kapunk, amelyben a fák a gráf erős komponensei lesznek. Ezeknek a fáknak a csúcsait összevonhatjuk egy csúccsá, majd a csúcsok között az éleket az eredeti gráf éleinek megfelelően megadjuk, így megkapjuk a redukált gráfot. Az algoritmus műveletigényénél figyelembe kell venni a mélységi bejárás O(n + e), a gráf megfordítás O(e), illetve a verem műveletek műveletigényeit, így T(n) = O(n + e). Megjegyzés: Ha a gráf DAG, akkor az algoritmus 3. lépésében említett bejárási sorrend nem más, mint a gráf egy topologikus rendezése. Állítás: Bármely mélységi bejárás során, egy erős komponens összes csúcs ugyanabba a mélységi fába kerül. Bizonyítás: Legyen u az a csúcs, amelyet a bejárás során először érünk el az erős komponens csúcsai közül. Ekkor a komponens összes többi csúcsa még fehér, továbbá erős komponensről van szó, így az összes csúcsba vezet út. Emiatt az erős komponens összes többi csúcsába vezet fehér csúcsokból álló út. A Fehér út tétel szerint az erős komponens összes többi csúcsa u leszármazottja lesz a mélységi fában. Állítás: Futtassuk le a fenti algoritmust a G = (V, E) gráfon. Legyenek u, v V a gráf csúcsai, és tekintsük az algoritmus 3. lépésében kapott mélységi fákat. Ekkor, u v akkor és csak akkor, ha u és v ugyanabban a mélységi fában vannak. Bizonyítás: : Az erős komponensek csúcsai minden mélységi bejárás során ugyanabba a fába esnek, továbbá G és G T erős komponensei azonosak, így u és v ugyanabban a mélységi fába esnek a G T mélységi bejárása során. : Tegyük fel, hogy u és v ugyanabban a mélységi fában vannak. Legyen w ennek a fának a gyökere. Mivel u leszármazottja w-nek, w u út G T -ben, tehát u w út Gben. Legyen u az u w útnak a legkisebb mélységi számú csúcsa z algoritmus 1. lépésbeli bejárásánál. Ekkor w leszármazottja u -nek (mivel u elérésekor u w minden csúcsa fehér, alkalmazható a Fehér út tétel). Tehát u w út G-ben. Az u gyökerű részfában bszám[u ] a legnagyobb befejezési szám, tehát u -nek w-nél előbb kell lennie a fordított bszám listában, azonban w mégis előbb van a listában, mivel G T -ben való bejárásnál gyökér lett. Ebből következik, hogy u = w. Tehát az u w úton mszám[w] a legkisebb mélységi szám, és bszám[w] a legnagyobb befejezési szám (az első bejárás szerint), így u w csúcsai leszármazottai w-nek, tehát w u út G-ben. Mivel w u út és u w utak G-ben, u w. Hasonlóan belátható, hogy v w. Mivel a reláció ekvivalencia reláció, u v. 30.3. Szemléltetés Tekintsük a 30.1. ábrán bemutatott gráfot. Futtassuk le a mélységi bejárást a gráfon. A csúcsok feldolgozási sorrendje legyen a csúcsok címkéje szerint rendezett. A 30.4. ábrán látható az első mélységi bejárás eredménye. A befejezési számok szerint csökkenően a csúcsok sorrendje: 1, 4, 2, 5, 3. (Alább két ábra látható, a második ábra már a tranzitív gráf bejárását szemlélteti.)

30.4. ábra. Egy gráf mélységi bejárása 30.5. ábra. A tranzitív gráf mélységi bejárása, az első két mélységi fa előállítása

A gráf transzpontáltján kell a mélységi keresést lefuttatni a csúcsok fent említett sorrendjében (lásd: 30.5. ábra), vagyis az 1. csúcstól indítjuk a mélységi bejárást. Mivel ebből a csúcsból a transzponáltban nem indult ki él, ezért a mélységi bejárás azonnal visszalép, így ki is alakul az első fa a mélységi erdőben, amely csupán az 1-es csúcsból áll. Ezt követően az algoritmus a 4-es csúcsból indítja a bejárást, de mivel csupán az 1-es csúcsba vezet él (amelyet már felfedeztünk), ismét visszalépés következik, és kialakul a második mélységi fa. 30.6. ábra. A harmadik mélységi fa előállítása 30.7. ábra. A tranzitív gráf mélységi fái A következő lépésben a mélységi bejárás a 2-es csúcsból indul, amelyből az 1-esbe már nem, de a 3-as csúcs felé tovább tud lépni, majd onnan az 5-ös csúcsra (30.6. ábra).

Innen ismét visszalépések következnek, és kialakul a harmadik mélységi fa a gráfban, amely a 2,3,5 csúcsokat tartalmazza. A 30.7. ábrán láthatjuk színek szerint a tranzitív gráf mélységi fáit, vagyis az eredeti gráfunk erős komponenseit. Jól látható, hogy a 2,3,5 csúcsokat összevonva az eredeti gráfban visszakapjuk a 30.3. ábra redukált gráfját.