Lecture03_Search

ZEDY·2024년 3월 26일

인공지능

목록 보기
3/4

인공지능 수업을 들으면 정리한 내용입니다.


Solving Problems by Searching

Problem-Solving Agent

먼저, 문제 해결을 위한 에이전트에 대해 이야기해 보겠습니다.

에이전트는 환경을 감지하는 센서를 통해 환경을 인식하고, 액추에이터를 통해 작용합니다. 그리고 목표 기반 에이전트세계 상태와 달성하려는 목표 세트를 추적하며, 목표 달성을 이끌어 낼 (결국적으로) 행동을 선택합니다.

예를 들어, 로봇이 미로를 탐색하는 상황을 생각해 보겠습니다. 로봇은 센서를 사용하여 현재 위치와 주변 환경을 파악하고, 액추에이터를 통해 움직입니다. 이 로봇은 목표 기반 에이전트로서 미로의 출구에 도달하는 것이 목표일 것입니다.

다음으로, 문제 해결을 위한 검색 알고리즘에 대해 알아보겠습니다. 검색 알고리즘은 상태 공간에서 목표 상태에 도달하는 경로를 찾는 방법입니다. 먼저, '비정보 검색 알고리즘'과 '정보 검색 알고리즘'으로 나눌 수 있습니다.

비정보 검색 알고리즘은 확장하고 탐색할 노드에 대한 추가 정보 없이 상태 공간을 탐색합니다. 예를 들어, '너비 우선 검색'은 현재 노드에서 모든 이웃 노드를 확장하고, 그 다음 단계의 모든 이웃 노드를 확장하는 식으로 너비 우선으로 탐색합니다.

정보 검색 알고리즘은 더 많은 정보를 활용하여 상태 공간을 탐색합니다. 예를 들어, 'A* 검색 알고리즘'은 각 노드에 대해 현재까지 비용과 추정된 남은 비용을 고려하여 탐색합니다. 이는 더 효율적으로 경로를 찾을 수 있게 도와줍니다.

이렇게 문제를 해결하기 위한 검색 알고리즘은 다양한 상황에 따라 선택되고 적용될 수 있습니다. 상황에 따라 적절한 알고리즘을 선택하는 것이 중요합니다.

Trip Planner

이 문제에서 여행 플래너의 목표는 여행 계획을 최적화하여 여행자의 만족도를 높이는 것입니다. 주어진 성능 측정 기준에 따라, 이는 밤문화, 낭만적인 장소, 맛있는 음식 등을 포함할 수 있습니다. 여행 플래너는 여러 환경에서 동작할 수 있으며, 이러한 환경에서 목표를 채택하고 적절한 행동을 취해야 합니다.

여행 플래너의 목표는 여행 계획을 완료하는 것입니다. 이는 여행 날짜를 결정하고, 항공편을 예약하고, 숙박을 검색하고, 호텔을 예약하는 등의 작업을 포함합니다.

문제를 해결하기 위한 과정은 목표 달성을 위해 어떤 행동과 상태를 결정할지 결정하는 것입니다. 문제를 구성하는 데는 다음과 같은 단계가 포함됩니다.

  1. 상태(State): 예를 들어, 여행 계획의 상태는 "미정", "계획 중", "완료" 등이 될 수 있습니다.
  2. 행동(Action): 여행 플래너가 할 수 있는 행동은 여러 가지가 있을 수 있습니다. 예를 들어, 여행 날짜를 결정하는 것, 항공편을 예약하는 것, 숙소를 검색하는 것 등이 있습니다.

검색은 일련의 행동을 찾는 과정입니다. 여행 플래너의 경우, 이는 여행 계획을 최적화하는 일련의 행동을 찾는 것을 의미할 수 있습니다. 예를 들어, 주어진 성능 측정 기준에 따라 밤 문화, 로맨틱한 장소, 맛있는 음식을 포함하는 최상의 여행 일정을 찾는 것일 수 있습니다.

여행 플래너가 목표를 달성하기 위해 필요한 행동들을 결정하는 과정은 여러 가지 방법으로 이루어질 수 있습니다. 예를 들어, 'A* 검색 알고리즘'을 사용하여 최적의 여행 일정을 결정할 수도 있습니다.

Aspects of the Simple Problem Solver

"단순한 문제 해결자"의 측면에 대해 알아보겠습니다.

환경(Environment):

  • 정적 환경(Static environment): 동적으로 변경되지 않는 환경입니다. 즉, 환경은 시간이 지나도 변하지 않습니다.
  • 관측 가능(Observable): 에이전트는 항상 현재 상태를 알 수 있습니다. 환경에서의 변화를 실시간으로 인지할 수 있습니다.
  • 이산적(Discrete): 선택할 수 있는 행동이 한정되어 있습니다. 즉, 유한한 수의 행동만 존재합니다.
  • 알려진(Known): 에이전트는 각각의 행동이 어떤 상태로 이어지는지를 알고 있습니다.
  • 결정론적(Deterministic): 각각의 행동은 정확히 하나의 결과를 가져옵니다. 다시 말해, 같은 조건에서는 항상 같은 결과를 가져옵니다.
  • 오픈 루프 시스템(Open-loop system): 퍼셉트(환경으로부터의 정보)가 무시되는 시스템입니다. 즉, 에이전트는 환경으로부터의 정보를 고려하지 않고 행동합니다. 이것은 에이전트와 환경 사이의 루프를 끊는데 도움이 됩니다.

이러한 환경 속에서 단순한 문제 해결자는 주어진 문제를 해결하기 위해 고려할 수 있는 한정된 행동들 중에서 최적의 행동을 선택합니다. 이러한 속성들은 문제 해결 과정을 단순화하고 예측 가능하게 만들어줍니다.

이러한 단순한 문제 해결자의 특성을 고려하면, 주어진 환경과 문제에 대한 적절한 해결책을 찾을 수 있습니다.

검색은 목표에 도달하는 일련의 행동을 찾는 과정입니다. 목표에 도달하는 데 필요한 행동들의 순서를 결정하는 것입니다. 이 과정에서 검색은 해결책(행동들의 순서)을 찾아냅니다.

검색 과정은 일반적으로 다음과 같은 단계로 이루어집니다:

  1. 문제 형식화(Formulation): 문제를 명확하게 정의하고, 상태와 행동의 공간을 결정합니다. 이는 문제를 효율적으로 해결하기 위해 필수적입니다.

  2. 검색(Search): 가능한 모든 행동들의 조합을 탐색하여 목표에 도달하는 해결책을 찾습니다. 이 과정은 일반적으로 상태 공간을 탐색하고, 각 상태에서 가능한 행동들을 고려하여 해결책을 구성합니다.

  3. 실행(Execution): 찾아진 해결책을 실제로 실행하여 목표를 달성합니다. 이는 실제 환경에서 에이전트가 행동을 취하고, 목표를 이루는 과정을 말합니다.

검색 과정은 문제의 복잡성과 상태 공간의 크기에 따라 다양한 방법으로 구현될 수 있습니다. 넓게는 간단한 깊이 우선 탐색과 너비 우선 탐색부터, 보다 복잡한 A* 알고리즘과 같은 휴리스틱 탐색 알고리즘까지 다양한 방법이 있습니다.

검색은 주어진 문제를 해결하기 위한 중요한 단계이며, 문제의 성격과 상태 공간의 특성에 맞는 적절한 검색 전략을 선택하는 것이 중요합니다.

Problem Formulation

문제를 정의하기 위해 다섯 가지 구성 요소가 필요합니다. 이를 통해 에이전트가 문제를 해결하는 데 필요한 정보를 제공할 수 있습니다.

  1. 초기 상태(Initial State): 에이전트가 시작하는 상태입니다. 문제 해결 과정은 이 초기 상태에서 시작됩니다.

  2. 에이전트가 수행할 수 있는 가능한 행동(Action)의 설명: 에이전트가 취할 수 있는 행동들에 대한 설명입니다. 이것은 문제 해결 과정에서 에이전트가 할 수 있는 선택지를 결정합니다.

  3. 전이 모델(Transition Model): 특정 상태에서 주어진 행동을 수행한 후에 어떤 상태로 이동하는지를 설명합니다. 이 모델은 각 상태에서 가능한 후속 상태를 결정합니다.

    • 후속 상태(Successor): 특정 상태에서 가능한 모든 다음 상태를 의미합니다.
    • 상태 공간(State Space): 초기 상태에서 시작하여 에이전트가 이동할 수 있는 모든 상태의 집합입니다.
    • 유향 네트워크 또는 그래프(Directed Network or Graph): 상태 간의 관계를 나타내는 구조입니다. 이를 통해 경로(Path), 즉 일련의 상태를 나타낼 수 있습니다.
  4. 목표 테스트(Goal Test): 주어진 상태가 목표 상태인지 여부를 결정합니다. 이를 통해 에이전트는 목표를 달성했는지 판단할 수 있습니다.

  5. 경로 비용 함수(Path Cost Function): 각 경로에 대해 숫자로 된 비용을 할당합니다.

An optimal solution : 최적의 솔루션을 찾기 위해 경로 비용을 최소화합니다.

Example

예를 들어, "Vacuum World" 문제에서는 다음과 같이 구성할 수 있습니다:

  • 초기 상태: 청소기가 어떤 상태에서든 시작할 수 있습니다.
  • 가능한 행동: 왼쪽으로 이동, 오른쪽으로 이동, 먼지를 청소하는 것입니다.
  • 전이 모델: 각 행동에 대한 결과 상태를 정의합니다.
  • 목표 테스트: 모든 위치에서 먼지가 없는지 확인합니다.
  • 경로 비용 함수: 각 행동에 대해 비용 1을 할당합니다.

8-Puzzle Example

그리고 "8-Puzzle" 문제에서는 다음과 같이 구성할 수 있습니다:

  • 초기 상태: 타일과 빈 칸의 위치를 나타내는 상태입니다.
  • 가능한 행동: 빈 칸을 상하좌우로 이동시키는 것입니다.
  • 전이 모델: 각 행동에 대한 결과 상태를 정의합니다.
  • 목표 테스트: 타일이 순서대로 위치하고 있는 목표 상태인지 확인합니다.
  • 경로 비용 함수: 각 단계마다 비용 1을 할당합니다.

이러한 구성 요소를 통해 문제를 정의하면, 에이전트는 목표를 달성하기 위한 올바른 행동들을 선택할 수 있습니다.

Searching for Solutions

솔루션을 찾기 위한 과정에서 검색 트리는 매우 중요한 개념입니다. 검색 트리는 초기 상태와 가능한 행동들에 의해 생성됩니다. 이는 가능한 모든 상태와 행동의 조합을 나타내며, 문제 해결 과정에서의 각 단계를 시각적으로 표현합니다.

기본 아이디어는 오프라인에서 시뮬레이션된 상태 공간의 탐험입니다. 이미 탐색된 상태들의 후속 상태를 생성함으로써(상태를 확장함으로써) 상태 공간을 탐색합니다. 어떤 상태를 확장할지를 결정하는 것은 검색 전략에 따라 달라집니다.

검색 트리의 노드는 상태를 나타내며, 각 노드는 해당 상태에서 가능한 행동을 확장하여 새로운 상태를 생성합니다. 이를 통해 트리가 확장되고 검색 과정이 진행됩니다. 목표 상태가 발견되면 검색 과정이 종료됩니다.

검색 트리는 다양한 검색 알고리즘에 의해 탐색될 수 있습니다. 깊이 우선 탐색, 너비 우선 탐색, A* 검색 등의 다양한 알고리즘이 있으며, 각각의 알고리즘은 특정한 환경에서 더 효율적으로 동작합니다.

검색 트리를 통해 문제 해결 과정을 시각화하고, 최적의 솔루션을 찾기 위한 다양한 전략을 적용할 수 있습니다. 이를 통해 효율적으로 문제를 해결할 수 있습니다.

검색 트리는 문제 해결 과정에서 초기 상태부터 시작하여 가능한 모든 상태와 행동의 조합을 나타내는 트리 구조입니다. 각 노드는 상태를 나타내며, 간선은 각각의 행동을 나타냅니다. 이러한 트리는 다음과 같은 특징을 가집니다:

  • 루트(Root): 초기 상태를 나타내는 노드입니다. 여기서부터 검색 과정이 시작됩니다.

  • 가지(Branches): 각 노드에서 가능한 행동을 나타내는 간선입니다. 각 가지는 특정 행동을 나타내며, 이를 통해 다음 상태로 이동합니다.

  • 노드(Nodes): 상태 공간(State Space)에서 가능한 모든 상태들을 나타내는 노드입니다. 각 노드는 특정 상태를 나타내며, 이 상태에서 가능한 다음 행동을 고려합니다.

검색 트리는 오프라인에서 시뮬레이션된 상태 공간의 탐험을 나타냅니다. 즉, 이미 탐색된 상태들의 후속 상태를 생성하고(확장하고) 검색 과정을 진행합니다. 이 과정에서 검색 트리가 계속 확장되고, 최종적으로 목표 상태가 발견될 때까지 진행됩니다.

검색 트리를 활용하여 문제를 해결하는 과정을 시각적으로 이해하고, 다양한 검색 알고리즘을 적용하여 최적의 솔루션을 찾을 수 있습니다. 이를 통해 효율적으로 문제를 해결할 수 있습니다.

Quantities for Complexity Measurement

복잡성 측정을 위한 여러 가지 요소들이 있습니다. 주요한 측정 요소들은 다음과 같습니다:

  1. 가지 분기도(Branching Factor) (𝒃): 어떤 노드의 후속자(자식 노드)의 최대 수입니다. 즉, 한 노드에서 갈 수 있는 가능한 경로의 수를 의미합니다. 가지 분기도가 높을수록 탐색 트리의 크기가 더욱 커지게 됩니다.

  2. 최소 목표 노드의 깊이(Shallowest Goal Node Depth) (𝒅): 루트부터 최소 비용 경로의 길이를 나타냅니다. 즉, 목표에 도달하는 최소한의 스텝 수입니다. 이것은 최단 경로 문제에서 중요한 지표입니다.

  3. 상태 공간(State Space)에서의 최장 경로의 길이(𝒎): 상태 공간에서 가능한 경로 중 가장 긴 경로의 길이입니다. 이것은 가능한 모든 경로 중에서 가장 긴 경로의 길이를 나타냅니다.

  4. 시간 복잡도(Time Complexity): 탐색 중 생성된 노드의 수입니다. 즉, 검색 알고리즘의 실행 시간을 나타냅니다. 일반적으로 시간 복잡도는 생성된 노드의 수에 비례합니다.

  5. 공간 복잡도(Space Complexity): 메모리에 저장되는 노드의 최대 수입니다. 즉, 메모리 사용량을 나타냅니다. 이것은 최악의 경우 메모리 요구 사항을 나타내며, 대부분의 경우 시간 복잡도보다 더 중요한 측정 지표입니다.

이러한 요소들을 고려하여 알고리즘을 선택하고 문제를 해결할 때, 알고리즘의 효율성을 더 잘 이해할 수 있습니다. 알고리즘의 효율성을 판단할 때는 주로 이러한 측정 요소들을 고려합니다.

Uninformed Search Strategies

비정보검색(Uninformed Search)은 문제 정의에서 제공된 정보를 기반으로 상태 공간을 탐색하는 전략입니다. 이는 추가적인 상태 정보(휴리스틱 정보)를 사용하지 않고, 단순히 후속 상태를 생성하고 목표 상태를 구별하여 해결책을 찾는 것에 초점을 두고 있습니다. 이러한 전략은 때때로 "블라인드 검색(Blind Search)"으로도 불립니다.

Types of uninformed search strategies

비정보검색(Uninformed Search) 전략에는 다양한 탐색 전략이 있습니다. 각각의 전략은 노드를 확장하는 순서나 방법에 차이가 있습니다. 주요한 비정보검색 전략에는 다음과 같은 것들이 있습니다:

  1. 너비 우선 탐색(Breadth-First Search): 현재 노드에서 가능한 모든 후속 상태를 모두 탐색한 후 다음 단계로 진행합니다. 즉, 가장 낮은 깊이에 있는 모든 노드를 탐색한 후 그 다음 깊이의 노드들을 탐색합니다.

  2. 깊이 우선 탐색(Depth-First Search): 가능한 최대 깊이까지 탐색을 진행하며, 더 이상 탐색할 노드가 없을 때 다시 이전 단계로 돌아가는 방식입니다.

  3. 깊이 제한 탐색(Depth-Limited Search): 깊이 제한을 두고 DFS를 수행하는 방식입니다. 즉, 최대 깊이까지만 탐색하고 그 이상 깊이로는 탐색하지 않습니다.

  4. 반복적 깊이 우선 탐색(Iterative Deepening Depth-First Search): 여러 번의 DFS를 수행하여 깊이 한도를 점차 증가시키면서 탐색을 진행하는 방식입니다.

  5. 균일비용 탐색(Uniform-Cost Search): 경로의 비용이 최소가 되는 노드를 선택하여 탐색을 진행하는 방식입니다.

  6. 양방향 탐색(Bidirectional Search): 시작 노드와 목표 노드에서 동시에 탐색을 시작하여, 양쪽에서 접근하는 방식입니다. 이를 통해 상태 공간 탐색의 효율성을 높일 수 있습니다.

이러한 비정보검색 전략들은 노드를 확장하는 순서나 방법에 따라 차이가 있으며, 각각의 전략은 특정한 상황에 따라 효과적일 수 있습니다. 적절한 비정보검색 전략을 선택하는 것은 문제 해결 과정에서 매우 중요합니다.

너비 우선 탐색(Breadth-First Search)은 주어진 깊이에서 모든 후속자를 확장하고, 가장 얕은 깊이에 있는 미확장 노드를 다음 확장 대상으로 선택합니다. 이 방법은 FIFO(First-In-First-Out) 큐를 사용하여 구현됩니다. 새로운 후속자 노드는 큐의 끝에 추가됩니다.

특징:

  • 완전성(Completeness): 미래의 모든 가능한 후속자 노드를 확장하기 때문에 목표 상태에 도달할 수 있습니다(만약 분기 요인이 유한하다면).
  • 시간 복잡도(Time Complexity): 각 깊이별로 모든 노드를 한 번씩 확장하므로, 시간 복잡도는 각 레벨별 노드 수의 합과 같습니다. 따라서 레벨이 d 일 때, 시간 복잡도는 O(b^d)가 됩니다.
  • 공간 복잡도(Space Complexity): 모든 확장된 노드를 저장해야 하므로, 미확장된 노드와 확장된 노드의 모든 조합에 대해 공간을 저장해야 합니다. 따라서 공간 복잡도는 O(b^d)가 됩니다.
  • 최적해(Optimality): 비용이 모두 같은 경우에는 최적의 해를 찾을 수 있습니다. 그러나 비용이 다르면 일반적으로 최적의 해를 찾지 못할 수 있습니다.

그러나 너비 우선 탐색은 특히 깊이가 크고 분기 요소가 큰 경우 문제가 될 수 있습니다. 이 경우 탐색 공간이 매우 커지며, 해결이 불가능할 수 있습니다. 예를 들어, 깊이가 16이고 분기 요소가 10인 경우 노드 수가 10^16으로 매우 커지므로 실제로 처리하기 어려울 수 있습니다.

균일비용 탐색(Uniform-cost Search)은 최저 경로 비용을 갖는 노드를 확장하는 방식으로 동작합니다. 이것은 최저 경로 비용을 갖는 노드를 선택하는 것으로 너비 우선 탐색과 유사합니다. 단, 모든 행동의 비용이 동일한 경우 너비 우선 탐색과 동등하게 동작합니다.

특징:

  • 완전성(Completeness): 모든 경로 비용을 고려하기 때문에 완전성을 보장합니다.
  • 시간 및 공간 복잡도(Time and Space Complexity): 최저 경로 비용을 가진 노드를 확장하기 때문에, 최적의 솔루션보다 비용이 높은 노드를 고려하지 않습니다. 따라서 최저 경로 비용보다 적은 비용을 갖는 노드의 수에 대한 시간 및 공간 복잡도를 갖습니다. 이것은 일반적으로 # of nodes with 𝑔 < cost of optimal solution, 𝑂(𝑏^𝐶∗𝜀) 로 표현됩니다. 여기서 𝑏는 분기 요소, 𝐶∗는 최적 해의 비용, 𝜀은 최소 행동 비용입니다.
  • 최적성(Optimality): 모든 행동의 비용이 동일한 경우에만 최적의 해를 찾을 수 있습니다. 하지만 행동의 비용이 다른 경우에는 최적의 해를 보장하지 않을 수 있습니다.

균일비용 탐색은 최저 비용의 경로를 찾는 데 효과적이지만, 경로 비용이 서로 다른 경우 최적의 솔루션을 찾을 수 없을 수 있습니다. 또한 경로의 비용이나 확장된 노드의 수가 상당히 커질 수 있으므로 이를 고려하여 사용해야 합니다.

깊이 우선 탐색(Depth-First Search)은 가장 깊은 곳에 있는 미확장 노드를 선택하여 탐색을 진행하는 방식입니다. 이 방식은 후속 노드를 스택(LIFO, Last-In-First-Out)에 저장하고, 후속 노드를 스택의 가장 앞쪽에 넣어서 구현됩니다.

특징:

  • 완전성(Completeness): 무한 깊이의 공간이나 순환(loop)이 있는 공간에서는 완전하지 않을 수 있습니다.
  • 시간 복잡도(Time Complexity): 각 경로에 대해 최대 깊이까지 이동한 후, 이전 경로로 되돌아가서 다른 경로를 탐색합니다. 따라서 시간 복잡도는 O(b^m)입니다. 여기서 b는 분기 요소이고, m은 상태 공간에서의 최장 경로 길이입니다.
  • 공간 복잡도(Space Complexity): 스택에 모든 경로를 저장해야 하므로, 공간 복잡도는 O(bm)입니다.
  • 최적성(Optimality): 일반적으로 최적의 해를 찾지 못할 수 있습니다. 따라서 모든 행동의 비용이 동일한 경우에만 최적의 해를 찾을 수 있습니다.

깊이 우선 탐색은 특히 깊은 곳에 있는 노드를 먼저 탐색하므로 빠르게 해결 방법을 찾을 수 있습니다. 그러나 무한 루프나 무한 깊이의 공간에서는 동작하지 않거나, 완전한 해답을 찾지 못할 수 있습니다. 따라서 이러한 단점을 고려하여 문제에 적절한 탐색 전략을 선택해야 합니다.

깊이 제한 탐색(Depth-Limited Search)은 깊이 제한 l을 가진 깊이 우선 탐색입니다. 깊이가 l에 도달한 노드는 후속 노드가 없으며, 더 이상 확장되지 않습니다.

특징:

  • 완전성(Completeness): 깊이 제한이 깊이의 제한보다 작으면 완전하지 않을 수 있습니다. 즉, 목표 노드가 깊이 제한보다 깊이 있으면 발견하지 못할 수 있습니다.
  • 최적성(Optimality): 깊이 제한이 깊이의 제한보다 작으면 최적의 해를 보장하지 않습니다.
  • 시간 복잡도(Time Complexity): 깊이 제한이 l일 때, 각 경로의 길이가 최대 l이 되므로 시간 복잡도는 O(b^l)입니다.
  • 공간 복잡도(Space Complexity): 깊이 제한이 l일 때, 최대 l까지의 경로를 저장해야 하므로 공간 복잡도는 O(bl)입니다.

깊이 제한 탐색은 깊이 우선 탐색과 마찬가지로 깊이 우선 탐색의 장단점을 가지고 있습니다. 하지만 깊이 제한 탐색은 무한한 깊이를 가진 공간에서도 작동하며, 최대 깊이가 지정된 경우에는 깊이 우선 탐색보다 더 효율적일 수 있습니다. 그러나 목표 노드가 깊이 제한을 초과하는 경우에는 해결책을 찾을 수 없다는 단점이 있습니다.

반복적 깊이 우선 탐색(Iterative Deepening Depth-First Search, IDDFS)은 깊이 제한 탐색의 확장입니다. 여기서는 깊이 제한을 0부터 시작하여 점진적으로 증가시키면서 목표를 찾을 때까지 탐색합니다.

특징:

  • 완전성(Completeness): IDDFS는 각 단계에서 깊이 제한을 증가시키기 때문에, 목표를 찾을 때까지 계속해서 탐색합니다. 따라서 완전성을 보장합니다.
  • 최적성(Optimality): 비용이 모두 같은 경우에는 최적의 해를 찾을 수 있습니다. 하지만 행동의 비용이 다르면 최적의 해를 보장하지 않을 수 있습니다.
  • 시간 복잡도(Time Complexity): 각 단계에서는 깊이 제한이 증가하면서 탐색이 진행됩니다. 각 단계의 시간 복잡도는 O(b^d)이며, 이를 모든 단계에 대해 합산하면 O(bd)가 됩니다.
  • 공간 복잡도(Space Complexity): 각 단계에서는 최대 b^d의 공간이 필요하므로, 공간 복잡도는 O(bd)입니다.

반복적 깊이 우선 탐색은 너비 우선 탐색과 유사한 시간 복잡도를 갖으면서도 메모리 사용량이 상대적으로 적은 장점을 가지고 있습니다. 따라서 메모리가 제한된 경우에도 사용할 수 있는 유용한 탐색 전략입니다.

Types of Problems

다양한 문제 유형에 따라 에이전트가 해결해야 하는 과제가 다릅니다. 주요 문제 유형은 다음과 같습니다:

  1. 결정론적, 완전 관측 가능 (Deterministic, Fully Observable) 문제:

    • 에이전트는 환경 상태를 완전히 파악할 수 있습니다.
    • 최적의 솔루션을 알 수 있으며, 에이전트는 행동 이후 인지를 무시할 수 있습니다.
    • 단일 상태 문제로 간주됩니다.
  2. 비 관측 (No-Observable) 문제:

    • 에이전트가 현재 위치를 모를 수 있습니다.
    • 해결책은 일련의 행동으로 구성됩니다.
    • 센서가 없는 환경에서 문제를 해결하는 것으로 간주됩니다.
  3. 비결정론적 및/또는 부분 관측 가능 (Nondeterministic and/or Partially Observable) 문제:

    • 환경이 일부 결정론적이지 않거나 완전히 관측 가능하지 않을 수 있습니다.
    • 인식은 현재 상태에 대한 새로운 정보를 제공합니다.
    • 솔루션은 정책(조건부 행동 목록)으로 나타납니다.
    • 탐색과 실행을 교차하여 문제를 해결합니다.
  4. 미지의 상태 공간 (Unknown State Space) 문제:

    • 환경의 상태 공간이 완전히 알려지지 않았거나 완전히 이해되지 않았습니다.
    • 문제 해결에는 탐색 및 탐색 결과에 따른 실시간 대응이 필요합니다.
    • 문제 해결에는 온라인 탐색이 필요합니다.

이러한 다양한 문제 유형은 에이전트가 탐색하고 문제를 해결하는 방법에 영향을 미치며, 각 문제 유형에 대해 특정한 접근 방식이 필요합니다.

profile
IT기획/운영

0개의 댓글