탐색과 문제 해결
Search · Heuristic · Reasoning
학기 초에는 인공지능이 정답을 바로 계산하는 것이 아니라, 가능한 상태를 탐색하고 기준에 따라 다음 상태를 선택하면서 문제를 해결하는 과정을 살펴보았다.
탐색 알고리즘 비교
같은 문제라도 탐색 방법에 따라 방문하는 상태와 경로가 달라질 수 있음을 비교하였다. 완성된 큰 코드를 처음부터 작성하기보다, 주어진 코드에서 현재 노드·이웃 노드·우선순위·경로가 어떻게 바뀌는지 추적하는 방식으로 수업을 진행하였다.
| 관찰 요소 | 확인한 내용 |
|---|---|
| 초기 상태와 목표 상태 | 어디에서 탐색을 시작하고 어떤 상태에 도달하면 탐색이 끝나는지 확인 |
| 이웃 노드 | 현재 위치에서 이동 가능한 다음 상태가 어떻게 생성되는지 확인 |
| 휴리스틱 | 목표에 가까운 상태를 우선 선택하기 위해 사용하는 평가 기준 확인 |
| 탐색 경로 | 이전 노드 정보를 저장하고 최종 경로를 복원하는 과정 추적 |
수업 코드 활용 방식
예를 들어 최상 우선 탐색 실습에서는 heapq, 휴리스틱 함수, 이웃 노드 탐색, 경로 복원 함수가 포함된 코드를 제공하고, 그 안에서 값이 어떻게 이동하는지 읽어 보았다. Python 문법 자체보다는 각 코드 블록이 탐색 과정에서 어떤 역할을 하는지를 설명하는 데 초점을 두었다.
추론으로 연결
탐색 이후에는 사실과 규칙을 이용하여 새로운 판단을 만드는 과정도 함께 살펴보았다. 정해진 규칙을 적용해 결론에 도달하는 과정을 통해, 인공지능의 문제 해결이 단순 계산뿐 아니라 지식의 표현과 추론으로도 이루어질 수 있음을 연결하였다.
이 영역의 핵심은 탐색 코드를 암기하는 것이 아니라, 상태가 어떤 기준으로 선택되고 탐색 과정이 어떻게 결과로 이어지는지 설명하는 것이다.