Курсовая работа: Моделирование рассуждений в ИИС
2.4 Рассуждения о действиях и изменениях
Большая часть работ в этой области посвящена применениям ситуационного исчисления - формализма, предложенного Джоном Маккарти в 1968 году для описания действий, рассуждений о них и эффектов действий. Для преобразования плана поведения робота в исполняемую программу, достигающую с некоторой вероятностью фиксированной цели, вводится специальное логическое исчисление, основанное на ситуационной логике.
Для этой логики предложены варианты реализации на языке pGOLOG - версии языка GOLOG, содержащей средства для введения вероятностей. Активно исследуются логики действий, применение модальных логик для рассуждений о знаниях и действиях.
2.5 Рассуждения с неопределенностью
Сюда относится использование байесовского формализма в системах правил и сетевых моделях. Байесовские сети – это статистический метод обнаружения закономерностей в данных. Для этого используется первичная информация, содержащаяся либо в сетевых структурах либо в базах данных. Под сетевыми структурами понимается в этом случае множество вершин и отношений на них, задаваемое с помощью ребер. Содержательно, ребра интерпретируются как причинные связи. Всякое множество вершин Z, представляющее все пути между некоторыми двуми иными вершинами X и Y соответствует условной зависимости между этими двуми последними вершинами.
Далее задается некоторое распределение вероятностей на множестве переменных, соответствующих вершинам этого графа и полученная, но минимизированная (в некотором смысле) сеть называется байсовской сетью.
На такой сети можно использовать, так называемый байесовский вывод, т.е. для вычисления вероятностей следствий событий можно использовать (с некоторой натяжкой) формулы теории вероятностей.
Иногда рассматриваются так называемые гибридные байесовские сети, с вершинами которых связаны как дискретные, так и непрерывные переменные. Байесовские сети часто применяются для моделирования технических систем.
Глава 3. Логическое программирование
Проблемы с логической интерпретацией человеко-машинного взаимодействия имеют весьма серьезные причины, основной из которой является фундаментальное противоречие, существующее между понятием взаимодействия и декларативной семантикой логических программ. Дело в том, что программа, взаимодействующая с человеком, является частным случаем так называемых реагирующих систем, отвечающих на сообщения извне.
Характерной особенностью реагирующей системой является ее последовательный переход из одних состояний в другие под воздействием внешних событий. В то же время каждая логическая программа имеет декларативную семантику и может быть представлена в виде формулы (является статической системой).
Следует отметить, что в процессе развития логического программирования было предложено большое количество способов имитации объектов с изменяемым состоянием, основанных на использовании задержанных вычислений и параллельных стратегий исполнения логических программ.
Основные преимущества и особенности логической парадигмы программирования:
– программа, построенная на основе логического подхода, не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики;
– данный подход наиболее удобен для решения логических задач;
–логическое программирование требует особого стиля мышления программиста.
Применение логических языков программирования осуществляется для описания различных утверждений, логики, рассуждений, а также для создания средств искусственного интеллекта. Известен ряд способов, позволяющих реализовать основные базовые алгоритмы на языке логического программирования.
Наиболее известный пример языка логического программирования – это PGOLOG, был разработан в середине 1970-х во Франции в рамках проекта по пониманию естественного языка.
Язык ПРОЛОГ предназначен для представления и использования знаний в различных предметных областях. Математическую основу языка составляет исчисление предикатов первого порядка (ИППП), при этом объекты предметной области, их свойства и связи представляются конъюнкцией правильно построение формул специального вида, называемых дизъюнктами Хорна. Для решения задачи получения новой информации об отношениях предметной области, формулируемой как задача доказательства теоремы, в интерпретаторе системы программирования ПРОЛОГ реализован метод резолюции.[6]
Программа на языке ПРОЛОГ состоит из утверждений (предложений, дизъюнктов Хорна), составляющих базу фактов и базу правил, к которым допустимо обращение с запросами. Запросы называются также целевыми утверждениями или просто целями.
Программирование на ПРОЛОГ состоит из следующих этапов:
1. Объявление некоторых фактов об объектах и отношениях между ними.
2. Объявление некоторых правил об объектах и отношениях между ними.
3. Формулировка вопросов об объектах и отношениях между ними.
Большинство существующих систем программирования ПРОЛОГ являются комбинированными в том смысле, что допускают как интерпретацию программ, так и их компиляцию.
3.1 Арифметика
Для описания арифметических операций в языке ПРОЛОГ используются структуры, функторами которых выступают знаки арифметических действий, а компонентами - термы, являющиеся операндами. В качестве операндов могут использоваться числа, переменные и структуры. Последние, в свою очередь, должны представлять собой арифметические выражения. С точки зрения ИППП знаки арифметических операций в таких структурах выступают в качестве функциональных букв.
Арифметические операции могут также использоваться для вычислений. Например, если имеются сведения о населении и площади некоторой страны, то можно вычислить среднюю плотность населения для этой страны. Средняя плотность населения показывает, сколь тесно было бы в данной стране, если бы ее население было равномерно распределено по всей ее территории.
Рассмотрим следующую базу данных, содержащую сведения о населении и площади некоторых стран в 1976 г. Для представления связи между страной и ее населением будет использоваться предикат нас. В наши дни население обычно характеризуется довольно большими числами. Не все версии Пролога позволяют работать с такими числами. Поэтому будем исчислять население в миллионах: нас (Х, Y) означает, что население страны X составляет примерно «Y миллионов» людей. Предикат площадь будет обозначать связь между страной и ее площадью (в миллионах квадратных километров):