알고리즘/알고리즘 이론
[알고리즘] 그리디(Greedy) 알고리즘 (탐욕법)
excited-hyun
2021. 2. 3. 21:52
반응형
그리디 알고리즘은 원하는 답을 여러 개의 조각으로 쪼개고, 각 단계마다 답의 한 부분을 만들어가는 방식이다.
이는 완전 탐색이나 동적 계획법과 유사하지만 각 단계마다 지금 당장 가장 좋은 방법만 선택한다.
즉 이 방식은 지금의 선택이 앞으로 남은 선택들에 어떤 영향을 끼칠지는 고려하지 않는다.
이렇게 문제를 해결하는 경우 최적해를 찾지못하는 경우가 많아진다.
그럼에도 그리디 알고리즘이 사용되는 경우는 아래 두 가지가 있다.
1) 그리디 알고리즘을 사용해도 항상 최적해를 구할 수 있느 문제를 만난 경우, 이는 동적 계획법보다 수행시간이 훨씬 빠르다.
2) 시간이나 공간적 제약으로 인해 다른 방식으로 최적해를 찾기 힘든 경우 대신 적당한 근사해를 찾는 것으로 타협할 수 있다. 이때 그리디 알고리즘은 최적은 아니나 임의의 답 보다는 좋은 답을 구하는 용도로 유용하다.
알고리즘의 정당성 증명
1) 탐욕적 선택 속성
동적 계획법처럼 답의 모든 부분을 고려하지 않고 탐욕적으로만 선택하더라도 최적해를 구할 수 있다는 것이다.
2)최적 부분 구조
항상 최적의 선택만을 내려서 전체 문제의 최적해를 얻을 수 있음을 보여야 한다.
출처: 알고리즘 문제해결 전략(구종만)
728x90
반응형