탐욕 알고리즘: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Klutzy (토론 | 기여)
잔글 revert: '알고리즘' ver
Klutzy (토론 | 기여)
잔글편집 요약 없음
1번째 줄:
'''탐욕 알고리즘'''(貪慾 - , {{lang|en|Greedy Algorithm|그리디 알고리즘}})은 최적의최적해를 해를구하는 구하기데에 위해사용되는 근사적인 방법으로, 결정을여러 경우 중 하나를 해야결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 순간마다 하는 선택은 그 순간(local)에는순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적인최종적(global전역적) 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다.
 
탐욕 알고리즘이 최적해를 구한다는작동하는 것을문제는 보장하려면대부분 탐욕스런 선택 조건(greedy choice property)과 최적 부분 구조 조건(optimal substructure)이라는 두 가지 조건이 성립해야 한다만족된다. 탐욕스런 선택 조건과조건은 앞의 선택이 이후의 선택에 영향을 주지 않는다는 것이며, 최적 부분 구조 조건이다.조건은 문제에 대한 최적해가 부분문제에 대해서도 역시 최적해라는 것이다.
 
이러한 조건이 성립하지 않는 경우에는 탐욕 알고리즘은 최적해를 구하지 못한다. 그러나하지만, 이러한 경우에도 탐욕 알고리즘은 여전히[[근사 유용할알고리즘]]으로 사용이 가능할있다.있으며, 탐욕대부분의 알고리즘은경우 대개계산 빠르게속도가 작동하기빠르기 때문에 좋은 [[근사 알고리즘]]이실용적으로 사용할 수 있다. 이 경우 역시 어느 정도까지 최적해에 가까운 해를 구할 수 있는지를 보장하려면 엄밀한 증명이 필요하다.
 
어떤 특별한 구조가 있는 문제에 대해서는 탐욕 알고리즘이 언제나 최적해를 찾아낼 수 있다. 이 구조를 [[매트로이드]]라 한다. 매트로이드는 모든 문제에서 나타나는 것은 아니나, 여러 곳에서 발견되기 때문에 탐욕 알고리즘의 활용도를 높여 준다.