인공지능 ) 균일비용 탐색 알고리즘 ) 언덕오르기 탐색 알고리즘 ) A 알고리즘 ) 알고리즘별 특성 비교 ) 문제 상황 정의 ) 탐색트리
본 내용은
"
인공지능 ) 균일비용 탐색 알고리즘 ) 언덕오르기 탐색 알고리즘 ) A 알고리즘 ) 알고리즘별 특성 비교 ) 문제 상황 정의 ) 탐색트리
"
의 원문 자료에서 일부 인용된 것입니다.
2023.08.13
문서 내 토픽
  • 1. 균일비용 탐색 알고리즘
    균일비용 탐색(Uniform-Cost Search) 알고리즘이란 시작 상태에서 인접한 노드를 방문하고 그중에서 가장 비용이 적게 드는 상태를 선택한 다음 방문하지 않은 상태와 방문한 상태의 인접한 모든 상태에서 다음으로 가장 비용이 적은 상태를 선택하는 것을 반복하여 목표 상태에 도달하려고 시도하는 알고리즘이다. 균일비용 탐색은 상당히 효율적인 방법이지만 특정 문제에서는 무한 루프에 빠질 수 있다는 단점이 존재한다.
  • 2. 언덕오르기 탐색 알고리즘
    언덕 오르기 탐색(Hill-Climbing Search) 알고리즘에서는 현재 상태를 확장하여 생성된 후계 노드 중 다음 확장 노드를 선택한다. 다음 후계 노드를 선택할 때는 후계 노드의 평가함수를 계산하여 가장 작은 값을 갖는 노드를 다음으로 확장할 노드로 선택하게 된다. 평가함수는 후계 노드에서부터 목표 상태에 도달하는 비용을 예측한 값인데, 처음 상태에서 현재의 노드까지 도달하는 데 사용된 비용은 고려하지 않는다. 8-퍼즐 문제를 풀이할 때 이 언덕 오르기 탐색 알고리즘을 사용하는 경우 평가함수는 목표 상태의 퍼즐과 비교했을 때 지정된 위치에 존재하지 않는 퍼즐 조각의 수로 정의한다. 해당 알고리즘은 지역 최대치 문제, 고원 문제, 능선 문제 등에서 최적의 해에 해당하는 목표 상태에 도달하지 못하는 경우가 있다.
  • 3. A* 알고리즘
    A* 알고리즘도 현재 상태에서 다음 확장 노드를 선택할 때 평가함수를 활용한다. A* 알고리즘에서 평가함수는 출발 노드로부터 현재 상태까지 도달하는 과정에서 소비한 경로 비용 g(n)과 현재의 상태로부터 목표 상태까지 도달하는 데 필요한 경로 비용 h(n)의 합f(n)=g(n)+h(n)으로 나타낸다. 하지만 끝까지 탐색하기 전에는 현재 노드에서부터 목표 노드까지 도달하는 데 필요한 비용을 정확히 알기는 어려우므로 h(n) 대신 예측치 hat {h} (n)를 사용해 전체 경로 비용을 정의하며 이는 hat{f}(n)=g(n)+hat{h}(n)로 표현한다. 예측 비용인 hat {h} (n)이 언제나 실제 비용 h(n)보다 작거나 같도록 정의하는 경우 A* 알고리즘을 사용해 탐색 된 경로는 최소비용 경로이다.
  • 4. 알고리즘별 특성 비교
    균일비용 탐색 알고리즘은 비 휴리스틱 검색 알고리즘이며, 언덕 오르기 탐색 알고리즘과 A* 알고리즘은 휴리스틱 알고리즘이다. 휴리스틱이란 다음 노드를 선택하는 과정에서 목표 상태에 대한 정보를 사용하여 확장할 노드를 결정하는 함수, 즉 평가함수를 의미한다. 언덕 오르기 탐색 알고리즘이 사용하는 평가함수는 현재 상태까지 도달하는 과정에서 소비한 경로 비용 g(n)에 대해 고려하지 않는 가장 간단한 휴리스틱 탐색 알고리즘 중 하나여서 지역 최적해에 갇히는 문제가 발생하기도 하지만, g(n)을 고려하는 A* 알고리즘은 이와 같은 문제가 발생하지 않는다.
  • 5. 문제 상황 정의
    확장 순서는 n으로 표기하며, 현재 상태까지 도달하는 경로 비용 g(n)을 비어있는 칸의 이동 횟수라고 정의하면 확장 순서만큼 비어있는 칸이 변화하므로 g(n)=n임을 알 수 있다. 현재 상태에서 목표 노드까지 도달하는 데 필요한 경로 비용의 예측치 hat { h}(n)은 목표 상태의 퍼즐과 비교했을 때 지정된 위치에 존재하지 않는 조각의 수로 정의한다. 따라서 평가함수는 hat {f}(n) = g(n)+hat{h}(n) = n+hat{h}(n) 이다.
  • 6. 탐색트리
    A* 알고리즘에 의해 탐색하는 과정을 나타내면 다음과 같다. g(0) = 0, {hat{h}} (n)=5, {hat{f}} (n)=0+6=6 / g(1) = 1, {hat{h}} (n)=6, {hat{f}} (n)=1+6=7, {hat{h}} (n)=4, {hat{f}} (n)=1+4=5, {hat{h}} (n)=6, {hat{f}} (n)=1+6=7 / g(2) = 2, {hat{h}} (n)=3, {hat{f}} (n)=2+5=7, {hat{h}} (n)=4, {hat{f}} (n)=2+4=6, {hat{h}} (n)=5, {hat{f}} (n)=2+3=5 / g(3) = 3, {hat{h}} (n)=4, {hat{f}} (n)=3+2=5, {hat{h}} (n)=2, {hat{f}} (n)=3+4=7 / g(4) = 4, {hat{h}} (n)=1, {hat{f}} (n)=4+1=5 / g(5) = 5, {hat{h}} (n)=2, {hat{f}} (n)=5+2=7, {hat{h}} (n)=0 (목표 상태), {hat{f}} (n)=5+0=5
Easy AI와 토픽 톺아보기
  • 1. 균일비용 탐색 알고리즘
    균일비용 탐색 알고리즘은 그래프 탐색 알고리즘의 한 종류로, 시작 노드에서 목표 노드까지의 최단 경로를 찾는 알고리즘입니다. 이 알고리즘은 각 간선의 비용이 동일하다는 가정 하에 작동하며, 큐 자료구조를 사용하여 최소 비용 경로를 찾습니다. 균일비용 탐색 알고리즘은 다익스트라 알고리즘과 유사하지만, 간선 비용이 동일하다는 점에서 차이가 있습니다. 이 알고리즘은 최단 경로 문제 해결에 유용하며, 특히 지도 상의 최단 거리 찾기와 같은 응용 분야에서 널리 사용됩니다.
  • 2. 언덕오르기 탐색 알고리즘
    언덕오르기 탐색 알고리즘은 그래프 탐색 알고리즘의 한 종류로, 시작 노드에서 목표 노드까지의 경로를 찾는 알고리즘입니다. 이 알고리즘은 현재 상태에서 가장 좋은 선택을 하는 방식으로 작동하며, 지역 최적해에 빠질 수 있다는 단점이 있습니다. 하지만 간단한 구현과 빠른 실행 속도로 인해 많은 실제 문제에서 유용하게 사용됩니다. 언덕오르기 알고리즘은 최적해를 보장하지 않지만, 실용적인 문제 해결에 적합한 경우가 많습니다. 이 알고리즘은 음성 인식, 자연어 처리, 최적화 문제 등 다양한 분야에서 활용되고 있습니다.
  • 3. A* 알고리즘
    A* 알고리즘은 그래프 탐색 알고리즘의 한 종류로, 시작 노드에서 목표 노드까지의 최단 경로를 찾는 알고리즘입니다. A* 알고리즘은 휴리스틱 함수를 사용하여 현재 노드에서 목표 노드까지의 추정 비용을 계산하고, 이를 바탕으로 가장 유망한 경로를 선택합니다. 이를 통해 다른 알고리즘에 비해 효율적인 경로 탐색이 가능합니다. A* 알고리즘은 최단 경로 문제 해결에 널리 사용되며, 로봇 경로 계획, 게임 AI, 지도 애플리케이션 등 다양한 분야에서 활용됩니다. 또한 A* 알고리즘은 최적해를 보장하며, 휴리스틱 함수의 선택에 따라 성능이 크게 달라질 수 있습니다.
  • 4. 알고리즘별 특성 비교
    그래프 탐색 알고리즘은 각각 고유한 특성을 가지고 있습니다. 균일비용 탐색 알고리즘은 간선 비용이 동일할 때 최단 경로를 찾을 수 있지만, 간선 비용이 다를 경우 적합하지 않습니다. 언덕오르기 알고리즘은 빠르고 간단하지만 지역 최적해에 빠질 수 있습니다. A* 알고리즘은 휴리스틱 함수를 사용하여 효율적인 경로 탐색이 가능하며, 최적해를 보장합니다. 이처럼 각 알고리즘은 문제 상황과 요구 사항에 따라 적합성이 달라집니다. 따라서 문제 상황을 정확히 파악하고, 알고리즘의 특성을 이해하는 것이 중요합니다. 이를 통해 문제 해결에 가장 적합한 알고리즘을 선택할 수 있습니다.
  • 5. 문제 상황 정의
    문제 상황을 정의하는 것은 효과적인 알고리즘 선택과 문제 해결을 위해 매우 중요합니다. 문제 상황을 명확히 정의하기 위해서는 다음과 같은 요소들을 고려해야 합니다. 첫째, 문제의 목적과 요구 사항을 명확히 파악해야 합니다. 둘째, 문제에 사용되는 데이터의 특성과 제약 사항을 이해해야 합니다. 셋째, 문제 해결을 위한 제한 조건, 예를 들어 시간 복잡도, 공간 복잡도 등을 고려해야 합니다. 넷째, 문제 해결을 위한 접근 방식과 알고리즘의 특성을 파악해야 합니다. 이와 같은 요소들을 종합적으로 고려하여 문제 상황을 정의하면, 가장 적합한 알고리즘을 선택하고 효과적으로 문제를 해결할 수 있습니다.
  • 6. 탐색트리
    탐색트리는 그래프 탐색 알고리즘을 구현하는 데 사용되는 중요한 자료구조입니다. 탐색트리는 노드와 간선으로 구성되며, 각 노드는 문제 상황에 대한 상태를 나타냅니다. 탐색트리를 활용하면 문제 해결을 위한 다양한 경로를 효과적으로 탐색할 수 있습니다. 대표적인 탐색트리 알고리즘으로는 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)이 있습니다. DFS는 한 경로를 끝까지 탐색한 후 다른 경로로 이동하는 방식이며, BFS는 한 단계씩 모든 경로를 탐색하는 방식입니다. 이러한 탐색트리 알고리즘은 최단 경로 문제, 최적화 문제, 게임 AI 등 다양한 분야에서 활용됩니다.
주제 연관 토픽을 확인해 보세요!