Алгоритм абдуктивного вывода с использованием систем поддержки истинности на основе предположений
Тестирование разработанного программного комплекса, используемого в усечении версии задачи о составлении расписаний для энергохранилищ. Составление расписаний для энергохранилищ и применение алгоритма в решении задач планирования технических объектов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 18.01.2018 |
Размер файла | 127,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
АЛГОРИТМ АБДУКТИВНОГО ВЫВОДА С ИСПОЛЬЗОВАНИЕМ СИСТЕМ ПОДДЕРЖКИ ИСТИННОСТИ НА ОСНОВЕ ПРЕДПОЛОЖЕНИЙ
В.Н. Вагин
К.Ю. Хотимчук
Московский Энергетический Институт (Технический Университет), Москва
В последнее время в интеллектуальных системах очень важную роль стал играть абдуктивный вывод, цель которого заключается в выводе причины для наблюдаемого события. Разработан алгоритм абдуктивного вывода AAA (Assumption-based Truth Maintenance System-based Abduction Algorithm). Результаты экспериментов, проведенных на примере задачи составления расписаний для энергохранилищ, подтвердили эффективность алгоритма AAA.
В настоящее время разработка формальных моделей различных форм рассуждения играет ключевую роль в создании интеллектуальных систем различного назначения. Логический вывод, на котором основаны рассуждения, в стандартном смысле понимается как достоверный вывод, при организации которого из истинных посылок мы всегда получаем истинные заключения. В широком смысле к достоверному выводу относится хорошо изученный дедуктивный вывод. Дедукция - строгая и ограниченная форма рассуждения, и дедуктивного вывода недостаточно для моделирования таких важных аспектов человеческого мышления, как противоречивость информации, неопределенность, формирование гипотез и др. Поэтому в интеллектуальных системах наряду с дедукцией необходимо привлекать правдоподобные формы рассуждения, такие, как индукция и абдукция.
Индуктивный вывод - это вывод от частного к общему. Абдуктивный вывод заключается в выводе причины из наблюдаемого события и является выводом от частного к частному. Схематично абдуктивный вывод можно представить следующим образом. Пусть имеется правило и известно, что имеет место событие . Тогда, по абдукции, делаем заключение о том, что, быть может, имеет место и . Точнее, при заданной теории и наблюдении, предложенном для объяснения, абдуктивный вывод должен определить одно или более наилучших объяснений наблюдения на основе заданной теории. Термин “абдукция” впервые ввел американский философ Пирс [Peirce, 1955]. На сегодняшний день вывод по абдукции успешно применяется для решения задач диагностики [Cox et al., 1987], понимания естественного языка[Hobbs et al., 1993], распознавания, накопления знаний, составления расписаний и, несомненно, является очень важной частью интеллектуальных систем.
В настоящей работе мы рассматриваем понятие минимального абдуктивного объяснения, после чего приведём алгоритм абдуктивного вывода с использованием систем поддержки истинности, основанных на предположениях (Assumption-based Truth Maintenance Systems, ATMS). Показано применение алгоритма AAA для решения задачи составления расписаний для энергохранилищ.
1. Абдукция
Абдукция заключается в выводе объяснений наблюдаемого факта. К настоящему времени рассмотрены различные формы абдукции, из которых можно выделить функциональную абдукцию, абдукцию, основанную на логике, вероятностную абдукцию. Мы будем рассматривать только абдукцию, основанную на логике. В этом случае имеющиеся знания представлены как логическая теория. Абдуктивный вывод, основанный на логике, определяется через теорию, основанную на предположениях. Под предположениями будем понимать гипотезы, которые в процессе вывода будут подтверждаться или опровергаться.
Определение 1 [Marquis, 2000]. Пусть Ф - конъюнкция формул логики предикатов первого порядка (ЛП1П). H - конечное множество фактов, называемых предположениями (гипотезами). Упорядоченная пара T = <Ф, Н> - теория, построенная на предположениях.
Определение 2 (абдуктивного вывода). Пусть T = <Ф, Н> - теория, построенная на предположениях. Абдуктивный вывод заключается в выводе объяснения для наблюдаемого события д как подмножества г H, такое, что Ф & г ? д.
Заметим, что на г в определении 2 накладывается синтаксическое ограничение - г представляет собой конъюнкцию фактов.
Определение 3 [Marquis, 2000]. Пусть Т = <Ф, Н> - теория, основанная на предположениях, и д - формула логики предикатов первого порядка. Конъюнктивно интерпретируемое подмножество гH назовем абдуктивным объяснением д относительно Т, если:
Ф г ? д;
Ф г выполнимо.
Пример 1. Пусть Т = <Ф, Н>, где Ф = x (Студент(x) Юн(x)), д = Юн(Петров). Пусть H = {Студент(x1), Рабочий(x2)}. Тогда Студент(Петров), Студент(Петров) & Рабочий (Иванов) являются абдуктивными объяснениями д относительно T.
Заметим, что абдуктивное объяснение должно быть непротиворечиво. В примере 1 Студент(Петров) & Юн(Петров) не является абдуктивным объяснением д относительно T в силу противоречивости.
Определение 4 [Marquis, 2000]. Пусть Т = <Ф, Н> - теория, основанная на предположениях, д - формула логики предикатов первого порядка. Конъюнктивно интерпретируемое подмножество гH назовем минимальным абдуктивным объяснением д относительно Т, если:
г - абдуктивное объяснение для д относительно Т;
для любого абдуктивного объяснения г' для д относительно Т выполняется (гг') ( г'г).
Пример 2. Пусть Т = <Ф, Н>, где Ф = x (Студент(x) Юн(x)), д = Юн(Петров). Пусть H = {Студент(x1), Рабочий(x2)}. Тогда Студент(Петров) является минимальным абдуктивным объяснением д относительно T. Студент(Петров) & Рабочий (Иванов) не является минимальным абдуктивным объяснением д относительно T.
Задачу абдукции будем рассматривать как задачу нахождения множества минимальных абдуктивных объяснений наблюдаемого события.
2. Алгоритм абдуктивного вывода, использующий ATMS
Существуют различные методы решения задачи абдукции. Мы рассматриваем метод решения задачи абдукции с помощью ATMS. Назовем алгоритм абдуктивного вывода, использующий ATMS, как AAA (ATMS-based Abduction Algorithm) [Hwee Tou Ng et al., 1991]. Достоинством алгоритма AAA является тот факт, что вся выводимая информация сохраняется в дереве вывода, и для вывода новых вершин не нужно тратить время на конструирование дизъюнктов. На вход алгоритма поступает исходное множество дизъюнктов и наблюдаемое событие, которое необходимо объяснить. На выходе получается множество абдуктивных объяснений этого события. Сначала создается вершина GOAL (операция создания вершины ATMS), а наблюдаемое событие добавляется в ATMS как обоснование GOAL (операция добавления обоснования в ATMS). Процедура Assume добавляет для вершины, помеченной некоторой литерой, вершину-предположение, содержащую эту же литеру (операция добавления предположения в ATMS). Таким образом, реализуется допущение об истинности литеры для вершины. Далее, начиная с GOAL, в ход вступают процедуры ProcessNode и ProcessJustification, рекурсивно вызывающие друг друга. В процедуре ProcessNode для каждого обоснования текущего узла запускается механизм ProcessJustification. В процедуре ProcessJustification происходит собственно добавление новых вершин в ATMS: для каждой вершины n текущего обоснования, помеченной литерой N, ищется дизъюнкт , и к вершине n добавляется обоснование , где - это вершины, помеченные литерами соответственно (операция добавления обоснования в ATMS). Если в процессе унификации аргументы текущего обоснования изменяются, то обоснование копируется, и унификация и добавление новых узлов происходят с копией обоснования. Это необходимо для того, чтобы не потерять текущее обоснование как часть решения. После того, как дерево построено, вычисляется метка на узле GOAL, которая представляет собой множество минимальных абдуктивных объяснений.
В алгоритме AAA используется понятие фактора дизъюнкта. Если две или более одинаковые литеры одного и того же знака дизъюнкта C имеют НОУ , то дизъюнкт C называется фактором дизъюнкта C [Вагин и др., 2008].
Алгоритм AAA.
Исходные данные:
clauses - исходное множество дизъюнктов,
observed - наблюдаемый конъюнкт.
Выходные данные:
result - множество абдуктивных объяснений для observed (результирующее множество конъюнктов).
Начало.
Шаг 1.
Если все дизъюнкты из clauses - хорновские дизъюнкты, то переход к шагу 2. Иначе ОШИБКА, Сообщение “Все дизъюнкты должны быть хорновскими!”, Конец.
Шаг 2.
Вычислить множество , где - множество всевозможных факторов дизъюнктов из clauses.
Шаг 3.
Пусть O1,O2... - это литеры observed. Создать вершину GOAL (операция добавления вершины в ATMS) и добавить к ней обоснование . nO1, nO2… - добавленные таким образом новые вершины (операция добавления обоснования в ATMS).
Шаг 4.
Выполнить процедуру Assume с параметрами nOi, Oi для i=1,2.. (операция добавления предположения в ATMS)
Шаг 5.
Выполнить процедуру ProcessNode с параметрами GOAL, extendedClauses, GOAL, .
Шаг 6.
Вычислить метку на вершине GOAL. Найденная метка содержит результирующее множество конъюнктов. Запишем его в result.
Конец.
Процедура Assume.
Исходные данные:
node - вершина,
litera - литера, по которой делается предположение.
Требуется:
создать предположение для текущей вершины.
Начало.
Шаг 1.
Создать вершину-предположение nLitera с литерой litera и добавить обоснование (операция добавления предположения в ATMS).
Конец.
Процедура ProcessNode.
Исходные данные:
node - текущая вершина,
clauses - множество дизъюнктов,
mainNode - целевая вершина,
unassumed - список литер, к вершинам которых запрещено добавлять обоснование-предположение.
Требуется:
добавить новые вершины через механизм обратной дедукции.
Начало.
Шаг 1.
Обозначим - номер обоснования; justificationCount - число обоснований.
Шаг 2.
Если , то Конец. Иначе рассмотрим justification - i-е обоснование вершины node. Вызвать процедуру ProcessJustification с параметрами justification, clauses, mainNode, unassumed.
Шаг 3.
Присваиваем и переход к шагу 2.
Конец.
Процедура ProcessJustification.
Исходные данные:
justification - текущее обоснование,
clauses - множество дизъюнктов,
mainNode - целевая вершина,
unassumed - список литер, к вершинам которых запрещено добавлять обоснование-предположение.
Требуется:
добавить новые вершины через механизм обратной дедукции.
Начало.
Шаг 1.
Пусть nodeCount - число вершин в justification; - номер вершины в justification.
Шаг 2.
Если , то Конец. Иначе рассмотрим node - i-я вершина в justification.
Шаг 3.
Найти список пар дизъюнкт-подстановка вида <clause, subst>, в которых литера из clause унифицируется с литерой на вершине node. Обозначим этот список пар как substitutions, количество элементов в substitutions - как substitutionCount; - номер текущего элемента в substitutions.
Шаг 4.
Если , то и переход к шагу 2. Иначе рассмотрим пару дизъюнкт-подстановку substitution - substNumber-й элемент в substitutions. Пусть substitution представляет пару clause - дизъюнкт и subst - подстановка.
Шаг 5.
Определить, меняет ли литера хотя бы на одном узле ветви от mainNode до justification свои аргументы при подстановке subst. Если есть такой узел, то переход к шагу 6. Иначе переход к шагу 7.
Шаг 6.
“Устранение многозначности”. Пусть lastStableNode - это последний узел текущей ветви C, начиная от вершины mainNode, литера на котором не меняет свои аргументы при подстановке subst. Пусть notStableJustification - обоснование вершины lastStableNode, причем одна или несколько литер вершин notStableJustification меняют свои аргументы при подстановке subst. Тогда stableJustification - скопированное обоснование notStableJustification, к которому применена подстановка subst и которое добавлено в дерево вывода как обоснование lastStableNode (операции создания вершины и добавления обоснования в ATMS). Определим newUnassumed - последовательность литер, которыми помечены вершины начиная от lastStableNode и заканчивая node; причём ко всем литерам этой последовательности применена подстановка subst. Вызвать процедуру ProcessJustification с параметрами stableJustification, clauses, mainNode, newUnassumed. Переход к шагу 8.
Шаг 7.
Резолюция по node с дизъюнктом clause с добавлением нового обоснования newJustification к node. … - узлы обоснования newJustification, … - литеры, соответствующие этим узлам (операции создания вершины и добавления обоснования в ATMS). Пусть firstUnassumedLitera - первая литера в unassumed. Среди литер … найти firstUnassumedLitera. Пусть это . Если литера не найдена, то unassumedNumber = -1. Выполнить процедуру Assume с параметрами , , (операция добавления предположения в ATMS). Если unassumedNumber -1, то удалить из unassumed первую литеру. Выполнить процедуру ProcessNode с параметрами node, clauses, mainNode, unassumed.
Шаг 8.
Присвоить и переход к шагу 4.
Конец.
3. Пример работы алгоритма AAA
Пусть исходное множество дизъюнктов имеет вид
Наблюдается конъюнкт . Требуется найти множество его абдуктивных объяснений.
программный задача алгоритм энергохранилище
Рис. 1. Пример дерева вывода для алгоритма AAA
Алгоритм AAA строит дерево, изображённое на Рис. 3.1. В построенном дереве после удаления включаемых окружений и после замены переменной y1 на y получаем
Label(GOAL) =
Ответ:
4. Результаты экспериментов
Нами был разработан программный комплекс, реализующий алгоритм AAA. Для тестирования разработанного программного комплекса используется усеченная версия задачи о составлении расписаний для энергохранилищ [Denecker et al., 2002]. Число энергохранилищ изменялось от 1 до 50. В зависимости от этого количество правил изменялось от 7 до 1145. Требовалось найти все минимальные абдуктивные объяснения вводимых запросов, а означенные переменные в полученных минимальных абдуктивных объяснениях являлись искомыми параметрами задачи составления расписаний энергохранилищ. Так, например, для 50 энергохранилищ было получено 11350 минимальных абдуктивных объяснений, содержащих 7528 вариантов планирования. Алгоритм AAA эффективно решил поставленную задачу, что подтвердило его применимость в решении задачи абдукции, и в частности, в решении задачи планирования работы сложных технических объектов.
В настоящее время абдуктивный вывод широко применяется в интеллектуальных системах различного назначения. Предложен алгоритм AAA, использующий ATMS. Достоинством алгоритма AAA является тот факт, что вся выводимая информация сохраняется в дереве вывода, и для вывода новых вершин не нужно тратить время на конструирование дизъюнктов. На примере задачи составления расписаний для энергохранилищ была продемонстрирована применимость алгоритма AAA в решении задач планирования сложных технических объектов.
Благодарности. Работа выполнена при финансовой поддержке РФФИ (проект № 08-07-00212).
Список литературы
1. Вагин В.Н., Головина Е.Ю., Загорянская А.А. и др. Достоверный и правдоподобный вывод в интеллектуальных системах. - 2е изд., испр. и доп. / Под ред. Вагина В.Н. и Поспелова Д.А. - М.: ФИЗМАТЛИТ, 2008.
2. Cox P.T. and Pietrzykowski T. General diagnosis by abductive inference // Proc. IEEE Sympos. Logic Programming. San Francisco. 1987.
3. Denecker M., Kakas A. Abduction in Logic Programming // Computational Logic: Logic Programming and Beyond, Essays in Honour of Kowalski R.A., P. I, London, UK: Springer-Verlag. 2002. V. 2407.
4. Hobbs J., Stickel M.E., Appelt D. et al. Interpretation as abductior // Artificial Intelligence. 1993. 63(1 - 2).
5. Hwee Tou Ng, Mooney R.J. An Efficient First-Order Horn-Clause Abduction System Based on the ATMS // Proc. AAAI-91. Anaheim, CA. 1991.
6. Marquis P. Consequence finding algorithms // Handbook for Defeasible Reasoning and Uncertain Management Systems, eds. D.M. Gabbay and P. Smets. 2000. V. 5.
7. Peirce C.S., Philosophical writings. N.Y.: Dover Publications, Inc, 1955.
Размещено на Allbest.ru
...Подобные документы
Проблема разработки математической модели сложной задачи. Построение алгоритма составления расписания занятий. Вероятность обнаружения хорошего варианта за ограниченное время. Множество всех множеств допустимых пар, поиск элементов, прогноз тупика.
реферат [42,1 K], добавлен 29.01.2010Составление оптимального расписания, где критерием оптимальности служит минимальное значение функции штрафа. Описание алгоритма и разработка программы на языке программирования высокого уровня Java в среде BlueJ. Проверка решения и построение графика.
курсовая работа [67,1 K], добавлен 04.12.2012Технико-экономические показатели разработки. Функциональные модели информационной системы и ее объектно-ориентированное проектирование. Анализ вариантов использования. Тестирование программного продукта, а также исследование технической документации.
курсовая работа [175,2 K], добавлен 14.09.2015Описание процесса начального этапа внедрения программного продукта LSA Suite, в частности импорта/экспорта данных из существующих на предприятии организационно-технических систем. Архитектура разрабатываемого программного комплекса. Блок-схема алгоритма.
курсовая работа [1,9 M], добавлен 05.02.2013Разработка технологии обработки информации, а также структуры и формы представления данных. Подбор алгоритма и программы решения задачи. Определение конфигурации технических средств. Специфика процесса тестирования и оценки надежности программы.
курсовая работа [959,1 K], добавлен 12.12.2011Проектирование и реализация комплекса задач автоматизации учета движения товаров на складе в ЗАО "ГРЕЦ" и технико-экономические расчеты. Обоснование выбора программно-технических средств, блок-схема алгоритма. Описание программного обеспечения системы.
дипломная работа [3,0 M], добавлен 05.12.2011Создание генератора статичной версии системы стратегического планирования в виде сайта. Разработка способа перевода динамических веб-страниц в статичные и Flash-объектов в изображения. Реализация веб-интерфейса взаимодействия пользователя с генератором.
отчет по практике [1,5 M], добавлен 06.04.2013Разработка алгоритма поставленной задачи и реализация средствами автоматизированного проектирования. Составление программного продукта на основе готовой спецификации на уровне модуля, проведение его тестирования, использование инструментальных средств.
контрольная работа [257,5 K], добавлен 01.05.2015Примеры построения тестов и технологии исследования алгоритмов на их основе. Построение тестов на основе метода покрытия решений и проведение исследования соответствующего исходного алгоритма и алгоритма с ошибками в операторах проверки условий.
контрольная работа [224,8 K], добавлен 24.05.2016Описание решения задачи, ее постановка, общий подход к решению. Представление исходных данных, условий задачи и целей ее решения. Составление алгоритма решения поставленной задачи. Написание программного обеспечения и тестирование конечного продукта.
курсовая работа [1,1 M], добавлен 03.07.2011Графические обозначения символов, применяемые при составлении схем алгоритмов. Оформление текстовых документов. Описание вычислительных методов алгоритмизации и программирования задач. Ручной просчет отладочного варианта. Машинное тестирование программы.
курсовая работа [178,2 K], добавлен 01.06.2014Анализ методов и средств моделирования мультиагентных схем. Тестирование лабораторных работ "Climatechange", "ElFarol" и "Pagerank". Экспериментальное тестирование и отладка программного комплекса. Оценка качества разработанного программного продукта.
дипломная работа [4,5 M], добавлен 12.08.2017Основные понятия и определения теории графов: теоремы и способы задания графа, сильная связность графов. Построение блок-схем алгоритма, тестирование разработанного программного обеспечения, подбор тестовых данных, анализ и исправление ошибок программы.
курсовая работа [525,6 K], добавлен 14.07.2012Решение систем алгебраических линейных уравнений методом Гаусса. Вычисление обратной матрицы и определителя. Декомпозиция задачи. Схема взаимодействия интерфейсных форм. Описание процедур и функций. Тестирование разработанного программного продукта.
курсовая работа [1,1 M], добавлен 05.06.2012Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013Разработка собственного алгоритма сжатия и восстановления данных с использованием возможностей языка C++ в рамках программного продукта "Архиватор". Разработка алгоритма программы, ее первый запуск и тестирование. Проверка работы архивации файлов.
курсовая работа [325,7 K], добавлен 13.10.2015Современные разработки в области искусственного интеллекта: составление расписаний, принципы автономного планирования и управления, диагностика, понимание естественного языка, ведение игр, автономное управление, робототехника. Направления исследований.
реферат [24,0 K], добавлен 11.03.2014Способы организации вычислительного процесса в системах с несколькими процессорами. Разработка программы на основе алгоритмов мультипроцессорных систем при пакетной обработке задач. Вычисление основных показателей эффективности для каждого алгоритма.
курсовая работа [102,3 K], добавлен 21.06.2013Исследование программного средства для управления базой данных с информацией о фильмах. Составление алгоритма удаления и добавления элемента в указанное место двунаправленного списка. Характеристика поиска, вывода на экран и сортировки элементов списка.
курсовая работа [94,5 K], добавлен 23.09.2011Задачи, решаемые методом динамического программирования. Основные этапы нахождения деревянного алгоритма решения задачи. Выполнение алгоритма Прима. Построение Эйлерового цикла. Решение задач средствами Excel. Алгоритм основной программы - Derevo.
курсовая работа [586,3 K], добавлен 04.04.2015