Erősen összefüggő (erős) komponensek meghatározása

Download Report

Transcript Erősen összefüggő (erős) komponensek meghatározása

Erősen összefüggő komponensek
meghatározása
Algoritmusok és adatszerkezetek 2.
Készítette: Tóth István (S23R35)
Erősen összefüggő komponens
• Irányított gráfban ekvivalenciareláció:
▫ a és b csúcs: relációban, ha:
 a = b, vagy
 a és b közt minden irányban megy irányított út
• Az ekvivalenciaosztályok neve: erősen
összefüggő komponensek
• Ha az egész gráf alkotja: erősen összefüggő gráf
Algoritmusok
• Kosaraju algoritmusa
▫ a másik kettővel ellentétben két mélységi bejárást
használ: kevésbé hatékony
• Tarjan algoritmusa
• Útkereső algoritmus
Kosaraju-féle eljárás: elv
• G irányított gráf
• Mélységi bejárás G-n, a csúcsok megszámozása:
▫ a rekurzív hívások visszatérésének sorrendje
szerint
• G transzponáltjának elkészítése: GT
• Mélységi bejárás GT-n a legmagasabb számú
csúcstól
• Az erősen összefüggő komponensek: a kapott
mélységi erdő fái
Kosaraju-féle eljárás: műveletigény
• V csúcshalmaz, E élhalmaz:
▫ Θ(V+E) futási idő
• Előnye:
▫ egyszerű
• Hátránya:
▫ két mélységi bejárás
Tarjan-féle eljárás: elv
• G gráf, S verem
• Mélységi bejárás tetszőleges csúcstól kezdve
▫ Nem nézi a korábban már vizsgált csúcsokat
▫ A gráf részfái lesznek az erősen összefüggő
komponensek
▫ A részfák gyökerei lesznek az erősen összefüggő
komponensek gyökerei
Tarjan-féle eljárás: elv
• A csúcsok S-be kerülnek a bejárás sorrendje
szerint
• Amikor az algoritmus befejezte egy részfa
vizsgálatát:
▫ Elkezdi kiszedni S-ből a csúcsokat, nézi, hogy
az adott csúcs gyökere-e a részfának
▫ Ha eljut a gyökeréhez: az, és az addig kiszedett
csúcsok egy erősen összefüggő komponenst
alkotnak
Tarjan-féle eljárás: animáció
forrás: http://www.wikipedia.org
Tarjan-féle eljárás: műveletigény
• V csúcshalmaz, E élhalmaz:
▫ O(|V|+|E|) futási idő
• Előnye: egy mélységi bejárás
Tarjan-féle eljárás: pszeudokód