Светлана Ахматова TVTB17. Содержание Введение Что такое логическое программирование? Planner Backtracking Стек Prolog 1.1 Пример программы: родственные.

Презентация:



Advertisements
Похожие презентации
Достоинства логической модели знаний. 1. В качестве «фундамента» здесь используется классический аппарат математической логики, методы которой достаточно.
Advertisements

1 Интеллектуальные системы Лекция 7. Логический вывод в логике первого порядка. Представление знаний Вахтин А. А.
Искусственный интеллект Проблема создания человеческого разума.
Логика – это наука о формах и законах человеческой мысли, о законах доказательных рассуждений, изучающая методы доказательств и опровержений, т. е. методы.
Алгебра логики. Логика Логика – это наука о формах и законах человеческой мысли, о законах доказательных рассуждений, изучающая методы доказательств и.
Алгебра логики. Логика Логика – это наука о формах и законах человеческой мысли, о законах доказательных рассуждений, изучающая методы доказательств и.
ЛОГИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ КОМПЬЮТЕРА Изучив эту тему, вы узнаете: основные понятия и операции формальной логики; логические выражения и их преобразование;
Логическое программировыание Презентация 5 Списки в Прологе.
Михайлова Виктория, 141 группа, 2011 год. Информационная технология решения задачи с помощью компьютера: основная технологическая цепочка. Существует.
Логическое программировыание Лекция 3 Основные понятия Пролога.
1 Кубенский А.А. Дискретная математика. Глава 2. Элементы математической логики Исчисление высказываний Высказывание – утверждение о математических.
Логические функции Позволяют решать с помощью табличного процессора логические задачи.
Объектно - ориентированное программирование. Профильные курсы информатики, ориентированные на программирование.
Логика предикатовЛогика предикатовЛогика предикатов расчленяет элементарное высказывание на субъект (буквально - подлежащее, хотя оно и может играть роль.
Введение в формальные (аксиоматические) системы. Формальные системы - это системы операций над объектами, понимаемыми как последовательность символов.
Введение Задачи с параметрами давно вошли в практику вступительных экзаменов по математике ведущих учебных заведений Задачи с параметрами давно вошли.
Тема урока Переменная. Тип данных. Ввод и вывод данных.
ВВЕДЕНИЕ В МАТЕМАТИЧЕСКУЮ ЛОГИКУ Логика, математическая логика и основания математики.
Списки в языке Пролог. Определение Список упорядоченное множество объектов одинакового типа. Формально это определение соответствует определению массива.
Работу подготовил ученик 9 Б класса Федотов Дмитрий.
Транксрипт:

Светлана Ахматова TVTB17

Содержание Введение Что такое логическое программирование? Planner Backtracking Стек Prolog 1.1 Пример программы: родственные отношения 1.2 Факты 1.3 Вопросы 1.4 Переменные

1.5 Конъюнкция целей 1.6 Правила 1.7 Конъюнкция в правилах 1.8 Переменные в теле правила 1.9 Cтруктура пролог-программы

Введение Искусственный интеллект это наука и технология создания интеллектуальных машин, особенно интеллектуальных компьютерных программ. ИИ связан со сходной задачей использования компьютеров для понимания человеческого интеллекта, но не обязательно ограничивается биологически правдоподобными методами. Логический подход к созданию систем искусственного интеллекта направлен на создание экспертных систем с логическими моделями баз знаний с использованием языка предикатов.

Что такое логическое программирование? Логическое программирование парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математике, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода.

Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций. Логическое программирование относится к декларативному программированию, поскольку программа на нём скорее описывает свойство задачи, нежели алгоритм её решения. Такой идеал выражен в следующем уравнении Роберта Ковальского: Алгоритм = Логика + Управление

Planner Первым языком логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью метода backtracking) и обеспечить возможность вывода фактов, без активного использования стека.

Backtracking Термин backtrack был введен в 1950 году американским математиком Дерриком Генри Лемером. Поиск с возвратом ( Backtracking) общий метод нахождения решений задачи, в которой требуется полный перебор всех возможных вариантов в некотором множестве М. Как правило позволяет решать задачи, в которых ставятся вопросы типа: «Перечислите все возможные варианты …», «Сколько существует способов …», «Есть ли способ …», «Существует ли объект…» и т. п.

Стек Стек ( англ. стопка) структура данных, в которой доступ к элементам организован по принципу LIFO(англ. last in first out, «последним пришёл первым вышел»).

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

1.1 Пример программы: родственные отношения

1.2 Факты Введем отношение -родитель- (parent) между объектами, parent (tom, bob). Это факт, определяющий, что Том является родителем Боба. parent - имя отношения, tom, bob - его аргументы. parent (pam, bob). parent (tom, bob). parent (tom, liz). parent (bob, ann). parent (bob, pat). parent (mary, ann). parent (pat, juli).

Эта программа состоит из семи предложений (утверждений), clause(клоз). Каждый клоз записан фактом в виде отношения parent. При записи фактов надо соблюдать следующие правила: 1) Имена всех отношений и объектов с маленькой буквы. 2) Сначала записывается имя отношения, затем в круглых скобках через запятую объекты. 3) В конце ставится точка.

1.3 Вопросы Вопрос в обычном прологе начинается с ?- Вопрос записывается также, как и факт. Например: 1) ? - parent (bob, pat) yes 2) ?-parent (bob,mary) no

1.4 Переменные Можно задать вопрос и узнать кто родитель liz: 1) ?-parent (X, liz) X= tom Вопрос : ?-parent (X, bob) X=tom X=pam

1.5 Конъюнкция целей Можно задать более общий вопрос: Кто является родителем родителя juli. Так как нет отношения grandparent, то можно разбить на два вопроса: 1) кто родитель juli. Предположим- Y. 2) кто родитель Y. Предположим- X. Вопрос: ?-parent (Y, juli), parent (X, Y). X=bob Y=pat

1.6 Правила Введем отношение peбенок child, обратное к parent "родитель". Можно было бы определить аналогично: child (liz, tom). Но можно использовать, что отношение child обратно к parent и записать в виде утверждения- правила : child(Y, X):-parent (X, Y). Правило читается так: Для всех X и Y Y -child X, если X -parent Y.

Правило отличается от факта тем, что факт всегда истина, а правило описывает утверждение, которое будет истинной, если выполнено некоторое условие. Поэтому в правиле выделяют: заключение условие child(Y, X) :- parent (X, Y). голова тело head body Если условие parent (X, Y). выполняется, то логическим следствием из него будет утверждение child(Y, X).

1.7 Конъюнкция в правилах Добавим еще одно отношение в базу данных, унарное, определяющее пол. male(tom). male(bob). male(jim). female(liz). female(pam). female(pat). female(ann). Теперь определим отношение mother. Оно описывается следующим образом: Для всех X Y X -mother Y, if X- parent Y и X -female

Таким образом правило будет mother(X, Y):-parent(X, Y), female(X). Можно записать mother(X, Y):-parent(X, Y), female(X). или mother(X, Y):- parent(X, Y), female(X). Запятая между двумя условиями означает конъюнкцию целей. Это означает, что два условия должны быть выполнены одновременно.

Как система ответит на вопрос? ?-mother (pam, bob). yes Находится правило mother, производится подстановка X=pam Y=bob Получаем правило mother(pam, bob):- parent(pam, bob), female(pam). Сначала удовлетворяются parent, а затем female Пролог отвечает: yes

1.8 Переменные в теле правила Определим отношение sister Для любых X и Y X sister Y, if у X и Y есть общий родитель, и X female Запишем правило на прологе sister (X, Y):- parent(Z,X), parent(Z,Y), female(X). Здесь Z-общий родитель. Z-некоторый, любой. Можно спросить: ?-sister(ann, pat).yes ?-sister(pat, pat). yes

1.9 Cтруктура пролог-программы предложение - факт, правило, вопрос clause fact, rule, goal cостав head head... ? | | body body..

Спасибо за внимание!