본문 바로가기

인공지능(AI)

탐색과 최적화 기법 (1)

반응형

3-1 상태 공간과 탐색

탐색

  • 상태의 변화를 통해 문제의 해를 찾는 과정

상태 공간과 탐색의 중요 개념

  • 상태 공간(State Space): 문제의 초기 상태부터 도달할 수 있는 모든 상태의 집합 또는 문제의 해가 될 가능성이 있는 상태들의 집합
  • 탐색으로 해 구하기: 상태 공간을 체계적으로 탐색해 목표 상태에 도달하게 하는 일련의 동작을 찾거나 문제의 해가 되는 상태 자체를 찾는 것
  • 상태 공간 그래프: 변하는 상태를 표현한 그래프

상태 공간 그래프의 예

3-2 탐색의 종류

맹목적 탐색(Blind Search)

  • 문제의 상태 공간 정보를 이용하지 않고 정해진 순서에 따라 상태 공간 그래프를 생성하면서 순서대로 모든 경우를 탐색해 해를 찾는 것
  • 깊이우선 탐색(Depth-First Search, DFS)
  • 너비우선 탐색(Breadth-First Search, BFS)
  • 반복적 깊이 심화 탐색(Iterative-Deepening Search)
  • 양방향 탐색(Bidirectional Search)

정보 이용 탐색(Informed Search)

  • 상태 공간에 대한 정보를 이용해 탐색 효율을 높이는 탐색
  • 휴리스틱 탐색(Heuristic Search)이라고도 함
  • 언덕 오르기 방법(Hill Climbing Method)
  • 최상우선 탐색(Best First Search)
  • 빔 탐색(Beam Search)
  • A 알고리즘(A Algorithm)
  • 다익스트라 알고리즘(Dijkstra Algorithm)
  • ID3 알고리즘

게임 탐색(Game Search)

  • 게임의 참가자가 이기기 위해 매순간 최고의 방법을 찾는 것을 모방
  • 미니맥스 알파베타 가지치기(Minimax Alpha-Beta Pruning)
  • 몬테카를로 트리 탐색

제약 조건 만족 문제(Constant Satisfaction Problem)

  • 주어진 제약 조건을 만족하는 해를 찾는 것
  • 백트래킹 탐색(Backtracking Search)
  • 제약 조건 전파 방법(Constraint Propagation)

최적화(Optimization)

  • 허용되는 값 중 주어진 기준을 가장 잘 만족하는 것을 찾는 것
  • 조합 최적화(Combination Optimization)
  • 계산 과정(Calculation Process)의 최적화
  • 함수(Function) 최적화

3-3 맹목적 탐색

그래프 이론과 트리 구조

  • 그래프: 점을 선으로 연결한 것

그래프의 종류

  • 연결 그래프
  • 비연결 그래프
  • 유향 그래프
  • 가중 그래프
  • 무향 그래프

그래프 표현 방법

  • 그림으로 표현
  • 행렬로 표현
  • 가중치를 그림과 행렬로 표현

트리의 구조와 탐색

  • 트리구조: 그래프의 한 형태로, 그래프에 있는 여러 정점에서 출발점이 되는 정점으로 돌아가는 경로가 유일하며, 출발점이 되는 정점이 막다른 정점인 그래프

깊이우선 탐색

  • 1단계: 정점A에서 깊이 우선 탐색 시작
  • 2단계: A에 방문하지 않은 B,C가 있으므로, A를 스택에 넣고, 오름차순으로 B를 선택해 탐색 수행
  • 3단계: B에 방문하지 않은 D, E가 있으므로 B를 스택에 넣고, 오름차순으로 D를 선택해 탐색을 수행
  • 4단계: D에 방문하지 않은 G가 있으므로 D를 스택에 넣고, G를 선택해 탐색을 수행
  • 5단계: G에 방문하지 않은 E가 있으므로 G를 스택에 넣고, E를 선택해 탐색을 수행
  • 6단계: E에 방문하지 않은 C가 있으므로 E를 스택에 넣고, C를 선택해 탐색을 수행
  • 7단계: C에 방문하지 않은 F가 있으므로 C를 스택에 넣고, F를 선택해 탐색을 수행
  • 8단계: F에 방문하지 않은 곳이 없으므로 스택을 POP해 얻은 C에 방문하지 않은 곳이 있는지 확인함
  • 9단계: C에 연결된 곳 중 방문하지 않은 곳이 없으므로 스택을 POP해 얻은 E에 방문하지 않은 곳이 있는 지 확인함
  • 10단계: E에 연결된 곳 중 방문하지 않은 곳이 없으므로 스택을 POP해 얻은 G에 방문하지 않은 곳이 있는지 확인
  • 11단계: G에 연결된 곳 중 방문하지 않은 곳이 없으므로 스택을 POP해 얻은 D에 방문하지 않은 곳이 있는지 확인
  • 12단계: D에 연결된 곳 중 방문하지 않은 곳이 없으므로 스택을 POP해 얻은 B에 방문하지 않은 곳이있는지 확인
  • 13단계: B에 연결된 곳 중 방문하지 않은 곳이 없으므로 스택을 POP해 얻은 A에 방문하지 않은 곳이 있는지 확인
  • 14단계: A에서 방문하지 않은 인접 정점이 없으므로 스택을 POP해야 되는데, 스택이 공백이므로 깊이 우선 탐색을 종료

깊이 우선 탐색의 과정

  • 깊이우선 탐색은 스택을 사용한다

너비우선 탐색

  • 1단계: 정점A에서 너비 우선 탐색을 시작한다. 큐에 A를 넣음
  • 2단계: 큐에서 A를 꺼내 1차로 연결된 곳에 방문하지 않은 B, C가 있으므로 B, C를 큐에 넣고, B를 선택해 탐색 수행
  • 3단계: B에 1차로 연결된 곳에 방문하지 않은 D, E가 있으므로 D, E를 큐에 넣고 C를 선택해 탐색을 수행
  • 4단계: C에 1차로 연결된 곳에 방문하지 않은 E, F가 있으므로 중복되는 E를 빼고, F를 큐에 넣고 D를 선택해 탐색을 수행
  • 5단계: D에 1차로 연결된 곳에 방문하지 않은 G가 있으므로 G를 큐에 넣고 E를 선택해 탐색을 수행
  • 6단계: E에 1차로 연결된 곳에 방문하지 않은 곳이 없으므로 큐에서 F를 선택해 탐색을 수행
  • 7단계: F에 1차로 연결된 곳에 방문하지 않은 곳이 없으므로 큐에서 G를 선택해 탐색을 수행
  • 8단계: G에 1차로 연결된 곳에 방문하지 않은 곳이 없으므로 큐에서 노드를 선택해야 하는데, 큐가 비어있으므로 종료

너비우선 탐색의 과정

  • 너비우선 탐색은 큐를 사용한다

너비우선 탐색과 깊이우선 탐색 비교

 

 

 

 

 

※ 해당 내용은 <인공지능 바이블>의 내용을 토대로 학습하며 정리한 내용입니다.

반응형

'인공지능(AI)' 카테고리의 다른 글

탐색과 최적화 기법 (3)  (0) 2023.05.19
탐색과 최적화 기법 (2)  (0) 2023.05.18
오토마톤과 인공 생명 프로그램  (0) 2023.05.16
지식 표현과 추론  (0) 2023.05.15
인공지능의 연구 분야  (0) 2023.05.14