(AI) 문제해결 위한 탐색(2)
💼📝🔑⏰ 📙📓📘📒🎓
💼 경험적 탐색
- 목표상태를 보다 신속하게 탐색하기 위해
경험적 지식
을 사용하는 탐색 방법 - 경험적 지식을
평가함수
에 반영- 어떤 상태가 주어졌을 때 그 상태를 거쳐 가는 것이 목표상태로 가는데 얼마나 바람직한가를 나타내는 함수
- 해를 향해 가는데 필요한 비용,해로 향하는 경로상에 존재할 가능성 등
📝 언덕오르기 방법
- 현재상태를 확장하여 생성된 후계노드들 중에서 다음 확장할노드를 선택함
깊이우선 탐색과 유사
한 순서로 탐색,깊이우선과 다른 점은 평가함수를 사용하여 계산한다
는 점이다.- 후계노드의 평가함수를 계산하여 가장 비용이 적은 노드를 다음 확장할 노드로 선택
문제점
- 언덕오르기 탐색과 같은 계수 최적화 방법에서는 후계상태들이 모두 낮은 평가함수를 갖음으로 인해 최대치에 도달한 것으로 오인하게 되는
지역최대치 문제
- 평가함수 값의 변화가 없어 더 이상 탐색을 진행하지 못하는
고원문제
- 연산자의 제한된 해상도로 인해 평가함수 값이 개선되는 후계상태를 찾지 못해 최대치에 도달한 것으로 오인하게 되는
능선문제
등이 발생할 수 있다.
평가함수
- 후계노드로부터 목표노드에 도달하는 비용을 예측한 값
- 후계노드까지 도달하는데 사용된 비용은 고려하지 않음
📝 최고우선 탐색 (Best-first search) (=최적우선탐색)
모든 말단 노드를 대상으로 평가함수 값을 비교하는 방법(선택 안된 노드도 추후 선택 가능)
- 가장 유망한 노드만을 확장하므로 탐색비용을 상당히 줄일 수 있다.
📝 A* 알고리즘
- A* 알고리즘에서는 출발노드로부터 노드n까지 도달하는 경로비용과
- 노드n으로부터 아직 탐색이 진행되지 않은 목표노드까지의 경로비용 예측치의 합을 평가함수로 사용한다.
- 평가함수:
g(n)+h´(n)
💼 문제축소에 의한 해결방식
📝 문제축소
📝 AND/OR 그래프 및 탐색
📝 게임트리 및 최대최소 탐색
최대최소 탐색
- 나와 상대방이 최적의 선택을 한다는 가정하에
- 나에게 최악인 선택을 하는 상대방을 대상으로
- 나의 결정의 가치가 최대가 되는 결정을 내리는 방식으로 게임을 진행한다.
- 최대화와 최소화를 번갈아 반복하여 가장 우수한 후계노드를 선택한다.
몬테카를로 트리 탐색
- 게임과 같은 의사결정 문제에 활용되는 경험적 탐색 알고리즘
- 탐색공간의 무작위 표본화를 바탕으로 탐색트리를 구성함
- 선택, 확장, 시뮬레이션, 역전파 단계를 반복
선택 단계
에서는 탐사(exploration)와 활용(exploitation)의 균형을 이룰 수 있는 전략을 선택하며, UCT 알고리즘은 잘 알려진 선택전략 중 하나이다.시뮬레이션 단계
에서는 순수한 무작위 방법이나 적절한 시뮬레이션 전략에 따른 유사 무작위 방법으로 수를 선택하는 전략을 사용할 수 있다.- 최종적인
최적 행동 선택
을 위해서는 최대 자식, 강인한 자식, 최대-강인 자식, 안전한 자식 등 적절한 전략을 선택할 수 있다.
댓글남기기