Слайд 2История Пролога
Алан Робинсон и Роберт Ковальский
(метод резолюций)
начало 70-х - Алан Колмероэ Пролог
(ПРОграммирование ЛОГическое)
1977 г Дэвид Уоррен и Ф. Перейро (Эдинбургского университет) - первый интерпретатор/компилятор для ЭВМ DEC-10
в 1980 г. К. Кларк и Ф. Маккейб - версия Пролога для ПЭВМ.
1981 г. японский проект создания ЭВМ пятого поколения, за основу выбрано логическое программирование.
Слайд 3Наиболее известные реализации Пролога
CProlog
Silogic Knowledge Workbench
Arity Prolog
Prolog-86 (Prolog Development
Center - PDC) с Borland International в 1986 г.
Turbo Prolog 2.0 ,..3.31 (с 1988)
Visual Prolog (PDC) с 1996 г.
Слайд 4Логическая программа
программа = множество аксиом;
вычисление = конструктивный вывод целевого утверждения из
программы.
Программа содержит: Факты
правила
вопросы
Слайд 5Факты
Факты, отражающие свойства
human(oleg).
fruit(orange).
red(rose).
Факты, отражающие отношения
likes(bill, cindy).
meet(lena, maria).
Слайд 6Правила
правило – это заключение, для которого известно, что оно истинно, если одно
или несколько других найденных заключений или фактов являются истинными.
Like(Марина, яблоки).
Like(Оксана, Something):-Like(Марина, Something).
Символ :- соответствует "if"
Слайд 7Вопросы или цели
Вопросы (цели) бывают простые и составные.
Среди простых вопросов можно также
выделить конкретные – те, которые требуют ответа в форме “ДА”, “НЕТ”
like(Марина, яблоки).
экзистенциональные вопросы, которые могут иметь несколько ответов
meet(Person, maria).
can_buy(Who,What).
Составные вопросы- представляют собой цель, состоящую из двух и более частей. Каждая часть сложной цели называется подцелью.
like(Person, ice-cream), like(Person,cinema ).
коньюнкцией (логическое “И”- “,”) или дизъюнкцией (логическое “ИЛИ”- “;”) нескольких подцелей.
Слайд 8Пример пролог-программы
predicates
likes(symbol,symbol)
fruit(symbol)
clauses
fruit(apple).
fruit(orang).
likes(marine, apple).
likes(marine, orang).
likes(marine, Something):- likes(marine,Something),fruit(Something).
goal
likes(oksana, Fruit).
Слайд 9Основные разделы Пролог-программы
DOMAINS
Объявление доменов
PREDICATES
Объявление предикатов
CLAUSES
Предложения (факты и правила)
GOAL
Подцель_1, Подцель_2, и т.д.
Слайд 10DOMAINS
чтобы задавать доменам (типам) осмысленные имена
создавать собственные домены для описания структур данных.
Игорь
– мужчина, которому 20 лет.
domains
name, gender= symbol
age= integer
predicates
Person(Name, gender, age)