Greedy Algorithm

nowhere·2022년 6월 20일
0

algorithm

목록 보기
1/10

1. 그리디 알고리즘

탐욕 알고리즘 또는 탐욕적 알고리즘

  • 매순간 최적이라고 생각되는 것(지역적 최적)을 선택하여 최적해에 도달하는 기법
    • 현재의 선택이 나중의 선택에 미칠 영향을 고려하지 않음
    • 즉, 전역적 최적해를 반드시 보장하지 않음
  • 대부분의 경우 속도가 빠른 알고리즘이기 때문에, 최적에 근사한 값을 빠르게 구할 때도 사용함(근사 알고리즘)

반대로,

  • 지역적 최적인 해를 찾으면서 궁극적으로 해결하고자 하는 문제의 조건을 만족시킴으로써 전역해를 찾도록 함

2. ✌️ 문제해결에 적용하기 위한 두 가지 조건

1. Greedy choice property

  • 각 단계의 최적해를 선택했을 때 최적해에 도달할 수 있다.

2. Optimal substructure

  • 문제의 최적해는 문제의 부분 문제를 해결하는 최적해를 포함한다.

3. Matroid

탐욕 알고리즘이 항상 최적해를 발견할 수 있는 특별한 구조의 문제

  • 최적해를 구할 수 있는 모든 문제가 매트로이드 구조를 띄지는 않는다.
  • 어떤 유한 집합 S의 부분 집합들의 집합인 I (즉, I ⊆ 2^S)가 아래 성질을 만족하면 집합 I는 Matroid이다.
    • Heredity (유전성)
      A∈I 이고, B⊆A 이면 B∈I
    • Augmentation (추가성)
      A,B ∈ I 이고, |A| < |B| 이면, A ∪ {x} ∈ I 인 x ∈ B−A가 존재
    • Exchange (교환성)
      A,B ∈ I 에 대해 어떠한 b ∈ B−A 이든, A ∪ {b}−{a} ∈ I가 되는 a ∈ A−B 가 존재한다.




참고

https://brilliant.org/wiki/greedy-algorithm/
https://hanamon.kr/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%83%90%EC%9A%95%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-greedy-algorithm/
https://dad-rock.tistory.com/673
https://ko.wikipedia.org/wiki/%EB%A7%A4%ED%8A%B8%EB%A1%9C%EC%9D%B4%EB%93%9C

profile
수익성은 없으니 뭐라도 적어보는 벨로그

0개의 댓글