코드스테이츠_국비교육/[Section2]

26.03_탐욕 알고리즘_22.09.27

생각없이 해도 생각보다 좋다. 2022. 9. 27. 23:13

탐욕 알고리즘, Greedy

>의미

: 선택의 시점일 때마다 해당 시점에서 최적인 선택만을 쫒아 답을 도출하는 알고리즘.

(예시) 최소 갯수의 돈으로 거스름돈 건내주기

: greedy는 특정 조건에서 원하는 답을 도출할 수 있지만, 원하는 답이 아니더라도 근사값을 도출하기 적절하며, 때문에 근

사 알고리즘으로도 사용한다.

>절차

  • 선택 절차(Selection Procedure)

: 현재 시점에서의 최적의 해답을 선택하는 절차

  • 적절성 검사(Feasibility Check)

: 선택된 해가 문제의 조건을 만족하는지 검사

  • 해답 검사(Solution Check)

: 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차로 돌아가 위의 과정을 반복

>Greedy 사용하기 적합한 조건

  • 탐욕적 선택 속성(Greedy Choice Property)

: 앞의 선택이 이후의 선택에 영향을 주지 않음

  • 최적 부분 구조(Optimal Substructure)

: 문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법으로 구성

: 즉, 문제를 큰 문제를 해결 후 작은 문제로 쪼갤 수 있고 마지막 작은 문제 해결 시 원래 문제가 모두 해결돼야 한다.

>Greed 예시

1. 활동 시간 문제 (참고: https://hongjw1938.tistory.com/172)

2. 거스름돈 문제

3. 박스 포장 문제

//Greed 문제 공통점

=>정해진 바운더리에서 최대의 결과를 취할 때, 주로 사용