это удовлетворяет и третьей подцели и, таким образом, вся
цель достигнута.
При поиске последнего решения в качестве Person1 u
Person2 рассматривается ученик susan. Поскольку это не удов-
летворяет последней подцели, Турбо Пролог должен вернуться ко
второй подцели, но новых возможностей здесь уже нет. Поэтому
Турбо Пролог возвращается к первой подцели. Но возможности
для переменной Person1 также уже исчерпаны, и выполнение за-
вершается.
Введите рассмотренную выше составную цель для программы3,
и убедитесь,что Турбо Пролог ответит вам следующим образом:
Person1=peter, Person2=chris
Person1=peter, Person2=susan
Person1=chris, Person2=peter
Person1=chris, Person2=susan
Person1=susan, Person2=peter
Person1=susan, Person2=chris
Goal:_
На рис.3-1 показано, каким образом Турбо Пролог осущест-
вляет возвраты, чтобы удовлетворить заданной цели.
Упражнение. Определите, что ответит Турбо Пролог при обра-
ботке цели
pupil(Person,g) and pupil(Person2,10).
и проверьте себя, введя эту цель в систему.
**
┌──────────────────────────────────────────────────────────────┐
│ pupil(Person1,g) and pupil(Person2,g) and Person1<>Person2 │
│ | | | | │
│ peter peter peter peter │
│ неудача │
│ pupil(peter,9) pupil(peter,9) │
│ pupil(paul,10) pupil(paul,10) │
│ pupil(chris,9) pupil(chris,9) │
│ pupil(susan,9) pupil(susan,9) │
│ Возможностей выбора │
│ больше нет, поэтому │
│ возврат │
│ pupil(Person1,9) and pupil(Person2,4) and Person1<>Person2 │
│ | | | | │
│ peter peter peter peter │
│ │
│ успех │
│ pupil(peter,9) pupil(peter,9) │
│ pupil(paul,10) pupil(paul,10) │
│ pupil(chris,9) pupil(chris,9) │
│ pupil(susan,9) pupil(susan,9) │
│ Возможностей выбора боль-│
│ ше нет, поэтому возврат │
│ pupil(Person1,9) and pupil(Person2,9) and Person1<>Person2│
│ | | | | │
│ peter peter peter peter │
│ успех │
│ pupil(peter,9) pupil(peter,9) │
│ pupil(paul,10) pupil(paul,10) │
│ pupil(chris,9) pupil(chris,9) │
│ pupil(susan,9) pupil(susan,9) │
│ Возможностей выбора боль-│
│ ше нет,поэтому возврат │
│ Возможностей выбора больше нет, │
│ поэтому возврат │
│ pupil(Person1,9) and pupil(Person2,9) and Person1<>Person2│
│ | | | | │
│ chris peter chris peter │