Содержание
- 2. Концепция логического программирования (ЛП) ЛП – программирование в терминах целей. Процедурные языки - «КАК» что-либо делать.
- 3. Пролог: набор механизмов Сопоставление образцов Древовидное представление структур данных Автоматический возврат Программирование в терминах логики: Декларативная
- 4. Пример области знаний «Логика» Если Дэвид интересуется логикой, то он либо запишется в следующем семестре на
- 5. Пример «Логика» Оформление знаний в логике высказываний Высказывания Обозначение Дэвид интересуется логикой D Дэвид запишется в
- 6. Пример «Логика» Оформление знаний в логике предикатов Предикат Обозначение X интересуется Y D(X,Y) X запишется в
- 7. Модель на Прологе строится в терминах: объектов и утверждений (предикатов) Простые Структуры объекты Факты Правила (Термы)
- 8. Простые объекты (термы) Константы Атомы (со строчной буквы или в кавычках) Char (отдельный символ в апострофах)
- 9. Утверждения (предикаты) Факт – безусловно истинное утверждение. отсутствие факта означает его неудачное выполнение! Правило – условно
- 10. Факты (объект1,…,объектN). константы Совокупность фактов – база данных.
- 11. Пример. Дерево родственных отношений Иван Ольга Елена Петр Алла Борис Вера Игорь Егор
- 12. Пример. Предикаты. родитель(иван, ольга). родитель(иван, петр). родитель(елена, ольга). родитель (ольга, вера). родитель (ольга, игорь). родитель (петр,
- 13. Пример. Вопросы. ? – родитель(иван, ольга). ==> Yes ? – родитель (Х, вера). ==> X=ольга ?
- 14. Правила [A] : – [B]. A – заголовок / голова предложения В – тело правила (может
- 15. Пример «Логика» Оформление знаний на Прологе Предикат Обозначение X интересуется Y D(X,Y) X запишется в следующем
- 16. Пример. Правила родственных отношений отпрыск(X,Y):-родитель(Y,X). женщина(елена). женщина(ольга). мужчина(петр). мужчина(борис). мать(X,Y):-родитель(X,Y),женщина(Х). отец(X,Y):-родитель(X,Y),мужчина(Х). сестра(X,Y):- родитель(Z,X), родитель(Z,Y), женщина(Х). имеет_ребенка(X):-родитель(Х,_).
- 17. Переменные в предложениях. Диапазон имени переменной – одно предложение! Разные предложения – разные переменные!
- 18. Процедура Набор правил с одним именем предиката, сгруппированных в одном месте. A:- B,C. ИЛИ A:- D.
- 19. Пример. Процедура родственных отношений кузина(X,Y):-родитель(X1,X),родитель(X2,Y), сестра(X1,X2),женщина(Х). кузина(X,Y):-родитель(X1,X),родитель(X2,Y), брат(X1,X2),женщина(Х). можно кузина(S,Y):- женщина(S),родитель(X1,S), родитель(X2,Y),сестра(X1,X2),
- 20. Унификация термов Два терма унифицируемы (сопоставимы), если: термы абсолютно одинаковы (константы); 1-й терм – переменная, 2-й
- 21. Поиск решения Резольвента – множество целей, которые необходимо выполнить. Поиск (начало – с вопроса): формируется резольвента;
- 22. Пример поиска решения Программа p(X):-q(X),s(X),r(X). p(X):-u(X). q(a). q(b). s(c). s(b). r(a). u(d). u(a). ?- p(a). Поиск
- 23. Общая структура программы [include «файл, добавляемый к модулю»] [global domains] [Domains] [global predicates] Predicates Clauses Goal
- 24. Predicates (тип_арг1, …, тип_аргN). Можно: (тип_арг1 комментарий1, … , тип_аргN комментарийN) Допустимо многократное объявление предиката с
- 25. Пример программы «Семейные отношения» predicates parent(Symbol parent, string child) man(string) woman(symbol) mother(SYMBOL, SYMBOL) father(SYMBOL, SYMBOL) sister(string,string)
- 26. Сложные термы Структуры Перечислимые термы Списки
- 27. Структуры S(X1, X2, …, XN) S – имя структуры (функтор). Xi – компоненты (аргументы) структуры: константы;
- 28. Сложные термы (описание) Перечислимые термы T = k1; k2; … kN T – имя типа ki
- 29. «Семейные отношения», структуры данных domains pol = man; woman date = day(integer day, integer month, real
- 31. Скачать презентацию