Study/Artificial Intelligence

Backward Chaining vs Forward Chaining

빨간당무 2010. 9. 30. 03:17
- Backward chaining 
- Goal-driven procedure, top-down reasoning 
- 목표나 가정을 증명하기 위하여 그 목표를 지지하는 증거를 찾아내고 다시 이 증거들을 뒷받침 해 주는 또 다른 증거를 찾아가는 방법.
- 증명된 결론이 있을 때, Unification 알고리즘에서 사용됨.
- 수행절차
가설이 설정되면 → 관계있는 규칙만을 찾아 실행하여 → 조건부가 만족되었는지 검사한다 → 조건부가 만족되었으면 끝내고 / 그렇지 않으면 그 조건부를 다시 새로운 가설로 설정한다. (이러한 과정을 반복)
- 장점
1. 현재의 목표와 관련이 없는 사실과 규칙을 찾지 않는다.
2. 특정한 목표 혹은 가설의 참/거짓을 검사할 수 있다.
- 단점
1. 문제 해결을 하기 위하여 초기 상태에서 모든 data가 주어져야 한다.
2. 목표나 가정을 구성하기가 어렵다.

- Forward chaining 
- Data-driven procedure, bottom-up reasoning 
- 이용가능한 정보로 부터 출발하여 적절한 결론을 찾는 방법.
- RETE 알고리즘에서 사용. (새로운 사실이 DB에 추가될 때, 그것으로 인한 결론을 얻고자 할 때)
- 수행 절차
주어진 상황에 해당하는 사실에 의하여 조건부가 만족되는 규칙을 찾아 → 결론부를 실행하여 → 다음 단계로 계속 진행해 나간다.
- 장점
1. 간단하다.
2. 주어진 문제에 대한 모든 해를 찾을 수 있다.
- 단점
1. 때로는 추론엔진의 동작이 비효율적이다.
2. 문제와 관련 없는 규칙들도 자주 실행되고 불필요한 새로운 사실들을 너무 자주 만들게 된다.

- RETE algorithm 
- 조건 요소를 추론 네트워크인 Rete 네트워크 상에 나열하고 firing 시키면서 rule 로서 생성되는 요소들을 묶어나가 추론하는 패턴 매칭 알고리즘

- 정리해 주신 이기성 선배님께 감사드립니다.