나는 미로 경로를 해결하는 데 도움이 필요합니다. 미리 감사는출입구 사이의 가능한 모든 경로
link(a,b).
link(b,c).
link(c,d).
link(f,c).
link(b,e).
link(d,e).
link(e,f).
은 더 일반적인 경우에 대해 다룹니다 그들과 재귀 술어 사이의 링크가 있다는 사실에 기반한 인접한 두 점 (예를 들어 X와 Y) 사이의 경로를 정의하는 술어를 쓰기 X와 세 번째 점 (예를 들어 Y)과 Y와 Z 사이의 경로가 있다는 사실을 확립하여 임의의 두 인접하지 않은 점 (예 : X와 Z) 사이의 경로를 찾습니다.
2 개의 특별 객실 - 하나는 "a"에 연결되어 있고 "Entry"라고하고 다른 하나는 "f"에 연결되어 "Exit"라고합니다. 새로운 두 개의 방을 반영하기 위해 일련의 사실을 추가하십시오. 작업 1의 술어를 사용하여 Entry와 Exit 사이에 가능한 모든 경로를 찾아서 방문한 방의 목록을 작성하는 술어를 작성하십시오. 모든 반복 끝에 대화식 콘솔에 목록을 표시하는 또 다른 조건자를 작성하십시오. 즉, Exit에 도달 할 때마다 목록을 표시하십시오. 예상 결과와 실제 결과를 보여주는 테스트 계획을 작성하십시오. 이 솔루션을 평가하고 잠재적 인 문제점 및 그 발생을 야기 할 수있는 상황을 식별하십시오.
이 솔루션의 문제점은 반복적입니다. (a, f) 프롤로그에 no를 지정하고 싶습니다. 내 술어에 문제가 있습니까?
| 링크 (a, b). 링크 (b, c) 링크 (c, d) 링크 (f, c) 링크 (b, e) 링크 (d, e) 링크 (e, f).
라우트 (X, Y) : - 링크 (X, Y). route (X, Y) : - 링크 (X, Z), 경로 (Z, Y). 예
예
예
예
예
예
그래! ---------------------------------------- ! 오류 20 : 조건이 정의되지 않음 ! 목표 : 경로 (_31102, _31104) : - 링크 (_31102, _31104)
중단 된 | 링크 (a, f). 아니오
| ? - 경로 (X, Y).X = a, Y = b;
X = b, Y = c;
X = c, Y = d;
X = f, Y = c;
X = b, Y = e;
X = d, Y = e;
X = e, Y = f;
X = a, Y = c;
X = a, Y = e;
X = A, Y = D
;
X = A, Y = D
| 링크 (X, Z). X = a, Z = b
| ? - | 링크 (X, Z). X = a, Z = b;
X = b, Z = c;
X = c, Z = d;
X = f, Z = c;
X = b, Z = e;
X = d, Z = e; X = E
, Z = F는
:
또는, 당신의 새 이름을 사용합니다. 아무도 당신을 위해 숙제를 할 수는 없지만, 많은 사람들은 당신이하지 못한 기술적 인 포인트를 이해하도록 도와 줄 준비가되어 있습니다. 누군가가 당신을 위해 그것을 바랄 것이라고 기대해야 할 운동을 게시하지 마십시오 ... – Antwane[둘러보기] (http://stackoverflow.com/tour)를 읽어이 사이트에 대한 정보를 얻으십시오. – false