본문 바로가기

카테고리 없음

알고리즘5-2 Prim and Kruskal Algorithm의 특징

728x90

특징을 확인해나가는 과정이 중요하다.

 


# solution to MST

MST의 솔루션이 몇개냐

 

1개

 

4개

좋은 점: 갯수를 계산할 수 있는 답이 있다.

나쁜 점: 너무 어렵다. (학부 수준x)

 

답이 유일할 조건 중 충분 조건을 알아보려고 한다.

(이런 경우에 답이 유일하다)

(답이 유일해서 이런 경우다 X)

 


Weight가 모두 다 다르면 답이 유일하다.

ex)

 

답이 유일하지만 Weight가 모두 다르지 않은 경우

 

당연한 거 아냐?


당연한 거 아님! 어려움!

엣지가 많을 경우 1,4를 선택하는 경우가 있을 수도 있고

2,3을 선택하는 경우가 있을 수도 있다.

 

(1,4를 선택하고 2,3을 선택하는 답이 있다면 1,2를 선택하는 답을 보여라~)

이 방법은 너무 어렵고

 


Prim and Kruskal Algorithm can find ANY Solution

= 모든 답을 커버한다.

 

답이 여러개인 경우가 있으면 찾을 수 있는 답이 모든 답일 수도 있고 아닐 수도 있다.

Prim and Kruskal Algorithm에는 Weight가 가장 작은 edge를 찾는 과정이 있었다.

 

(왼쪽 2를 고를수도, 오른쪽 2를 고를 수도 있다는 뜻)

 

choice를 다르게하면 답이 달라질 수 있으며 모든 답을 만들어낼 수 있다는 뜻

 

 

 

반면,

Stable Sort(같을 떄 입력에 있는 순서가 유지) 는 못찾는 답이 있을 수 있다.

2 3 1 2 3 2 => 1 2 2 2 3 3 

답을 하나만 찾을 수 있다.

 

 

 

 

 

 

Kruskal Algorithm는

Tmst를 뭘 잡고 시작하던간에 알고리즘이 e대신 e'를 선택하게 만들면

최종적으로 다른 정답을 출력하게 할 수 있다.

 

Prim Algorithm도 마찬가지

알고리즘에 정답이 없는 엣지를 추가하면 사이클을 찾고 e대신 e'추가 가능했다.

 => 이것을 통해 증명(알고리즘이 이러니까 이런 일이 생긴다..특이)

 

 


모든 Weight가 다르면 Kruskal Algorithm이 진행되는 동안 선택권이 없음.

=> Kruskal Algorithm은 유일한 답을 생성한다.

 

반대로 Weight가 같은 것이 있다고 답이 여러개라고 얘기할 수는 없음