그리디 알고리즘은 말 그대로 각 단계에서 미래를 생각하지 않고, 그 순간 가장 최선의 선택을 하는 기법이기 때문에 종합적인 결과에 대해서는 최적의 해를 보장할 수 없다. (지역적(local)으로는 최적의 선택이지만 이를 반복하더라도 전체적(global)으로는 최적의 해가 아닐 수 있음)
순간 순간 최적이라고 생각되는 것을 선택해 나가는 방식으로 최종적인 해답을 찾지만 그것이 최적이라는 보장은 없다.
하지만 어느 정도까지 최적해에 가까운 해를 구할 수 있는지를 보장하려면 엄밀한 증명이 필요하다.
앞의 선택이 이후의 선택에 영향을 주지 않는다.
문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법으로 구성
지불해야 하는 값이 x 원 일 때 1원, 50원, 100원, 500원 동전을 이용해 값을 지불하시오.(사용되는 동전의 수가 최소가 되어야 함)
해당 문제는 가장 큰 동전부터 최대한 지불해야 하는 값을 채우는 방식으로 구현이 가능하다.
각 선택이 이전 선택에 관계없이 나머지 금액을 최대로 채울 수 있는 동전의 갯수를 선택하기 때문에 현재 선택이 이후의 선택에 영향을 주지 않는다는 탐욕적 선택 속성조건을 만족한다.
500원 ->100원->50원->10원, 큰 동전에 먼저 선택권을 부여하기 때문에 매 순간 나머지 금액을 최대로 채우는 선택이 결국 가장 최소의 동전 개수를 도출한다는 점에서 최적 부분 구조 조건을 만족한다.
- Greedy Algorithm(그리디 알고리즘)이 Optimal Solution(최적해)을 가려낼 수 있는 경우인지를 판별할 수 있게 하는 수학적 공간이다.
매트로이드설명
https://dad-rock.tistory.com/663
https://it-college-diary.tistory.com/entry/21-Greedy-Algorithm%ED%83%90%EC%9A%95%EB%B2%95-%EC%9A%95%EC%8B%AC%EC%9F%81%EC%9D%B4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B0%9C%EB%85%90
https://kahee.github.io/algorithm_datastructure/2018/03/14/Algorithm_greedy_alogrithm
https://geunuk.tistory.com/74
https://kahee.github.io/algorithm_datastructure/2018/03/14/Algorithm_greedy_alogrithm/
https://rlakuku-program.tistory.com/39