탐욕 알고리즘은 여러 선택지가 연속적으로 구성된 문제에서 최적해를 찾아낼 수 있는 빠르고 간단한 방법입니다. 이 알고리즘은 분기마다 최선의 안을 선택하지만, 그 일련의 선택이 전역적으로도 최적인지 확인하지 않습니다. 따라서 현실 문제에 탐욕 알고리즘을 사용하는 경우, 특별히 운이 좋은 경우를 제외하고 일반적으로는 전역적 최적해를 얻을 수 없습니다. 그렇다면 탐욕 알고리즘은 쓸모가 없는 것일까요? 전역적 최적해를 찾으려면 굉장히 많은 시간을 투자해야 합니다. 탐욕 알고리즘은 분할 및 정복 전략이나 동적 계획법에 비해 계산 속도가 훨씬 빠르기 때문에 최적이 아니더라도 어느 정도 작동 가능한 해결책이 필요한 경우에 유용하게 사용할 수 있습니다.
일반적으로 탐욕 알고리즘은 다음과 같이 정의할 수 있습니다.
• 데이터셋 D에서 요소 k를 선택합니다.
• 후보 해결책 또는 증명서 S가 k를 포함하는지 확인합니다. 만약 k가 S에 포함된다면 해결책은 합집합(S, k)가 됩니다.
• S가 다 채워지거나 D의 모든 요소를 확인할 때까지 이 과정을 반복합니다.