Рекурсивно-логическое программирование. Пролог. Основные принципы работы с базами знаний — Информатика. Шпоры | iFREEstore

Рекурсивно-логическое программирование. Пролог. Основные принципы работы с базами знаний

Язык Пролог является представителем семейства языков логического программирования и обладает существенными особенностями:

• программа на Прологе не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики (т.е. это дескриптивный, описательный язык программирования);

• язык Пролог предназначен не для решения вычислительных или графических задач, а для решения логических задач, для моделирования процесса логического умозаключения человека; вычисления же и графические построения выполняются в Прологе как побочный продукт логического вывода;

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

Язык Пролог – это logic programming language (язык логического программирования) или programming in logic (программирование в терминах логики). Язык Пролог описывает не процедуру решения задачи, а логическую модель предметной области задачи – некоторые факты (свойства) относительно объектов предметной области (объектов, относительно которых поставлена задача) и отношения между этими объектами (свойствами), а также правила вывода новых свойств и отношений из уже заданных.

Пролог разработан в начале 70-х годов 20-го века во Франции в Марсельском университете группой специалистов во главе с Алэном Колмероэ. Появление языка связано с работами в области создания искусственного интеллекта. Идея использовать понятийную систему математической логики в языках программирования возникла впервые в начале 70-х годов.

Ценность Пролога в возможности использования его как сложного и тонкого инструмента для разработки высокоспециализированных систем искусственного интеллекта. В Японии язык Пролог является главенствующим языком для создания систем искусственного интеллекта.

Программирование на Прологе включает в себя следующие этапы:

объявление фактов об объектах и отношениях между ними;

определение правил взаимосвязи объектов и отношений между ними;

формулирование вопросов об объектах и отношениях между ними.

Факт, правило, цель (вопрос) на языке Пролог

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

Рассмотрим факт: «Мария знает английский».

два объекта: Мария и английский;

отношение: знает.

На языке Пролог: знает (мария, английский).

Общая форма записи факта: <имя факта>(арг1, арг2, …, аргN).

При записи факта важно соблюдать следующие требования:

имена всех объектов и отношений должны начинаться со строчной буквы;

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

каждый факт должен заканчиваться точкой.

Факт в Прологе указывает на то, что выполнено некоторое отношение между объектами. Некоторый признак единичного объекта можно выразить предикатом с одним аргументом. Например:

«Мария – студентка» студентка(мария).

Факты образуют базу данных. Например:

знает (мария, английский). знает (мария, информатика).

знает (мария, алгебра). знает (иван, английский).

знает (иван, история).

Правило – это хорновские предложения (дизъюнкты) с заголовком или одной или несколькими подцелями (предикатами). Правила имеют форму: А1 :- В1, В2, . . . , Вn

<голова правила> :- <список подцелей>. тело (хвост) правила

Однако из этого правила следует, что каждый мужчина является братом самому себе. Чтобы это исключить, в тело правила нужно добавить еще одно условие: переменные X и Y имеют разные значения. Правило принимает следующий вид:

брат(X,Y) ;- отец (Z,X), отец (Z,Y), X<>Y.

Третьим элементом в теле этого правила является отношение неравенства. Правило означает: X является братом для Y, если Z является отцом для X, и Z является отцом для Y, и X не равно Y. или словом, начинающимся с прописной буквы. В данном примере А и В обозначают любое мужское имя. По смыслу переменная может быть заменена на неопределенное местоимение: кто-то, что-то, некто, нечто и т.п.

Правила обладают большей общностью, чем факты, и обычно содержат переменные. Попробуем добавить в базу знаний «Родственники» правило, определяющее, кто есть дедушка. Понятно, что Лев является дедушкой Алексею потому, что Андрей — отец Алексея, а Лев — отец Андрея. Используя понятие переменной, можно сказать иначе: «X является дедушкой для Y, если X является отцом для Z и Z является отцом для Y».

Таким образом, тело правила состоит из двух отношений, соединенных связкой «и». На Прологе это запишется так: дедушка (X,Y) :- отец (X,Z) , отец (Z,Y). В этой записи роль связки «и» играет запятая «,».

Запишем теперь в окончательном виде базу знаний «Родственники». Кроме рассмотренных, добавим в нее еще правила, определяющие отношения племянник, кузен (двоюродный брат), которые достаточно очевидны.

Факты: отец(«Лев», «Андрей»).отец(«Лев», «Петр»). отец(«Андрей», «Алексей»). отец(« Петр », « Михаил »). отец(« Петр », « Дмитрий »).

Правила: сын(X,Y):- отец(Y,Х). дедушка (X,Y):- отец(Х,Z), отец(Z,Y).

внук(Х,Y):- дедушка(Y,Х). брат(Х,Y):- отец(Z,Х), отец(Z,Y), Х<>Y.

дядя(Х,Y):- брат(X,Z), отец(Z,Y). племянник(Х,Y):- дядя(Y,Х).

кузен(Х,Y):- сын(X,Z), дядя(Z,Y).

Теперь можно сказать, что база знаний «Родственники» построена полностью. В рамках рассмотренной нами семьи учтены все виды родственных связей по мужской линии.

Запросы к базе знаний

В терминологии Пролога запрос к базе знаний называется целью. Может быть сформулировано два типа целей (запросов):

1.Подтвердить справедливость факта; в результате получается ответ «да», если факт содержится в базе знаний или выводится (доказывается) с использованием предложений базы знаний; в противном случае получается ответ «нет». 2.Перечислить все значения переменных, указанных в запросе, удовлетворяющих фактам и правилам базы знаний.

Запись цели будем начинать со знака вопроса (?), как это принято в некоторых версиях Пролога.

Отношение Х<Y требует, чтобы значения переменных X и Y располагались в алфавитном порядке.

← Предыдущая
Страница 1
Следующая →

Файл

остальные шпоры.docx

остальные шпоры.docx
Размер: 591 Кб

.

Пожаловаться на материал

В информатике совокупность взаимосвязанных данных называется информационной структурой. Компьютерные сети. Языки программирования. Язык разметки HTML. ЭВМ. Информационная система

У нас самая большая информационная база в рунете, поэтому Вы всегда можете найти походите запросы

Искать ещё по теме...

Эта тема принадлежит разделу:

Информатика. Шпоры

В информатике совокупность взаимосвязанных данных называется информационной структурой. Компьютерные сети. Языки программирования. Язык разметки HTML. ЭВМ. Информационная система

К данному материалу относятся разделы:

Табличные процессоры

Реляционные БД. Правила Кодда. Аномалии. Нормальные формы

Правил Кодда

Компьютерные сети

Базы данных. Классификация. Архитектура

Парадигмы программирования. Языки программирования. Системы программирования

Язык разметки HTML. Web-страницы. Создание

История развития ВТ

Поколения ЭВМ

Программное обеспечение ЭВМ

Информационная система (ИС)

SQL. Команды определения данных

Язык программирования Delphi

Основные принципы функционирования ЭВМ. Основные структурные элементы современного компьютера. Функции и характеристики

Динамическое программирование

SQL. Команды управления данными

Методы сортировки и поиска. Алгоритмы и программы

Симплекс-метод

Язык JAVA-Script

Исследование операций

Кодирование информации

Компьютерное моделирование в экологии

Машинно-ориентированные языки программирования. Арифметические команды и команды условного перехода в ассемблере

Компьютерное моделирование физических процессов

Массивы в ООП-языках. Примеры использования

Рекурсивно-логическое программирование. Пролог. Основные принципы работы с базами знаний

Работа со списками в Прологе

Основные концепции ООП

Похожие материалы:

Правоотношение: понятие и виды

Правоотношение - это общественное отношение, урегулированное нормами права, участники которого имеют соответствующие субъективные права и юридические обязанности.

Магистральные газопроводы и нефтепроводы

Газосбережение, энергосбережение магистральных газопроводов МГ, компрессорные станции КС. Транспортировка газа. Газотурбинные установки ГТУ. Вторичные энергоресурсы ВЭР. Транспортировка нефти.

Акты применения права, их особенности и квалификация.

Актом применения права называется официальный правовой документ (акт), который содержит индивидуальное властное предписание, вынесенное компетентным органом в результате решения конкретного юридического дела.

Архітектура комп’ютера. Конспект лекцій

Історія розвитку покоління ЕОМ. Основні класи сучасних ЕОМ. Поняття інформації, систем числення. Вісімкова, шістнадцткова система числення. Поняття інтегральних мікросхем Компоненти ПК

Эмоциональная женская травма

Исцеление детской травмы, полученной дочерью в отношениях с отцом