728x90
그리디 알고리즘(Greedy Algorithm)
- 최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론
- 각 단계에서 최적이라고 생각되는것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘 이다.
- 항상 최적의 값을 보장하는 것이 아니라 최적의 값의 ‘근시값’을 목표로 하고 있다.
그리디 알고리즘 주요속성
- 탐욕선택속성(Greedy Choice Property)
- 각 단계에서 ‘최선의 선택’을 했을때 전체 문제에 대한 최적해를 구할 수 있는 경우
- 최적부분구조(Optimal Substructure)
- 전체 문제의 최적해가 부분 문제의 최적해로 구성 될 수 있는 경우
- 전체 문제를 작은 부분 문제로 나누어 각각의 부분 문제에서 최적의 해를 구한 다음 이를 조합해 전체 문제의 최적해를 구하는 것을 의미
단계
- 문제의 최적해 구조를 결정한다
- 문제의 구조에 맞게 선택절차를 정의한다. - 선택절차
- 선택절차에 따라 선택수행
- 선택된 해가 문제의 조건을 만족하는지 검사한다. - 적절성검사
- 조건을 만족하지 않으면 해당 해를 제외한다.
- 모든 선택이 완료되면 해답을 검사한다 - 해답검사
- 조건을 만족하지 않으면 해답으로 인정되지 않는다.
- 선택절차 (Selection precedure) : 현재상태에서 최적인 선택을 한다
- 적절성 검사(Feasibility check) : 선택한 항목이 문제의 조건을 만족하는지 확인한다
- 해답검사(Solution check) : 모든 선택이 완료, 최종선택이 문제의 조건을 만족 시키는지 확인한다.
728x90
'Computer > 알고리즘' 카테고리의 다른 글
최장 공통 부분수열_LongestCommonSubsequence (0) | 2024.01.26 |
---|---|
동적계획법_DP(DynamicProgramming) (0) | 2024.01.26 |
프림_Prim (0) | 2024.01.21 |
유니온파인드_UnionFind (0) | 2024.01.21 |
크루스칼_Kruskal (0) | 2024.01.21 |