2014-11-10 2 views
1

로봇 시스템 용 지식 기반을 작성하고 있습니다. 시스템은 실제로 KB의 규칙과 센서 판독 값에 의해 생성 된 일련의 조건 자의 두 부분으로 구성됩니다.프롤로그에서 동적 조건자를 처리하는 올바른 방법

가능한 규칙 : 워크 플로우는, 센서에 의해 생성 된 조건부 컨설팅 룰 엔진 컨설팅하고 질의에있다

canSee(plane). 
obstacleDist(3.5). 

:

do(stop) :- obstacleDist(N), N<1. 
do(shoot(E)) :- canSee(E), enemy(E). 

감지 시스템과 같은 조건을 만들어 무엇을 해야할지. (들). (X을한다.)

문제 (예)를 canSee 조건이 센서에 의해 생산되지 않은 경우, 프롤로그 약 정의되지 않은 절차 불평 것이다 규칙 을 볼 때 할 (촬영 (E)).

가능한 해결 방법은 규칙에서 기본 조건 자 목록 (예 : canSee (nothing))을 생성하는 것이지만 이것이 최선의 방법인지는 확실하지 않습니다.

아이디어가 있으십니까?

답변

3

술어에 대한 선언이 필요합니다. 지시문 :- dynamic(canSee/1). 또는 규칙에 따라 canSee(_):-false.

관련 문제