Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Likes(ellen, tennis).






    Likes(john, football).

    Likes(tom, baseball).

    Likes(eric, swimming).

    Likes(mark, tennis).

    Likes(bill, Activity): - likes(tom, Activity).

    Предложение состоит из фактов и правил. В логике предиката, которую Пролог использует, отношение получено в простой фразе - факте, который состоит из названия отношения (такое отношение называется предикатом), сопровождаемого конкретным объектом или объектами (заключенных в круглых скобках).

    Факт, выражающий отношение «likes» в естественном языке:

    ellen likes tennis - Эллин любит теннис.

    Вот тот же самый факт, написанный на языке Пролог:

    likes(ellen, tennis).

    Последняя строка в Программе является правилом:

    likes(bill, Activity): - likes(tom, Activity).

    Это правило соответствует следующему утверждению в естественном языке

    Bill likes an activity if Tom likes that activity. - Bill любит занятие, если Tom любит это занятие.

    В этом правиле, головой является likes(bill, Activity), а телом - likes(tom, Activity). Заметьте, что в этом примере нет никакого факта о том, что Билл любит бейсбол (Bill likes baseball).

    5. На Прологе, чтобы выяснить, любит ли Билл бейсбол, задайте такой запрос:

    likes(bill, baseball).

    При попытке найти решение этого запроса, Пролог будет использовать правило:

    likes(bill, Activity): - likes(tom, Activity).

    В результате программный код должен выглядеть следующим образом:

    PREDICATES

    nondeterm likes(symbol, symbol)

     

    CLAUSES

    likes(ellen, tennis).

    likes(john, football).

    likes(tom, baseball).

    likes(eric, swimming).

    likes(mark, tennis).

    likes(bill, Activity): - likes(tom, Activity).

     

    GOAL

    likes(bill, baseball).

     

    6. Чтобы проверить написанную программу нажмите пункт меню Project → Test Goal. Система выдаст ответ в диалоговом окне (рис. 1) - Yes.

     

    Рис. 1. Пример программы на Прологе по определению нравится ли Биллу бейсбол

     

    Это результат объединения правила

    likes(bill, Activity): - likes(tom, Activity).

    с фактом

    likes(tom, baseball).

    7. Для того чтобы решить, любит ли Бил бейсбол likes(bill, baseball). Исправьте запрос в разделе GOAL likes(bill, baseball) на likes(bill, tennis). Система ответит (рис. 2) - No.

    Рис. 2. Пример программы на Прологе по определению нравится ли Биллу теннис

     

    Visual Prolog ответил No на последний запрос (" Does Bill likes tennis? "), потому что не было факта, что Bill likes tennis (Билл любит теннис). Объекты Bill и tennis не могут быть выведены, используя имеющиеся правила и факты. Конечно, может быть Билл и обожает теннис в реальной жизни, но Visual Prolog отвечает, основываясь только на факты и правила, которые были заданы в программе.

    8. Рассмотрим следующий пример.

    Имеется база данных, содержащая следующие факты:

    родитель(илья, марина).

    родитель(марина, ира).

    родитель(елена, иван).

    родитель(николай, ира).

    родитель(ольга, алексей).

    родитель(марина, саша).

    родитель(сергей, иван).

    Необходимо определить:

    1) верно ли, что Марина является родителем Саши;

    2) верно ли, что Алексей является родителем Ольги;

    3) кто является ребенком Николая;

    4) кто родители Ивана;

    5) всех родителей и их детей.

    9. Для начала опишем разделы доменов и предикатов.






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.