Главная страница
Навигация по странице:

  • Создание фактов в Пролог-программе

  • Вопрос 2. Вопрос ”Кто отец Элизабет и сколько ему лет” на Прологе можно задать следующим образом:-parent(Х,’ Элизабет’),person(X,’м’, Y).Вопрос 3.

  • Создание правил в Пролог-программе

  • Пролог. Лаб_р Пролог_1 методические указания. Программа на swi prolog


    Скачать 82 Kb.
    НазваниеПрограмма на swi prolog
    АнкорПролог
    Дата19.02.2023
    Размер82 Kb.
    Формат файлаdoc
    Имя файлаЛаб_р Пролог_1 методические указания.doc
    ТипПрограмма
    #945742

    Методические указания по лабораторной работе № 1.

    Тема. Простейшая программа на SWI Prolog.


    П

    Эд
    рограмма «Родственники» является примером простой Прологпрограммы. На рис 2. показано трехуровневое генеалогическое дерево.
    Создание фактов в Пролог-программе
    Родственные отношения можно записать с помощью фактов, соответствующие отношению parent:

    parent(‘Памелла’,’Джон’).

    parent(‘Памелла’,’Элизабет’).

    parent(‘Том’,’Джон’).

    parent(‘Том’,’Элизабет’).

    parent(‘Джон’,’Анна’).

    parent(‘Джон’,’Пат’).

    parent(‘Элизабет’,’Эд’).

    parent(‘Пат’,’Джим’).
    Расширим эту программу фактами, определяемыми схемой отношения person.

    person(‘Памелла’,’ж’,72).

    person(‘Том’,’м’,78).

    person(‘Джон’,’м’,42).

    person(‘Элизабет’,’ж’,35).

    person(‘Эд’,’м’,14).

    person(‘Анна’,’ж’,20).

    person(‘Пат’,’ж’,25).

    person(‘Джим’,’м’,3).
    Теперь мы можем задавать Прологпрограмме вопросы, используя оба отношения.

    Вопрос 1.

    Вопрос ”Является ли Пат родителем Джима?” на Прологе можно задать следующим образом:
    ?-parent(‘Пат’,’Джим’).

    Пролог-система будет искать в программе факт, совпадающий с вопросом, и, обнаружив такой факт, система выдаст ответ ‘YES’. В случае, когда соответствующий факт не обнаружен, система выдаст ответ ‘NO’.

    Вопрос 2.

    Вопрос ”Кто отец Элизабет и сколько ему лет?” на Прологе можно задать следующим образом:

    ?-parent(Х,’ Элизабет’),person(X,’м’, Y).

    Вопрос 3.

    Вопрос ”Кто отец Элизабет?” на Прологе можно задать следующим образом:
    ?-parent(Х,’ Элизабет’),person(X,’м’, _).
    Пролог-система выдаст ответ:

    X=’Том’->

    YES
    Создание правил в Пролог-программе

    Приведенные примеры вопросов относятся к программе, состоящей из одних фактов. Для того чтобы сократить и упростить вопросы в Пролог—программах задаются правила.

    Вопрос 3 можно упростить, если задать следующее правило:

    “X является отцом Y, если X является родителем Y, и X – мужчина.”

    На языке Пролог это правило записывается так:

    father(X,Y):-parent(X,Y),person(X,’м’,_).

    А вопрос 3 записывается следующим образом:

    ?-father(X,’Jim’).


    написать администратору сайта