Программирование на языке ПРОЛОГ для искуственного интеллекта




Расширение программы-примера с помощью правил - часть 6


Получается, что Пат - сестра себе самой?! Наверное, когда мы определяли отношение сестра, мы не имели этого ввиду. Однако ответ Пролога совершенно логичен, поскольку он руководствовался нашим правилом, а это правило ничего не говорит о том, что, если X - сестра Y, то X и Y не должны совпадать. Пролог (с полным правом) считает, что X и Y могут быть одним и тем же объектом и в качестве следствия из этого делает вывод, что любая женщина, имеющая родителя, является сестрой самой себе.

Чтобы исправить наше правило о сестрах, его нужно дополнить утверждением, что X и Y должны различаться. В следующих главах мы увидим, как это можно сделать, в данный же момент мы предположим, что отношение различны уже известно пролог-системе и что цель

       различны( X, Y)

достигается тогда и только тогда, когда X и Y не равны. Усовершенствованное правило для отношения сестра примет тогда следующий вид:

       сестра( X, Y) :-
                родитель( Z, X),
                родители( Z, Y),
                женщина( X),
                различны( X, Y).

Некоторые важные моменты этого раздела:

  • Пролог-программы можно расширять, добавляя в них новые предложения.
  • Прологовские предложения бывают трех типов: факты, правила и вопросы.
  • Факты содержат утверждения, которые являются всегда, безусловно верными.
  • Правила содержат утверждения, истинность которых зависит от некоторых условий.
  • С помощью вопросов пользователь может спрашивать систему о том, какие утверждения являются истинными.
  • Предложения Пролога состоят из головы и тела. Тело - это список целей, разделенных запятыми. Запятая понимается как конъюнкция.
  • Факты - это предложения, имеющие пустое тело.


    Содержание  Назад  Вперед