Я новичок в прологе и пытаюсь решить эту проблему. Я сделал пару руководств по основам пролога на YouTube, но мне нужна помощь в решении головоломки ниже.
Две недели назад четыре энтузиаста наблюдали объекты в небе по соседству. Каждый из четверых сообщил о своих наблюдениях в разные дни. Приехало ФБР и могло дать каждому человеку собственное объяснение того, что он или она «на самом деле» видел. Можете ли вы определить день (со вторника по пятницу), когда каждый человек увидел объект, а также объект, которым он оказался?
- Мистер К. заметил на этой неделе раньше, чем тот, кто видел воздушный шар, но в какой-то момент позже, чем тот, кто заметил воздушного змея (а не г-жа Дж.).
- Пятницу заметила либо мисс Барн, либо тот, кто видел самолет (или и то, и другое).
- Г-н Ник не заметил во вторник.
- Мистер К. не тот, чьим объектом оказался телефонный столб.
Я правильно установил свои правила, но, похоже, я не могу понять логику. Я ищу руководство, а не прямые ответы. Справа я указал номер каждого вопроса, на который пытаюсь ответить.
enthu(mr_k).
enthu(ms_barn).
enthu(ms_g).
enthu(mr_nik).
object(ballon).
object(kite).
object(plane).
object(tele_pole).
day(tuesday).
day(wednesday).
day(thursday).
day(friday).
sight(X,ballon).
sighting(mr_k):- 1
day(X),
sight(X,Y),
didntc_kite(ms_g).
friday_sight:- enthu(ms_barn); 2
saw(X,plane);
both(ms_barn,X).
nosight_tuesday(mr_nik,X). 3
no_telepole(mr_k,Y). 4
mr_klien
, а неmr_k
, которое вы объявили в первый раз? - person Searching   schedule 15.11.2016sighting
в качестве интересующего действия / объекта ... например, вместо того, чтобы говоритьnosight_tuesday(mr_nik,X).
. построить правило, делающее прицеливаниеtrue
ikesighting(mr_nik) :- ...
sighting(mr_k) :- ...
и т. д. - person Searching   schedule 15.11.2016