μ•Œκ³ λ¦¬μ¦˜

15-1κ°•. μ΅œμ†ŒλΉ„μš©μ‹ μž₯트리(Minimum spanning tree)

devshin.kr 2020. 12. 11. 00:08
728x90

μ΅œμ†ŒλΉ„μš©μ‹ μž₯트리 (Minimum Spanning Tree)

- μž…λ ₯ : n 개의 λ„μ‹œ, λ„μ‹œμ™€ λ„μ‹œλ₯Ό μ—°κ²°ν•˜λŠ” λ„λ‘œ λΉ„μš©

- 문제 : μ΅œμ†Œμ˜ λΉ„μš©μœΌλ‘œ λͺ¨λ“  λ„μ‹œλ“€μ΄ μ„œλ‘œ μ—°κ²°λ˜κ²Œ ν•œλ‹€.

 

μ˜ˆμ‹œ κ·Έλž˜ν”„

 

μ΅œμ†ŒλΉ„μš©μ‹ μž₯트리

ν•΄κ°€ μœ μΌν•˜μ§€λŠ” μ•Šλ‹€..

예) (b, c) λŒ€μ‹ μ— (a, h)κ°€ λ˜μ–΄λ„ λœλ‹€.

-> λΉ„μš©μ΄ κ°™κ³ , λ‹€ μ—°κ²°λ˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

 

* μ΅œμ†ŒλΉ„μš©μ‹ μž₯트리의 닡은 항상 νŠΈλ¦¬κ°€ λœλ‹€. μ™œ?

(트리 : 싸이클이 μ—†λŠ” μ—°κ²°λœ(connected) 무방ν–₯ κ·Έλž˜ν”„)

 : cycle이 μžˆλ‹€λŠ” 말은 이μͺ½ λ°©ν–₯으둜 가도 μ €μͺ½ λ°©ν–₯으둜 가도 λ˜λŠ”λ°, 이 경우 ν•œ μͺ½μ˜ 길이 λŠμ–΄μ Έλ„ λ°˜λŒ€ λ°©ν–₯으둜 갈 수 있게 λœλ‹€. λ”°λΌμ„œ μš°λ¦¬λŠ” μ΅œμ†ŒλΉ„μš©μ„ μ›ν•˜λ―€λ‘œ cycle이 μžˆλŠ” κ·Έλž˜ν”„λŠ” 이 κ²½μš°μ—μ„œ μ œμ™Έν•œλ‹€.

 

 

- μ–΄λ–€ MST(Minimun Spanning Tree)의 λΆ€λΆ„μ§‘ν•© A에 λŒ€ν•΄μ„œ A∪{(u, v)}도 μ—­μ‹œ μ–΄λ–€ MST의 뢀뢄집합이 될 경우, 에지 (u, v)λŠ” A에 λŒ€ν•΄μ„œ μ•ˆμ „ν•˜λ‹€(safe)κ³  ν•œλ‹€.

 

- Generic MST  μ•Œκ³ λ¦¬μ¦˜ : 

   1. μ²˜μŒμ—λŠ” A=øμ΄λ‹€.

   2. μ§‘ν•© A에 λŒ€ν•΄μ„œ μ•ˆμ „ν•œ 에지λ₯Ό ν•˜λ‚˜ 찾은 ν›„ 이것을 A에 λ”ν•œλ‹€.

   3. μ—μ§€μ˜ κ°œμˆ˜κ°€ n-1κ°œκ°€ 될 λ•ŒκΉŒμ§€ 2λ²ˆμ„ λ°˜λ³΅ν•œλ‹€.

 

 

Generic-MST(G, w)
{
	A <-ø
    while A does not form a spanning tree
    	do find an edge (u, v) that is safe for A
        	A <- A∪{(u, v)}
    return A
}

 

 

 

μ•ˆμ „ν•œ 에지 μ°ΎκΈ°

* μ•ˆμ „ν•œ 에지 μ°ΎκΈ°

- κ·Έλž˜ν”„μ˜ 정점듀을 두 개의 μ§‘ν•© S와 V-S둜 λΆ„ν• ν•œ 것을 μ»·(cut) (S, V-S)라고 λΆ€λ₯Έλ‹€.

- 에지 (u, v)에 λŒ€ν•΄μ„œ uκ°€ S에 μ†ν•˜κ³ , vκ°€ V-S에 속할 λ•Œ, 에지 (u, v)λŠ” μ»· (S, V-S)λ₯Ό crossν•œλ‹€κ³  λ§ν•œλ‹€.

- μ—μ§€λ“€μ˜ λΆ€λΆ„μ§‘ν•© A에 μ†ν•œ μ–΄λ–€ 에지도 μ»· (S, V-S)λ₯Ό crossν•˜μ§€ μ•Šμ„ λ•Œ, μ»·(S, V-S)λŠ” Aλ₯Ό μ‘΄μ€‘ν•œλ‹€(respect)κ³  λ§ν•œλ‹€.

 

정리 : Aκ°€ μ–΄λ–€ MST의 뢀뢄집합이고, (S, V-S)λŠ” Aλ₯Ό μ‘΄μ€‘ν•˜λŠ” 컷이라고 ν•˜μž. 이 컷을 crossν•˜λŠ” 에지듀 쀑 κ°€μž‘ κ°€μ€‘μΉ˜κ°€ μž‘μ€ 에지 (u, v)λŠ” A에 λŒ€ν•΄μ„œ μ•ˆμ „ν•˜λ‹€.

 

 

www.inflearn.com/course/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B0%95%EC%A2%8C/lecture/4109?tab=curriculum

 

μ˜λ¦¬ν•œ ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ κ°•μ’Œ - μΈν”„λŸ°

μ˜λ¦¬ν•˜κ²Œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  수 있기 μœ„ν•œ κΈ°λ³Έ μ†Œμ–‘μΈ 'μ•Œκ³ λ¦¬μ¦˜' 을 배우고 μ‘μš©ν•˜λŠ” 방법을 λ°°μ›λ‹ˆλ‹€. μ΄ˆκΈ‰ μ•Œκ³ λ¦¬μ¦˜ μ•Œκ³ λ¦¬μ¦˜ 온라인 κ°•μ˜ ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ κ°•μ’Œ

www.inflearn.com