Исчисление предикатов в пролог-фермерской волчьей козьей капусте

У меня есть это следствие от классической проблемы козьей капусты волка фермера в Искусственном интеллекте

В учебнике говорится, что это правило действует, когда фермер и волк находятся на противоположных сторонах реки. Я не могу понять "если это часть смысла"

Что это значит?

1 ответ

Решение

Предикат move/2 принимает параметры формы state/4 in Для того чтобы реализовать состояние проблемы. В штатах первый параметр используется для фермера, второй для волка, третий для козы и четвертый для капусты. Каждая переменная параметра состояния должна получить либо значение e (для востока), либо w (для запада).

Чтобы решить проблему, вы можете определить пункты вида move(state(F1,W1,G1,C1),state(F2,W2,G2,C2)):-... аналогично пункту на картинке.

Предикат, показанный на рисунке, используется, когда и фермер, и волк находятся на одной стороне, поэтому во входном состоянии две первые переменные являются общими (state(X,X,G,C)) и хотите двигаться в противоположную сторону, чтобы перейти к state(Y,Y,G,C) где opp(X,Y) истинно, что означает, что если X равен e, то и фермер, и волдет переместятся в w и наоборот. Вышеуказанный ход действителен, так как вы реализовали предыдущие ходы так, что фермер и волк не могут быть в одной и той же стороне, и одновременно коза и капуста также находятся в одной и той же стороне (козел съел бы капусту), поэтому предыдущая последовательность ходов, так как это действительно фермер и волк могут быть на одной стороне, а капуста и коза - на противоположных сторонах.

Другие вопросы по тегам