DAG (Directed Acyclic Graph)
: λ°©ν₯ μ¬μ΄ν΄(directed cycle)μ΄ μλ λ°©ν₯ κ·Έλν.
(μκΈ° μμ μΌλ‘ λμμ€μ§ μλ λ°©ν₯κ·Έλν..)
μ) μμ λ€μ μ°μ μμ
μμ κ·Έλνμμ bκ° λκΈ° μν΄μλ aκ° λ°λμ μ νλμ΄μΌ νλ€!
μμμ λ ¬ (topological ordering)
- DAGμμ λ Έλλ€μ μμν(sorting) .. v1, v2, ..., vn.
λ¨ λͺ¨λ μμ§(vi, vj)μ λν΄μ i < jκ° λλλ‘!
μμ κ·Έλνμμ μμμ λ ¬μ νμ λ, μΌμͺ½μμ μ€λ₯Έμͺ½ λ°©ν₯μΌλ‘ μ λ ¬νμ λ, a-g-... λλ a-b-... μΈλ°, μλ°©ν₯μΌλ‘ κ°λ©΄ μ λλ€. (μ€λ₯Έμͺ½μμ μΌμͺ½μΌλ‘ κ°λ©΄ μ λ μ λλ€.)
μ΄λ€ λ Έλμ λν΄μ λ€μ΄μ€λ λ Έλμ κ°―μλ₯Ό in-degree, λκ°λ λ Έλμ κ°―μλ₯Ό out-degreeλΌ νλ€.
μ) λ Έλ aλ in-degree κ° 0μ΄λ€. : λ Έλ aμλ λ€μ΄ μ€λ λ Έλλ€μ΄ μλ€..
1. μ΄ κ·Έλνμ λͺ¨λ λ Έλλ€μ λν in-degreeκ° 0μΈ λͺ¨λ λ Έλλ€μ μ°Ύλλ€.
2. μμ κ·Έλνμμ in-degreeκ° 0μΈ λ Έλλ λ Έλ aμ λ Έλ gμ΄λ€.
(in-degreeκ° 0μ΄λΌλ μλ―Έλ λ Έλ aμ λ Έλ gμ μ ννλ μμ μ΄ μλ€λ λ»! λ Έλ aλ₯Ό λ¨Όμ νλ λ Έλ gλ₯Ό λ¨Όμ νλ μκ΄μ΄ μλ€..)
3. λ Έλ aμ in-degree λ 0μ΄λ€.
4. λ Έλ aμμ λκ°λ λ Έλμ κ°―μμΈ out-degreeλ λ Έλ bμ λ Έλ dλ‘ 2κ°μ΄λ€.
5. λ Έλ bμ λ Έλ dλ₯Ό μΆλ ₯νκ³ , λ Έλ aμ λν out-degree λ κ°λ₯Ό μ§μ΄λ€.
6. μ΄ κ·Έλνμμ in-degreeκ° 0μΈ λ Έλλ₯Ό λͺ¨λ μ°Ύλλ€.
(μ΄μ λ Έλ gλ₯Ό λ¨Όμ νλ λ Έλ bλ₯Ό λ¨Όμ νλ μκ΄ μλ€.)
7. λ Έλ gμ in-degreeλ 0μ΄λ€.
8. λ Έλ gμμ λκ°λ λ Έλμ κ°―μμΈ out-degreeλ λ Έλ dλ‘ 1κ°μ΄λ€.
9. λ Έλ bμ in-degreeλ 0μ΄λ€. (λ Έλ aμ out-degreeλ₯Ό μμ νμΌλ)
10. λ Έλ bμ λν out-degreeλ λ Έλ cμ λ Έλ eλ‘, 2μ΄λ€.
... λ°λ³΅
// μμμ λ ¬ μκ³ λ¦¬μ¦ sudo code 1
topologicalSort1 (G)
{
for <- 1 to n // nκ°μ λ
Έλλ₯Ό μΆλ ₯νλ©΄ λλκΉ
{
μ§μ
κ°μ (Ingoing degree)μ΄ μλ μμμ μ μ uλ₯Ό μ ννλ€;
A[i] <- u;
μ μ uμ uμ μ§μΆκ°μ (Outgoing degree)μ λͺ¨λ μ κ±°νλ€;
}
> λ°°μ΄ A[1...n]μλ μ μ λ€μ μμμ λ ¬λμ΄ μλ€
}
μμ sudo codeμμ 1) indegree = 0μΈ λ Έλκ° μ‘΄μ¬νμ§ μμΌλ©΄ μ΄λ‘νμ§?
'μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
15-2κ°. μ΅μλΉμ©μ μ₯νΈλ¦¬ (Minimum Spanning Tree) (2) (0) | 2020.12.13 |
---|---|
15-1κ°. μ΅μλΉμ©μ μ₯νΈλ¦¬(Minimum spanning tree) (0) | 2020.12.11 |
14-3κ°. κ·Έλνμμμ DFS (0) | 2020.12.06 |
14-1κ°. κ·Έλν(Graph) κ°λ κ³Ό νν (0) | 2020.12.01 |
13-3. ν΄μ 3 (0) | 2020.11.29 |
λκΈ