Смекни!
smekni.com

Моделирование рассуждений в ИИС (стр. 4 из 4)

нас(индия, 548).

нас(китай,800).

нас(бразилия,108).

площадь(сша,8).

площадь(индия,3).

площадь(китай,9).

площадь(бразилия,8).

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

Введем предикат плотность(Х, Y), где X – это страна, a Y – плотность населения в данной стране, и запишем соответствующее правило на Прологе:

плотность(X,Y):-нас(Х,Р), площадь(Х,А), Y is Р/А.

Данное правило читается следующим образом:

«Плотность населения страны X представляется числом Y, если: Население X - это Р, и Площадь X - это A, и Y вычисляется делением Р на A.»

В правиле используется оператор деления '/' введенный в предыдущем разделе. Операция деления выполняется на самом деле как целочисленное деление, сохраняющее только целую часть результата.

3.2 Запросы

Введенные элементы языка ПРОЛОГ позволяют рассмотреть более сложные типы запросов к базе фактов. В общем виде запрос (целевое утверждение) формулируется в следующем виде:

?-<структура-1>,..., <структура-N>.

Здесь каждая структура представляет собой предикат, возможно содержащий переменные. Причем областью действия переменной является всё утверждение в целом, то есть одна и та же переменная в пределах утверждения означает один и тот же объект. Символ "," (запятая) между предикатами трактуется как логическая связка И, то есть запрос необходимо рассматривать как требование на поиск в базе фактов информации, удовлетворяющей одновременно всем предикатам целевого утверждения. Предикаты, объединенные связкой И в таком запросе, называются подцелями (имея в виду весь запрос целью).

Пример. Пусть необходимо получить из базы фактов информацию о наличии строительных блоков высотой более 2 и менее 5. Тогда соответствующий диалог с интерпретатором ПРОЛОГа будет иметь следующий вид (рисунок 1):

Рисунок 1.Диалог

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

Выбирается первый в последовательности запроса предикат и делается попытка (если этот предикат не встроенный) согласовать его с базой фактов, для чего выполняется сопоставление этого предиката последовательно со всеми утверждениями базы до тех пор, пока оно не даст положительного результата. Если этого не происходит, интерпретатор выдает в качестве ответа No. В ходе согласования возможна конкретизация переменных значениями. В нашем примере на этом этапе будет выполнено согласование предиката block(F,H) с третьим утверждением базы фактов, при этом переменная F получит значение cyl, переменная Н - 5, а маркер будет установлен на утверждении 3.

Удовлетворив один предикат (подцель) запроса, интерпретатор переходит к соседнему справа (у нас это H>2). Этот предикат - встроенный, для его проверки нет необходимости обращаться к базе фактов, поскольку интерпретатор в состоянии сам установить его истинность (5>2). Далее следует проверка (попытка "согласовать") последнего предиката в запросе, которая заканчивается неудачей. Здесь включается в работу механизм бэктрекинга (возврата), который заставляет интерпретатор, передвигаясь по предикатам целевого утверждения справа налево, вновь согласовывать эти предикаты, но уже на новых утверждениях базы фактов. Если попытка пересогласовать какой-либо предикат (подцель) интерпретатору удается, то он продолжает рассмотрение подцелей от данной в обычном порядке (слева направо). В нашем примере бэктрекинг достигнет предиката block(F,H), это приведет к расконкретизации переменных F и H и поиску нового утверждения, согласующегося с ним, начиная со следующего после отмеченного маркером (то есть начиная с четвертого) факта.

Этот (четвертый) факт согласуется с подцелью, F получает значение cyl, H - 3, и это значение H удовлетворяет двум оставшимся в запросе предикатам. Таким образом, будет найден первый ответ на запрос. Ввод пользователем символа ";" инициирует механизм бэктрекинга и, следовательно, дальнейший поиск с использованием рассмотренной схемы.

3.3 Правила

Правило представляет собой дизъюнкт Хорна, содержащий один положительный литерал и несколько отрицательных, и записывается следующим образом:

<структура-0>:- <структура-1>,..., <структура-N>.

Здесь каждая структура представляет собой предикат, областью действия переменных является все правило. Предикат, стоящий слева от атома ":-", называется заголовком правила, все остальные предикаты образуют его тело. Правило может трактоваться следующим образом: предикат, являющийся заголовком правила, истинен (удовлетворен) тогда, когда истинен каждый из предикатов тела правила.

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

Рисунок 2.Пример записи правил

Наличие правил в программах на языке ПРОЛОГ позволяет интерпретатору находить ответ на запросы, не касающиеся непосредственно содержимого базы фактов.

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

• Я пользуюсь зонтом, если идет дождь.

• Джон покупает вино, если оно дешевле, чем пиво.

В Прологе правило состоит из заголовка и тела правила. Заголовок и тело соединяются с помощью символа:-, который состоит из двоеточия: и тире -. Символ ':-' читается если.

Заголовок правила описывает факт, для определения которого предназначено это правило. Тело правила описывает конъюнкцию целей, которые должны быть последовательно согласованы с базой данных, для того чтобы заголовок правила был истинным.


Заключение

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

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

Чтобы манипулировать знаниями из реального мира с помощью компьютера, необходимо осуществлять их моделирование.

Рассмотрев данную темы, мы пришли к выводу, что моделирование рассуждений способствует облегчению труда при создании программы на основе знаний. Так как при решение какой-либо проблемы мы ищем различные пути решения, то есть мы рассуждаем. Но бывают случаи, что задача сложная и представляет собой большой труд.


Список использованной литературы

1. Андрейчиков, А.В. Интеллектуальные информационные системы: учебник / А. В. Андрейчиков, О.Н. Андрейчикова. – М.: Финансы и статистика, 2007. – 250 с.

2. Астахова, И.С. Системы искусственного интеллекта. Практический курс: учеб. пособие / И.С. Астахова, А.С. Потапов, В.А. Чулюков. – М.: Бином, Лаборатория знаний, 2008. – 276 с.

3. Башмаков А.И., Башмаков И.А. Интеллектуальные информационные технологии: Учебное пособие. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2008. – 304 с.

4. Гаврилова, Т.А. Базы знаний интеллектуальных систем: учебник / Т.А. Гаврилова. – СПб.: Питер, 2008.

5. Гаскаров, Д.В. Интеллектуальные информационные системы: учебник / Д.В. Гаскаров. – М.: Высшая школа, 2008.

6. Девятков, В.В. Системы искусственного интеллекта: учеб. пособие для студентов вузов / В.В. Девятков. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2010. – 254 с.

7. Золотов С.И. Интеллектуальные информационные системы: учебное пособие / С.И. Золотов – Воронеж: Научная книга, 2007. – 140 с.

8. Избачков, Ю.С. Информационные системы: учеб. пособие для ВУЗов / Ю.С. Избачков, В. Н. Петров. – СПб.: Питер, 2008.

9. Люгер Джордж Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2008. – 864 с.

10. Пескова, С.А. Сети и телекоммуникации: учебное пособие для ВУЗов России / С.А. Пескова, А.Н. Волков, А.В. Кузин. – М.: Академия, 2007.

11. Путькина, Л.В. Интеллектуальные информационные системы: учебное пособие / Л.В. Путькина, Т.Г. Пискунова. – СПб.: СПбГУП, 2008.

12. Рассел С. Искусственный интеллект: современный подход. – М.: Издательский дом «Вильямс», 2006.– 258 с.

13. Тельнов, Ю.Ф. Интеллектуальные информационные системы в экономике: учеб. пособие / Ю. Ф. Тельнов. – М.: Синтег, 2008.

14. Ясницкий Л.Н. Введение в искусственный интеллект: учебное пособие / Л.Н. Ясницкий. – М.: Академия, 2008.