DAG topologikus rendezése Algoritmusok és adatszerkezetek 2 Újvári Zsuzsanna
Bevezető Egy G irányított gráf DAG (Irányított körmentes gráf - KIG), ha nem tartalmaz irányított kört. DAG tulajdonság ellenőrzése ⇔ irányított kör felderítése a gráfban. Ha a gráf egy mélységi bejárása során találunk visszaélet, akkor a gráf nyilván tartalmaz irányított kört, azaz nem DAG. Legyen G = (V,E) (|V | = n) egy irányított gráf. G egy topologikus rendezése a csúcsoknak egy olyan v1,…,vn sorrendje, melyben x → y esetén x előbb van, mint y (azaz ha x = vi, y = vj, akkor i < j). A gyakorlatban használt algoritmus a következő: az adott gráfon csinálunk egy mélységi bejárást, amely során a csúcsok a kilépési számok sorrendjében kerülnek a verembe. Ezután a vermet kiürítjük és megkapjuk a topologikus rendezést. A mélységi bejárást kiegészítjük visszaél figyeléssel, és ha talál akkor az hiba.
Példa A B C D E F J
1. lépés (1) A B C D E F J
2. lépés (1) A (2) B C D E F J
3. lépés (1) A (2) B C D (3) E F J
4. lépés (1) A (2) (4) B C D (3) E F J
5. lépés (1) A (2) (5) (4) B C D (3) E F J
6. lépés (1) A (2) (5) (4) B C D 1 D (3) E F J
7. lépés (1) A (2) (5) (4) B C D 1 J D (3) E F J (6) 2
8. lépés (1) A (2) (5) (4) B C D 1 F J D (3) E F J (7) (6) 3 2
9. lépés (1) A (2) 4 (5) (4) B C D 1 C F J D (3) E F J (7) (6) 3 2
10. lépés A B C D E F J (1) (2) 4 (5) (4) 1 E C F J D (3) 5 (7) (6) 3
11. lépés A B C D E F J (1) (2) 4 (5) (4) 1 6 B E C F J D (3) 5 (7) (6) 3 2
12. lépés A B C D E F J (1) 7 (2) 4 (5) (4) 1 6 A B E C F J D (3) 5 (7) (6) 3 2
A B E C F J D → topologikus rendezés: A, B, E, C, F, J, D
Köszönöm a figyelmet 2011.04.08.