Автор работы: Пользователь скрыл имя, 25 Мая 2011 в 02:12, курсовая работа
В основной части настоящей работы предлагается рассмотреть такой вид рассуждений как немонотонные. К немонотонным относятся все рассуждения, которые опираются на ограниченный запас знаний, на неполные знания, на веру. В качестве примера был построен алгоритм и реализован программный продукт. Данный продукт был отлажен и протестирован. В основе сделанных выводов, указанных замечаний лежат результаты анализов, полученных в ходе тестирования продукта.
Введение 4
Глава I
Логика немонотонных рассуждений 6
Системы немонотонных рассуждений 7
Глава II
Содержательная постановка решаемой задачи 14
Описание метода решения поставленной задачи
15
Описание алгоритма и структур данных 16
Технические характеристики созданного артефакта 17
Заключение 18
Список литературы
Приложение
Каждое выражение
можно использовать для создания
уникального правдоподобного
Логика умолчания позволяет использовать в качестве аксиомы для дальнейших рассуждений любую теорему, выведенную в рамках правдоподобного расширения. Но, чтобы установить, какое расширение должно использоваться при дальнейшем решении задачи, необходимо обеспечить управление процессом принятия решений.
Наконец, существует способ немонотонных рассуждений на основе множественного наследования. Упомянутый выше Петр (хороший студент и любитель вечеринок) мог наследовать лишь одно из множества свойств. Поскольку он - хороший студент, то, вероятно, он окончит ВУЗ. Но он может наследовать и другое свойство (в данном случае частично противоречащее первому) - быть любителем вечеринок. Следовательно, он может и не окончить ВУЗ.
Важной проблемой, с которой сталкиваются системы немонотонного рассуждения, является эффективная проверка множества заключений в свете изменяющихся предположений. Например, если для вывода s используется предикат r, то отмена r исключает также s, а равно и любое другое заключение, использующее s. Если отсутствует независимый вывод s, s должно быть исключено из списка корректных утверждений. Реализация этого процесса в худшем случае требует пересчета всех заключений при каждом изменении предположений. Представляемые ниже системы поддержки истинности обеспечивают механизм для поддержки непротиворечивости базы знаний.
Традиционные
рассуждения, использующие логику предикатов,
основываются на трех важных предположениях.
Во-первых, выражения теории предикатов
должны адекватно описывать
Немонотонные системы решают все три вопроса. Во-первых, системы рассуждений часто сталкиваются с отсутствием знаний о предметной области. В данном случае эти знания важны. Предположим, у нас нет знаний о предикате р. Отсутствие знания означает, что мы не уверены в истинности р или мы уверены, что р не является истинным? На этот вопрос можно ответить несколькими способами. Система PROLOG использует предположение о замкнутости мира и считает ложью все те утверждения, истинность которых не может доказать. Человек часто выбирает альтернативный подход, допуская истинность утверждения, пока не будет доказано обратное.
Другой подход к проблеме отсутствия знания заключается в точном определении истины. В человеческих отношениях применяется принцип презумпции невиновности. Результат этих ограничивающих предположений позволяет эффективно восполнить упущенные детали нашего знания, продолжить рассуждения и получить новые заключения, основанные на этих предположениях.
Основа человеческих рассуждений - знание о традиционном ходе вещей в мире. Выводы делаются на основе непротиворечивости рассуждения с предположениями о мире.
Второе предположение, используемое в системах, основанных на традиционной логике, заключается в том, что знание, на котором строятся рассуждения, непротиворечиво. В задачах диагностики часто принимается во внимание множество возможных объяснений ситуации, предполагается, что некоторые из них истинны, пока не подтверждаются альтернативные предположения. Желательно, чтобы логические системы тоже могли принимать во внимание альтернативные гипотезы.
И, наконец, для использования логики необходимо решить проблему адаптации базы знаний. При этом возникают два вопроса. Первый - как добавлять в базу знания, которые основываются только на предположениях, и второй - что необходимо делать, если одно из предположений окажется некорректным. Для решения первого вопроса можно обеспечить добавление нового знания на основе предположений. Это новое знание априори может считаться корректным и, в свою очередь, использоваться для вывода нового знания.
Глава II
Содержательная постановка задачи.
Полностью описать мир задач чрезвычайно сложно. Например, знание «птицы летают» — верное, однако встречаются и нелетающие птицы, т. е. это неполное значение. В области искусственного интеллекта изучают задачу «миссионер и туземцы» — это задача о переправе через реку на одной лодке. Но если вдруг нет весел или на дне лодки дыра, задача становится неразрешимой. Подобных причин может быть множество, а раз так, то полностью описать их невозможно. Исходя из здравого смысла, считают, что раз существует лодка, то ею можно пользоваться.
Другой пример: можно перечислить все предметы, которые находятся в комнате, но того, чего в ней нет, перечислить невозможно, поскольку это бесчисленное множество предметов. Точно так же можно перечислить верные знания (в некоторой проблемной области), но перечислить неверные знания и разумно их определить невозможно. Поэтому удобно в базе знаний определять исключительно верные знания, а все, что не определено, считать заведомо неверным. Утверждения, которые не упомянуты ни как истинные, ни как ложные, принято относить к ложным. Это называют гипотезой закрытого мира.
Эта же гипотеза нередко применяется для неопределенных знаний (разновидности неполных знаний). Если допустить, что в базу знаний добавлено такое знание: «как правило, птицы летают (за некоторым исключением)», то обнаружится свойство немонотонных выводов. А именно, при добавлении новой аксиомы иногда возможно отрицание вывода, который считался верным в некоторой системе аксиом (базе знаний).
Введем обозначение М, а Мр будет означать, что «логическая формула р непротиворечива (по отношению к другим знаниям)» (другими словами, « Мр истинно, если из других знаний не получается вывод ¬ р »). При этом знание «как правило, птицы летают (за некоторым исключением)» можно представить в виде следующей логической формулы.
( х) птица (х) /\ М летает (х) E летает (х).
{смысл: х — птица, х летает, если летать не противоречит (другим знаниям)}
Теперь рассмотрим систему аксиом, состоящую из следующих знаний:
( х) птица (х) /\ М летает (х) E летает (х).
( x ) пингвин (х) E ¬ летает (х).
птица (Пикколо).
Из этой системы аксиом можно сделать вывод «летает (Пикколо)», то есть Пикколо (кличка пингвина) летает. Однако, в последствии получена более подробная информация, выяснилось, что Пикколо это пингвин. И в систему аксиом внесено добавление Пингвин (Пикколо). Теперь вывод, полученный ранее «летает (Пикколо)», отрицается и делается новый вывод «¬летает (Пикколо)». Это пример немонотонности выводов. Как средство формальной обработки неполных знаний, при которой необходимы немонотонные выводы, предложены и активно исследуются методы немонотонной логики.
В практической
части настоящей работы необходимо
реализовать модель, которая могла
бы продемонстрировать методы немонотонной
логики.
Описание метода решения задачи.
Входными данными в программе являются данные, введенные с клавиатуры пользователем. Эти данные содержат в себе систему аксиом, а также объект, который необходимо проанализировать.
Данные вводятся в предназначенные для них поля. Ключевые слова этих аксиом выделяются угловыми скобками.
Для осуществления анализа пользователь нажимает кнопку «Анализ». Программа анализирует объект по заданному алгоритму в отношении системы аксиом, введенной пользователем.
При желании,
система правил может пополняться
новыми уточнениями.
Описание алгоритма и структур данных.
В данной главе будет описан алгоритм разрабатываемого программного продукта.
Для осуществления диалога между программой и пользователем мы создаем оконное приложение, где пользователем будет вводится система аксиом.
В форме существуют три поля для ввода начальной информации:
Еще одним полем в форме является «результат». В данном поле программа выводит результат своего анализа.
Для работы программы так же необходимо вводить правила в установленном порядке. Ключевые слова правил заключаются в угловые скобки.
Пример:
Основное правило: любая <птица> <летает>
Уточнения: !<канарейка> <птица>
Алгоритм программы выглядит следующим образом:
Технические характеристики созданного артефакта.
Программный продукт написан на языке C#, который поддерживается в среде .Net, что позволяет использовать его в операционной системе Windows.
Размер созданного продукта составляет 150 Кб на диске.
Заключение
В настоящей
курсовой работе предлагалось ознакомиться
с логикой немонотонных рассуждений.
Были рассмотрены основные системы
немонотонного рассуждения
В практической
части работы была реализована модель,
демонстрирующая методы немонотонного
рассуждения. Получившийся программный
продукт был протестирован и
отлажен.
Список
литературы
1. Люгер Д.Ф. "Искусственный интеллект: стратегии и методы решения сложных проблем", 4-е издание, 2005 г.
2. http://dmtsoft.ru/bn/155/as/
3. http://webcache.
Приложения.
Приложение 1.
Листинг программы
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Expert
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.
Application.
Application.Run(new Expert());
}