다익스트라 알고리즘


1) 탐욕 알고리즘의 활용

2) 최단거리를 구하는 알고리즘

3) 음의 가중치(비용 음수)가 없을때 사용가능





다익스트라 알고리즘 순서


1) 출발점부터 체크 시작

2) '체크하는 노드'와 '연결된 노드'의 비용 업데이트

3) 다음 노드는 '체크하지 않은 노드' 중 '누적 비용'이 제일 낮은 노드를 선택

4) 모든 노드를 다 체크할때까지 반복




다익스트라 알고리즘 그림으로 보기

















다익스트라 알고리즘 코드 보기





'알고리즘 > 최적해 알고리즘' 카테고리의 다른 글

탐욕 알고리즘(Greedy Algorithm)  (0) 2017.02.16




탐욕 알고리즘(혹은 그리디 알고리즘)은 최적해를 구하는 방법 중 하나다.


매 순간마다 가장 최적인 것을 선택하는 방식으로, 최적해를 찾는다.





  • 가장 적은 동전으로 환전하기


탐욕 알고리즘은 가장 큰 동전부터 하나씩 환전하며


최적해를 찾는다.



       



이렇게 동전이 2개가 있을때, 1000원을 환전하면


500원 : 2개

100원 : 0개


총 2개의 동전으로 환전 가능하다.




  • 탐욕 알고리즘의 문제


              



여기에 600원 동전을 추가해보자


위와 같이 1000원을 환전해보면


600원 : 1개

500원 : 0개

100원 : 4개


총 5개의 동전으로 환전 가능하다.


이렇게 탐욕 알고리즘은 항상 최적의 결과를 보장하지 않는다.














하노이탑은 첫번째 기둥에 있는 원판들을

몇가지 규칙을 지키며 마지막 기둥으로 옮겨야 한다.


규칙

한번에 한 원판만 이동 가능

자식보다 작은 원판 위로는 이동 불가능(위 < 아래)

상단에 원판이 있으면 이동 불가능








+ Recent posts