그리디 알고리즘의 최적화의 경우를 알고리즘 예시를 들어 설명하고
본 내용은
"
그리디 알고리즘의 최적화의 경우를 알고리즘 예시를 들어 설명하고
"
의 원문 자료에서 일부 인용된 것입니다.
2024.08.11
문서 내 토픽
  • 1. 그리디 알고리즘
    그리디 알고리즘은 최적의 답을 구하기 위해서 결정해야 할 때마다 순간마다 최적으로 여겨지는 것을 선택하여 나아가는 방식으로 이루어져 최종적인 해답에 도달하게 된다. 순간마다 이루어지는 선택은 순간에는 최적이지만 선택을 계속 수집해 최종적 해답을 만들었다고는 하지만 이러한 답이 최적이라는 보장은 없다. 그리디 알고리즘을 적용할 수 있는 문제는 지역적으로 최적이고 전역적으로 최적인 문제이다.
  • 2. 그리디 알고리즘이 최적화 결과를 가지고 오는 경우
    A가 편의점에서 아르바이트하는데 손님으로 온 B가 음료와 과자를 들고 물건 가격으로 4,040원이 나왔다고 가정하고자 한다. B는 계산을 위해서 5,000원을 주었고 거스름돈 동전 개수를 최소한으로 거슬러 달라고 요청한다는 문제를 설정하고자 한다. 이때 A는 그리디 알고리즘으로 동전 개수를 세는 일은 일반적으로 거스름돈을 통해 동전을 선택하는 방법과 같고 거스름돈인 960원을 채우기 위해 500원 동전을 하나 선택해야 한다. 그다음으로 100원짜리 동전 4개, 50원짜리 동전, 10원짜리 동전 각각 하나씩 선택하면 된다.
  • 3. 그리디 알고리즘이 최적화 결과를 가지고 오지 않는 경우
    A가 잠시 자리를 비운 사이에 도둑이 들었다고 가정해보고자 한다. 도둑의 가방은 최대 35kg 물건을 담을 수 있고 A의 집에는 물건이 4개 있다고 문제를 설정해 도둑이 물건을 훔치려고 한다는 가정을 해보고자 한다. 도둑이 그리디 알고리즘을 선택하게 되면 첫 번째로 선택 절차가 이루어진다. 도둑의 가방은 35kg까지 담을 수 있고 그림이 3,000만 원으로 가장 비싸기에 그림을 가방에 먼저 담을 수 있다. 그림은 30kg이기에 가방은 5kg만 남았기에 더 훔칠 수 있는 물적인 존재하지 않는다. 하지만 컴퓨터와 하드디스크를 넣었다면 상황은 달라진다. 컴퓨터는 25kg이고 하드디스크는 10kg이기에 두 물건의 무게를 모두 합하면 35kg으로 도둑의 가방에 모두 담을 수 있다. 컴퓨터는 2,000만 원이고 하드디스크는 1,500만 원이기에 도둑이 훔친 총금액은 컴퓨터와 하드디스크 가격을 모두 합한 3,500만 원이 된다.
Easy AI와 토픽 톺아보기
  • 1. 그리디 알고리즘
    그리디 알고리즘은 현재 상황에서 가장 좋아 보이는 선택을 하는 방식으로, 전체적인 최적화를 달성하기 위해 사용되는 알고리즘입니다. 이 알고리즘은 간단하고 빠르게 실행될 수 있다는 장점이 있지만, 전체적인 최적화를 보장하지는 않습니다. 그리디 알고리즘은 문제의 특성에 따라 최적의 해를 찾을 수도 있고, 그렇지 않을 수도 있습니다. 따라서 문제의 특성을 잘 파악하고, 그리디 알고리즘이 적합한지 여부를 판단해야 합니다.
  • 2. 그리디 알고리즘이 최적화 결과를 가지고 오는 경우
    그리디 알고리즘이 최적화 결과를 가져오는 경우는 문제의 구조가 그리디 알고리즘에 적합한 경우입니다. 예를 들어, 최소 신장 트리 문제나 Kruskal 알고리즘, Prim 알고리즘과 같은 문제에서는 그리디 알고리즘이 최적의 해를 찾을 수 있습니다. 이러한 문제들은 각 단계에서 최선의 선택을 하면 전체적인 최적화 결과를 얻을 수 있는 구조를 가지고 있습니다. 따라서 문제의 특성을 잘 파악하고, 그리디 알고리즘이 적합한지 여부를 판단하는 것이 중요합니다.
  • 3. 그리디 알고리즘이 최적화 결과를 가지고 오지 않는 경우
    그리디 알고리즘이 최적화 결과를 가져오지 않는 경우는 문제의 구조가 그리디 알고리즘에 적합하지 않은 경우입니다. 예를 들어, 배낭 문제나 최단 경로 문제와 같은 경우에는 그리디 알고리즘이 최적의 해를 찾지 못할 수 있습니다. 이러한 문제들은 각 단계에서의 최선의 선택이 전체적인 최적화 결과로 이어지지 않는 구조를 가지고 있습니다. 따라서 이러한 경우에는 다른 알고리즘, 예를 들어 동적 계획법 등을 사용해야 합니다. 문제의 특성을 잘 파악하고, 적합한 알고리즘을 선택하는 것이 중요합니다.