СОДЕРЖАНИЕ

На правах рукописи






Аверин Андрей Игоревич




ИССЛЕДОВАНИЕ И РАЗРАБОТКА АЛГОРИТМОВ ПАРАЛЛЕЛЬНОГО ДЕДУКТИВНОГО ВЫВОДА НА ГРАФОВЫХ СТРУКТУРАХ




Специальность 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов
и компьютерных сетей



А В Т О Р Е Ф Е Р А Т
диссертации на соискание ученой степени
кандидата технических наук









Москва - 2004

Работа выполнена на кафедре Прикладной математики Московского энергетического института (Технического университета)


Научный руководитель: доктор технических наук, профессор
Вадим Николаевич Вагин



Официальные оппоненты: доктор технических наук,
профессор
Эдуард Викторович Попов

кандидат физико-математических наук,
профессор
Геральд Станиславович Плесневич


Ведущая организация: Институт программных систем РАН



Защита состоится "24" декабря 2004 г. в ___ час. ___ мин. на заседании диссертационного совета Д 212.157.01 при Московском энергетическом институте (Техническом университете) по адресу: 111250, Москва, Красноказарменная ул., 17 (ауд. Г-306).

С диссертацией можно ознакомиться в библиотеке Московского энергетического института (Технического университета).

Отзывы в двух экземплярах, заверенные печатью, просьба направлять по адресу: 111250, г. Москва, Красноказарменная улица, д.14, Ученый Совет МЭИ (ТУ).


Автореферат разослан " " ноября 2004 г.


Ученый секретарь
диссертационного совета Д 212.157.01
кандидат технических наук,
профессор
И.И. Ладыгин


ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность темы исследований. В настоящее время алгоритмы дедуктивного вывода находят широкое применение в системах принятия решений, дедуктивных базах данных, информационно-поисковых системах. В числе других областей использования дедуктивного вывода можно также назвать верификацию спецификаций компьютерного оборудования (процедуры дедуктивного вывода использовались, например, при верификации процессоров компании AMD), проверку корректности систем безопасности, анализ корректности протоколов передачи данных.
Значительный вклад в разработку и исследование алгоритмов дедуктивного вывода внесли Дж. Робинсон (J.A. Robinson), М. Дэвис (M. Davis), Х. Патнэм (H. Putnam), Р. Ковальски (R. Kowalski), А. Кольмрауэр (A. Colmerauer), В. Бибель (W. Bibel), А. Банди (A. Bundy), У. Бледсоу (W. Bledsoe), Л. Вос (L. Wos), П. Гилмор (P. Gilmore), Д. Лавлэнд (D. Loveland), У. МакКьюн (W. McCune), Х. Ольбах (H. Ollbach), М. Стикель (M. Stickel), Р. Шостак (R. Shostak), Э. Эдер (E. Eder), Н. Эйзингер (N. Eisinger), А.Воронков, С.Ю. Маслов, В.Н. Вагин.
Одной из основных проблем, встающих перед разработчиками процедур дедуктивного вывода, является экспоненциальный рост пространства поиска. В условиях постоянно растущих объемов обрабатываемых данных особое значение приобретает проблема создания процедур дедуктивного вывода, способных эффективно работать с большими множествами дизъюнктов.
Использование графовых структур в качестве основы для построения процедур дедуктивного вывода является одним из способов повышения эффективности процесса вывода. Был создан ряд алгоритмов дедуктивного вывода на графовых структурах. Однако при решении задач практической сложности, которые характеризуются экспоненциальным ростом числа дизъюнктов, данные алгоритмы не всегда показывали удовлетворительные результаты, что привело к дальнейшим исследованиям в области повышения эффективности процедур вывода. Одним из способов повышения эффективности является распараллеливание процесса вывода.
В работах Д. Паурса (D. Powers) и Р. Логанантхараджа (R. Loganantharaj) было показано, что использование параллелизма в алгоритмах вывода, основанных на графовых структурах, позволяет существенно повысить эффективность работы алгоритмов. Таким образом, исследование и разработка алгоритмов параллельного дедуктивного вывода на графовых структурах является актуальной задачей.
Объектом исследования работы являются системы искусственного интеллекта, использующие дедуктивный вывод. Предметом исследования - процедуры параллельного дедуктивного вывода на графовых структурах.
Цель работы заключается в разработке алгоритмов параллельного дедуктивного вывода, способных решать задачи практической сложности и использующих в качестве основной структуры представления графовые структуры. Необходимо отметить, что создание эффективной процедуры дедуктивного вывода требует решения ряда проблем, многие из которых являются взаимосвязанными.
Основными требованиями, предъявляемыми к процедуре параллельного дедуктивного вывода, являются:
1. Использование эффективного способа представления термов. Термы логики предикатов первого порядка являются основной структурой обработки в процедурах вывода, и их неэффективное представление ведет к неэффективной работе процедуры в целом.
2. Использование эффективного способа представления множества дизъюнктов. Множество дизъюнктов является объектом работы процедуры дедуктивного вывода, и выбор способа представления множества дизъюнктов крайне важен для создания эффективных процедур вывода.
3. Использование эффективной стратегии поиска. Резольвирование дизъюнктов является основной операцией в процедурах дедуктивного вывода, и неэффективный выбор дизъюнктов для резольвирования приводит к практической непригодности процедуры вывода.
4. Использование эффективной стратегии распараллеливания. Данную проблему необходимо решать совместно с проблемой выбора эффективной стратегии поиска.
Для достижения поставленной в работе цели использовались следующие методы исследования: методы дискретной математики, математической логики, искусственного интеллекта, теории графов, а также методы анализа математической сложности алгоритмов.
Достоверность научных результатов подтверждена теоретическими выкладками, данными компьютерного моделирования, а также сравнением полученных результатов с результатами, приведенными в научной литературе.
Научная новизна. Новыми являются:
1. Способ представления термов логики предикатов первого порядка, предназначенный для использования в процедурах параллельного вывода на графовых структурах.
2. Метод построения множества связей для DCDP-параллельного вывода, позволяющий повысить эффективность DCDP-параллельного вывода.
3. Эвристическая функция выбора множества связей в процедурах параллельного вывода на графах связей, позволяющая повысить эффективность работы алгоритмов вывода при решении задач практической сложности.
4. Комплексный подход к распараллеливанию процесса вывода, объединяющий в себе OR, AND и DCDP параллелизм.
Практическая значимость. Практическая значимость работы заключается в создании программной системы, в рамках которой реализованы алгоритмы OR, AND и DCDP параллельного вывода на графовых структурах.
Практическая значимость работы подтверждается использованием разработанных алгоритмов в системе диагностики, реализованной в рамках интегрированной системы управления предприятием SAP R/3, о чем имеется акт о внедрении, а также результатами работы алгоритма при решении тестовой задачи "Стимроллер".
Реализация результатов. Разработанный алгоритм был реализован в рамках системы диагностики, представляющей собой надстройку над стандартной функциональностью интегрированной системы управления предприятием SAP R/3 и используемой для ускорения процесса диагностики и устранения неисправностей, возникающих во время работ по инсталляции, системной настройке и системному администрированию системы в НПО "Мекомп".
Результаты диссертационной работы Аверина А.И. вошли в отчеты по НИР, выполняемым кафедрой ПМ по грантам РФФИ № 99-01-00049, № 02-07-90042 по теме "Исследование и разработка инструментальных средств создания экспертных систем семиотического типа", а также в учебном процессе при изучении дисциплины "Математическая логика".
Апробация работы. Основные положения и результаты диссертации докладывались и обсуждались на 6-й, 7-ой, 8-ой, 9-ой и 10-ой научных конференциях аспирантов и студентов "Радиотехника, электроника, энергетика" в МЭИ (ТУ) (г. Москва, 2000 - 2004 г.г.), на 4-ой международной летней школе-семинаре по искусственному интеллекту для студентов и аспирантов (Браславская школа) (Беларусь, г. Браслав, 1999 г.), на "Научных сессиях МИФИ" (г. Москва, 2000 - 2004 г.г.), на 7-й национальной конференции по искусственному интеллекту с международным участием КИИ'2000 (г. Переславль-Залесский, 2000 г.), международном форуме МФИ-2003 (Международные конференции "Информационные средства и технологии") (г. Москва, 2003), на Международной научно-технической конференции "Интеллектуальные системы" AIS'03 (Россия, п. Дивноморское, 2003 г.) и международной конференции JCKBSE - 2004 (Россия, г. Переславль-Залесский, 2004г., доклад на английском языке).
Публикации. Основные результаты, полученные при выполнении диссертационной работы, опубликованы в 18 печатных работах.
Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка использованной литературы (72 наименования) и приложений. Диссертация содержит 139 страниц машинописного текста (без приложений).
Содержание работы
Во введении обоснована актуальность темы, сформулирована цель работы, рассмотрена структура и краткое содержание диссертации по главам.
В первой главе анализируется задача использования различных видов параллелизма в дедуктивном выводе.
В настоящее время создан ряд процедур дедуктивного вывода, наиболее известными среди которых являются метод резолюций Робинсона, инверсный метод Маслова, процедура вывода с использованием аналитических таблиц, алгоритм Дэвиса-Патнэма и их модификации. Несмотря на различия этих алгоритмов, ко всем из них применимы различные стратегии распараллеливания. В главе рассматриваются основные виды стратегий распараллеливания и возможность их использования для распараллеливания последовательных алгоритмов дедуктивного вывода. Представлена предложенная М.П. Боначиной (M.P. Bonacina) классификация стратегий распараллеливания, основным критерием которой является различие между параллелизмом на уровне термов, параллелизмом на уровне дизъюнктов и параллелизмом на уровне поиска.
На рис. 1 показано текущее состояние исследований в области параллельного доказательства теорем (пунктирными линиями показаны связи между видами параллелизма и классами стратегий, к которым эти виды параллелизма были применены).

Рис. 1. Применение стратегий распараллеливания к стратегиям последовательного дедуктивного вывода.
Как показано на рис.1, существуют недостаточно исследованные способы использования параллельных стратегий в дедуктивном выводе. Среди них можно отметить использование AND- и OR-параллелизма для упорядочивающих стратегий, что объясняется неудобством использования большинства упорядочивающих стратегий для одновременной обработки всех литер одного дизъюнкта (в случае AND-параллелизма) или одной литеры дизъюнкта (в случае OR-параллелизма). Однако это несправедливо для процедуры вывода на графах связей, так как графовое представление множества дизъюнктов хорошо подходит для реализации подобных стратегий распараллеливания. Именно этот подход, основанный на использовании OR-, AND- и других стратегий распараллеливания при использовании графовых структур в качестве структуры представления дизъюнктов, является основным предметом исследования работы.
Во второй главе рассматриваются вопросы, связанные с реализацией операции унификации в процедурах параллельного дедуктивного вывода. Операция унификации является наиболее часто выполняемой операцией в процедурах дедуктивного вывода. Таким образом, при реализации эффективных процедур вывода унификации следует уделить особое внимание. Классический алгоритм унификации, предложенный Дж. Робинсоном не может быть использован для задач практической сложности, так как он требует экспоненциальных затрат времени и памяти. Дж. Робинсоном было показано, что для создания более эффективных процедур унификации необходимо использование специальных структур для представления термов и создание эффективных алгоритмов для их обработки.
Эта проблема стала причиной многочисленных исследований как в области создания структур представления термов, так и в области разработки методов индексации термов (под методами индексации подразумеваются методы организации множества термов, направленные на ускорение поиска термов, удовлетворяющих некоторому условию), что привело к значительному возрастанию производительности программ автоматического доказательства теорем.
В настоящее время существует целый ряд алгоритмов унификации, которые используют различные представления термов. Наиболее известными являются алгоритмы, предложенные Мартелли и Монтанари (A. Martelli & U.Montanari), Юэ (G. Huet), Корбином и Бидуа (J. Corbin & M. Bidoit). Эти алгоритмы значительно более эффективны, чем алгоритм Робинсона (временная сложность алгоритма Мартелли и Монтанари составляет O(n+logm), где n - число термов, m - число различных переменных в термах, Хью - O(n?(n)) - где ?(n)- крайне медленно растущая функция, Корбина и Бидуа - O(n2)).
Однако данные алгоритмы редко используются на практике, так как используемые структуры данных слишком сложны и плохо соответствуют структурам данных, обычно используемых в алгоритмах вывода, что приводит к дополнительным накладным расходам на перекодировку одного представления термов в другое. В современных доказателях теорем, таких как: Otter, SETHEO, SPASS, Vampire, Waldmeister, обычно используется следующий подход: используемые структуры представления термов достаточно просты (чаще всего это представление терма в виде плоского терма или в виде направленного ациклического графа), что объясняется удобством их применения в процедурах дедуктивного вывода. Для повышения эффективности процесса поиска унифицируемых дизъюнктов используются различные методы индексации множества дизъюнктов. Таким образом, работу алгоритма унификации можно разбить на два этапа. Первый этап заключается в поиске термов, которые потенциально могут быть унифицированы. Этот этап выполняется с помощью одного из методов индексации термов. На втором этапе производится непосредственно нахождение унификатора с помощью одного из алгоритмов унификации. Данный подход продемонстрировал высокую эффективность при использовании в последовательных доказателях теорем.
Одним из способов повышения эффективности процесса унификации является его распараллеливание. И хотя С. Дуорк (S. Dwork) было показано, что унификация не принадлежит к классу NC алгоритмов (то есть алгоритм унификации не может иметь вычислительную сложность O(log n)k при полиномиальном числе процессоров), в работах Дж. Виттера (J. Vitter) и М. Беллья (M. Bellia) были выделены классы задач унификации, для которых сложность может быть оценена как O(E/P + V log P), где P - число процессоров, E - число ребер в графовом представлении терма, V - число вершин в графовом представлении. Многие проблемы, которые возникают в области автоматического доказательства теорем, относятся к этим классам. Таким образом, использование алгоритмов параллельной унификации может привести к повышению производительности алгоритмов параллельного дедуктивного вывода. Для достижения этой цели необходимо создание структуры представления термов, которая будет одинаково хорошо подходить как для реализации процедуры параллельного дедуктивного вывода, так и для реализации процедуры параллельной унификации.
В главе приводится обзор наиболее известных способов представления термов и методов индексации термов. Показано, что в системах, использующих графовые структуры представления термов (таких как графы связей), использование методов индексации только для поиска потенциально унифицируемых термов не совсем оправданно, так как потенциально унифицируемые термы или уже соединены ребром в графе, или нахождение этой связи требует просмотра только небольшого подмножества всего множества дизъюнктов. Таким образом, распространенные подходы, основанные на использовании индексации путей или различающих деревьев (то есть осуществляющие поиск потенциально унифицируемых термов без нахождения унифицирующей подстановки), не могут быть использованы при разработке доказателя теорем (последовательного или параллельного), использующего графовые структуры. Таким образом, для разработки параллельного доказателя теорем, основанного на использовании графовых структур, необходимо создание новых структур представления и индексации термов. В третьей части главы представлен подобный способ представления термов, основным достоинством которого является простота распараллеливания, что позволяет использовать данный способ в алгоритмах параллельной унификации. В четвертой части главы рассмотрены разработанные алгоритмы параллельной и последовательной унификации, использующие данное представление. Решение задачи унификации с использованием предложенного способа представления термов основывается на записи представления термов, участвующих в задаче унификации, в виде таблицы, установки связей между строками таблицы и обработки полученного графа по определенным правилам. Пример построения таблицы для задачи унификации S={f(a,b)=z, f(z,b)=f(f(a,b),x)} приведен на рис. 2.


Рис. 2. Представление задачи унификации с использованием предложенного способа представления термов.

Для сохранения корректности алгоритма при его параллельном исполнении вводятся ограничения с помощью графа зависимостей. Предлагается два подхода к построению графа зависимостей, рассматривается пример работы параллельного алгоритма с использованием одного из подходов. Рассмотренный алгоритм унификации может быть использован в системах вывода, использующих графовые структуры.
В третьей главе рассматриваются вопросы использования параллелизма на уровне дизъюнктов с использованием графовых структур в качестве структур представления множества дизъюнктов.
В качестве основы для построения процедуры вывода используются графы связей, предложенные Р. Ковальским. В работе показано, что процедура параллельного вывода на графе связей Ковальского удовлетворяет всем представленным принципам создания эффективных процедур дедуктивного вывода. Граф связей Ковальского является как способом представления множества дизъюнктов логики предикатов первого порядка, так и основой для построения алгоритмов последовательной и параллельной резолюции.
При построении графа связей для последовательности дизъюнктов S=С1, С2, ..., Сk, состоящих из предикатов P1, P2, ..., Pm, каждому предикату ставится в соответствие вершина в графе связей. Два узла соединяются ненаправленным ребром, называемым связью, если соответствующие предикаты потенциально образуют контрарную пару (что означает возможность резольвирования данных предикатов после применения к ним унификатора и переименования соответствующих переменных). Узлы, соответствующие предикатам, принадлежащим одному дизъюнкту, группируются вместе в графе связей.
На рис. 3 представлен пример построения графа связей для множества дизъюнктов:
1. Q(c)
8. ?F(y) ? ?S(y,z) ? ?B(z)
2. Q(b)
9. B(x) ? ?C(x) ? ?D(y)
3. R(x) ? ?Q(y) ? ?P(x)
10. D(c)
4. P(b)
11. F(b)
5. ?R(x) ? S(x,y) ? ?T(x)
12. F(c)
6. T(y) ? ?B(y)
13. C(b)
7. B(a)


Рис. 3. Пример построения графа связей.
В работе подробно рассмотрена структура графа связей и последовательная процедура доказательства на графе связей. Описаны основные проблемы, характерные для процедур вывода, и показаны преимущества и недостатки процедуры дедуктивного вывода на графе связей по сравнению с другими методами вывода.
Далее в работе исследована задача распараллеливания процедуры вывода на графе связей. Показано, что граф связей Ковальского может быть использован в качестве основы для разработки алгоритмов параллельной резолюции. Наличие полного пространства поиска предполагает возможность использования стратегий параллельного вычисления для повышения эффективности процедуры вывода.
В работе рассмотрено три метода вывода: OR-параллельный вывод, AND-параллельный вывод и DCDP-параллельный вывод.
В случае OR-параллелизма производится одновременное резольвирование всех связей одной из литер дизъюнкта. При сопоставлении осуществляется унификация литер и генерация новых дизъюнктов по методу резолюции для предикатов первого порядка.
Для графа связей, изображенного на рис.3, допустимыми множествами OR-связей являются, например, {1',2'} и {10',11'}.
Алгоритм OR-параллельной резолюции включает в себя следующие этапы:
1. Выбор множества связей для OR-параллельного резольвирования.
2. Параллельное резольвирование всех связей из выбранного множества. Удаление выбранных связей.
3. Если получена пустая резольвента, то успешное завершение, иначе помещение резольвент в граф, добавление их связей, удаление дизъюнктов-тавтологий и чистых дизъюнктов, выполнение операций факторизации и поглощения дизъюнктов.
4. Если граф не содержит ни одного дизъюнкта, то неуспешное завершение алгоритма, иначе переход к пункту 1.
OR-параллельная резолюция позволяет одновременно резольвировать более одной связи, и, следовательно, в данном случае не нужно выбирать одну наилучшую связь. Кроме того, при использовании OR-параллелизма, затраты на нахождение множества OR-параллельных связей невелики, так как поиск связей для OR-параллельной резолюции заключается в простом просмотре всех связей литеры.
Одной из разновидностей параллельного вывода на графе связей Ковальского является DC-параллелизм (distinct clause parallelism). В случае DC-параллелизма резольвируются те связи, для которых дизъюнкты, соединенные этими связями, различны. В работе рассматривается ограниченный DC-параллелизм, сохраняющий логическую непротиворечивость. Такой параллелизм называется DCDP-параллелизмом (parallelism for distinct clauses, edge distinct pair).
Определение 1. Дизъюнкты называются смежными, если существует одна или несколько связей, соединяющих литеры одного с литерами другого.
Определение 2. Множеством DCDP-связей называется множество связей, которые соединяют пары различных дизъюнктов, если дизъюнкты каждой пары не являются смежными со всеми дизъюнктами остальных пар.
Для графа связей, изображенного на рис. 3, допустимыми множествами DCDP-связей являются, например, {1', 6', 9'}, {2', 6', 12'}, {4', 12'}, {1', 6', 10'}.
В работе предложена модификация алгоритма поиска множества DCDP - связей, основанная на использовании эвристических функций оценки связи. В предыдущих работах предлагался подход, основанных на нахождении максимального по мощности множества DCDP-связей с помощью алгоритма субоптимальной раскраски графа. Однако при определении множества DCDP-связей необходимо определить дизъюнкты, параллельное резольвирование которых позволяет максимально упростить граф связей. В этом случае первостепенное значение приобретает не задача нахождения оптимальной (или субоптимальной) раскраски графа, результатом которой является получение множества внутренне независимых подмножеств графа максимальной мощности, а задача нахождения множества DCDP-связей, резольвирование которых позволит упростить граф связей. Так как нахождение всех возможных множеств DCDP-связей, резольвирование по этим связям и определение наиболее подходящего варианта резольвирования является вычислительно неэффективным, необходимо использование эвристик для определения потенциально лучших кандидатов на резольвирование. Подробно вопрос выбора эвристик рассмотрен в следующем разделе работы.
В работе представлена модификация процедуры нахождения множества DCDP-связей. Рассмотрим множество дизъюнктов S. Построим граф связей CG(S). Обозначим множество связей графа связей как CGLINK(S).
Обозначим множество DCDP-связей графа как SETDCDP, а множество связей, которые могут быть потенциально добавлены во множество SETDCDP, как SETAVAIL.
Пусть SETAVAIL = CGLINK(S); SETDCDP = {}.
На первом шаге работы алгоритма производится оценка связей из множества связей SETAVAIL по выбранному эвристическому критерию.
После оценивания связей производится сортировка по степени убывания значения оценки. Связь с наибольшим значением оценки - обозначим ее L - удаляется из множества связей SETAVAIL и добавляется во множество связей SETDCDP. Из множества связей SETAVAIL также удаляются и все связи, соединяющие дизъюнкты, являющиеся смежными с дизъюнктами, которые соединяет связь L. Если множество SETAVAIL не пусто, то происходит переход на шаг 1.
Таким образом, результатом работы алгоритма является субоптимальное множество DCDP-параллельно резольвируемых связей.
В случае AND-параллелизма одновременно резольвируются все связи одного дизъюнкта, называемого SUN-дизъюнктом. Доказана корректность AND-параллельной резолюции.
Для графа связей, изображенного на рис.3, допустимыми множествами AND-связей являются, например, {5', 4', 7'} (SUN-дизъюнкт - дизъюнкт 5) и {5', 6'} (SUN-дизъюнкт - дизъюнкт 6).
При реализации процедуры AND-параллельного вывода необходимо обеспечить корректную унификацию общих переменных. Переменная называется общей, если она имеет более чем одно вхождение в дизъюнкт. В работе представлен алгоритм корректной обработки общих переменных.
Далее в главе рассмотрена задача создания эвристических функций оценки связи.
Для выбора связи для резольвирования в графе связей можно использовать различные эвристические функции оценки. В случае параллельного резольвирования необходимо производить выбор множества связей, отвечающего некоторым условиям. Стоит отметить, что неудачный выбор связи может привести к экспоненциальному росту количества дизъюнктов при решении сложных задач, что сделает процедуру вывода практически непригодной. В работе представлены основные принципы, использование которых при создании эвристических функций оценки связи, позволяет повысить эффективность алгоритмов вывода.
Этими принципами являются:
1) число литер в резольвируемых дизъюнктах должно быть по возможности минимальным;
2) число связей у резольвируемых дизъюнктов должно быть минимальным;
3) число связей у литер, по которым резольвируются дизъюнкты, должно быть минимальным;
4) НОУ резольвируемой связи должны иметь подстановки вида x? с, где c -константный или функциональный терм, x - переменная.
Поясним смысл каждого из принципов.
Принцип (1) служит для упрощения результирующего графа связей, так как дизъюнкты с малым числом литер, как правило, имеют меньшее число связей. Кроме того, резольвирование по дизъюнктам, имеющим малое количество литер, позволяет получить одно-двулитеральные дизъюнкты, которые могут быть эффективно использованы в дальнейшем процессе вывода.
Принцип (2) также служит для упрощения результирующего графа связей, так как резольвирование дизъюнктов с малым числом связей после резольвирования приводит к получению дизъюнктов также с малым числом связей.
Принцип (3) отдает предпочтение связям, резольвирование которых позволяет получить "чистые" дизъюнкты, удаление которых позволяет значительно упростить структуру графа связей.
То же самое можно сказать и о принципе (4) - при резольвировании по связи, содержащей подстановку константы (или функционального символа) вместо переменной, мы получаем в результате дизъюнкт, содержащий константные термы (или функциональные символы). Подобный дизъюнкт имеет, во-первых, малое число связей, и, во-вторых, может быть эффективно использован при резольвировании.
Кроме того, при создании эвристической функции следует учитывать, что для обеспечения полноты вывода необходимо гарантировать, что любая связь графа должна быть, в конце концов, прорезольвирована. Для этого нужно увеличивать вес не резольвированных связей. Данный принцип было предложен К. Мюнхом (K. Munch) и называется принципом отсечения.
При разработке процедур вывода было проанализировано и испытано несколько возможных эвристических функций. В работе представлены результаты, полученные при использовании различных функций, проведено их сравнение. Разработана эвристическая функция H1, в которой учитываются все принципы (1)-(4), а также производится корректировка значений коэффициентов в процессе вывода. При создании эвристической функции H1 функция оценки связи была представлена как линейная комбинация функций оценки объектов, входящих в связь (унификатор связи, дизъюнкты и предикатные литеры, участвующие в связи).
Пусть WeightLink - значение эвристической оценки для связи. Тогда: WeightLink=kclause?(Clause1Heur+Clause2Heur)+UniHeur?kuni+kpred?(Pred1Heur+Pred2Heur),
где:
Clause1Heur - значение эвристической оценки первого дизъюнкта;
Clause2Heur - значение эвристической оценки второго дизъюнкта;
UniHeur - значение эвристической оценки унификатора связи;
Pred1Heur - значение эвристической оценки предикатной литеры из первого дизъюнкта, участвующей в связи;
Pred2Heur - значение эвристической оценки предикатной литеры из второго дизъюнкта, участвующей в связи;
kuni, kclause, kpred ? [1;100] - произвольные коэффициенты.
Рассмотрим построение эвристической функции оценки дизъюнкта. Эвристическая функция оценки должна учитывать изменения характеристик графа связей в процессе вывода (например, изменение количества связей и количества литер в дизъюнктах). Рассмотрим следующую эвристическую функцию оценки дизъюнкта, учитывающую принципы (1) и (2):
ClauseHeur = k1 ? ClauseNumberOfLiterals + k2 ? ClauseNumberOfLinks,
где :
ClauseNumberOfLinks - число связей дизъюнкта;
ClauseNumberOfLiterals - число предикатных литер дизъюнкта;
k1, k2 - произвольные коэффициенты, выбираемые перед началом работы алгоритма, исходя из таких характеристик графа, как среднее число литер и связей для дизъюнкта.
Однако, при выборе значений коэффициентов необходимо учитывать изменение характеристик графа. Пусть, например, среднее число литер для дизъюнкта равно 1.8, а среднее число связей равно 3.6. Тогда в качестве значений коэффициентов k1 и k2 можно выбрать k1 = 3.6 / 1.8 = 2 и k2 = 1. В этом случае оба принципа (1) и (2) учитываются в одинаковой степени. Однако в процессе вывода значения характеристик могут изменяться. В этом случае первоначально выбранные значения коэффициентов "устаревают", и один из принципов получает больший вес, чем другой. Для того чтобы избежать подобной ситуации, необходимо изменять значения коэффициентов в процессе вывода. Введем следующие обозначения:
AverageLinkCount - среднее число связей для дизъюнкта;
AverageClauseLength - среднее число предикатных литер в дизъюнкте.
Тогда можно предложить следующие значения коэффициентов k1 и k2: k1 = AverageLinkCount / AverageClauseLength и k2 = 1. В этом случае оба принципа (1) и (2) учитываются в равной степени на протяжении всего процесса вывода. Окончательный вид эвристической функции оценки дизъюнкта:
ClauseHeur=(AverageLinkCount/AverageClauseLength)?ClauseNumberOfLiterals+ +ClauseNumberOfLinks.
Эвристическая оценка унификатора должна учитывать принцип (4) (унификаторы резольвируемой связи должны иметь подстановки вида x? с, где с - константный или функциональный терм, x - переменная). Кроме того, эвристическая функция должна учитывать изменение значения характеристик графа.
Пусть UniHeur - значение эвристической оценки для унификатора. Тогда вычисляем значение UniHeur следующим образом:
UniHeur=AverageLinkCount/(1+NumberOfConstantSubst+NumberOfFuncSubst),
где NumberOfConstantsSubst - число подстановок в унификаторе вида {x? с}, где с - константный терм, а х - переменная;
NumberOfFuncSubst - число подстановок в унификаторе вида {x? f}, где f - функциональный терм, а х - переменная.
Эвристическая оценка предикатной литеры должна учитывать принцип (3) и изменение характеристик графа.
Пусть PredHeur - значение эвристической оценки для предикатной литеры. Тогда вычисляем значение PredHeur следующим образом:
PredHeur = PredNumberOfLinks ? AverageClauseLength,
где PredNumberOfLinks - число связей предикатной литеры.
Коэффициенты kuni, kclause, kpred выбираются опытным путем. В работе были выбраны следующие отношения коэффициентов: kuni = kpred = (1/10)?kclause. При данном соотношении коэффициентов больший вес придается принципам (1) и (2). Таким образом, в эвристической функции H1 учитываются все принципы (1)-(4), причем существует возможность изменения весов каждого из этих принципов. Также учитываются возможные изменения характеристик графа.
Принцип отсечения учитывается в эвристической функции следующим образом: через каждые 20 шагов резольвирования происходит увеличение значений связей, созданных ранее, чем за 20 шагов резольвирования, и еще не прорезольвированных. На рис. 4 и рис. 5 представлены результаты сравнения результатов работы алгоритмов OR, AND и DCDP параллельного вывода при использовании рассмотренных в работе эвристических функций №1, №2 и H1 (функции №1 и №2 учитывают первые два принципа, корректировка значений коэффициентов в процессе вывода не производится).



Рис. 4. Изменение количества промежуточных дизъюнктов в зависимости от использованной функции оценки.



Рис.5. Изменение количества промежуточных унификаций в зависимости от использованной функции оценки.
Результаты сравнения показывают, что наилучшие результаты были показаны алгоритмом, использующим DCDP-параллелизм. Это объясняется структурой DCDP-параллельного вывода, при котором производится поиск доказательства сразу по нескольким направлениям, в различных областях пространства поиска, в то время как AND- и OR- параллелизм обрабатывают в текущий момент времени один дизъюнкт и одну литеру соответственно. Так как для сложных задач без использования помощи эксперта трудно определить направление вывода, то подход, используемый в DCDP-параллелизме, представляется более перспективным.
Разработанная функция H1 была реализована в рамках программного комплекса, способного осуществлять процесс OR-, DCDP- и AND- параллельного вывода на графе связей. В рамках комплекса реализована также процедура последовательного вывода и алгоритм параллельной унификации, представленный во второй главе работы. Для контроля над процессом эффективности вывода используется блок мониторинга, собирающий информацию об эффективности процесса вывода. Схема программного комплекса изображена на рис. 6.

Рис. 6. Схема программного комплекса.
В четвертой главе проводится анализ вычислительной эффективности разработанных алгоритмов дедуктивного вывода. Показаны основные сложности, возникающие при анализе эффективности алгоритмов параллельного дедуктивного вывода:
1) сложность математического анализа эффективности;
2) отсутствие эталонного набора примеров для тестирования и сравнения параллельных алгоритмов вывода;
3) различия в понимании исследователями анализируемых показателей эффективности (что считать шагом вывода, промежуточным дизъюнктом, успешной унификацией);
4) различия в природе методов вывода, не учитываемые при анализе эффективности (необходимость определения множества поддержки и создания множества теории связей (theory links) для соответствующих алгоритмов вывода, что требует вмешательства эксперта в процесс вывода).
Все перечисленные выше сложности не означают того, что анализ эффективности алгоритмов дедуктивного вывода невозможен в принципе. Они лишь свидетельствуют о сложности данной задачи и необходимости критического отношения к результатам сравнения.
В работе рассматривается следующий подход к анализу эффективности: в первой части главы приводятся результаты сравнения работы параллельного алгоритма вывода на графе связей с алгоритмом, предложенным М. Стикелем. Данный алгоритм выбран для сравнения вследствие схожести характеристик (оба алгоритма используют граф связей). Сравнение производится на тестовой задаче Стимроллер. Задача "Стимроллер" характеризуется экспоненциальным ростом пространства поиска, поэтому для эффективной работы при решении данной задачи, процедура вывода должна, во-первых, по возможности сокращать множество дизъюнктов и, во-вторых, выбирать наилучшие, или близкие к наилучшим, связи для резольвирования. (Под наилучшими связями мы понимаем связи, резольвирование по которым приближает нас к решению задачи). Далее, на задаче "Стимроллер", приводится сравнение параллельной версии алгоритма с наиболее эффективными алгоритмами других авторов.
Таблица 1
Сравнение результатов работы параллельных алгоритмов вывода с алгоритмом Стикеля

Вид параллелизма
Кол-во полученных дизъюнктов
Кол-во успешных унификаций
Длина доказательства
Алгоритм Стикеля
4518
245829
205
DCDP
2320
2200
110
AND
2545
11000
165
OR
2600
3500
135

Результаты сравнения показывают, что использование эвристических функций выбора связи дает значительное увеличение производительности при использовании процедуры последовательного вывода. Например, количество полученных в результате вывода формул удалось уменьшить в два раза, количество унификаций - более чем в 100 раз. Это объясняется, во-первых, удачным выбором эвристик, которые позволяют получать дизъюнкты с меньшим количеством предикатных литер и с большим количеством константных символов в термах, и, во-вторых, использованием графового представления, позволяющего сократить количество унификаций.
Таким образом, использование эвристических функций позволило значительно повысить эффективность работы процедур вывода.
Ниже рассмотрено сравнение результатов работы разработанных алгоритмов дедуктивного вывода на графе связей с наиболее эффективными процедурами вывода, разработанными другими исследователями.
Таблица 2
Сравнение результатов работы алгоритмов параллельного вывода на графе связей с наиболее эффективными алгоритмами других исследователей

Процедура вывода
Количество успешных унификаций
Количество шагов вывода
Stickel/CG-SOS-TR
2494
160
Stickel/CG-TR
477
25
McCune/UR
6050
38
McCune/LUR
1106
23
DCDP вывод на графе связей
2195
110
AND вывод на графе связей
11061
135
OR вывод на графе связей
3523
165
Последовательный вывод на графе связей
8034
181
(CG - стратегия вывода с использованием графа связей.
SOS - вывод на графе связей с использованием целевого утверждения, как множества поддержки.
TR - вывод с использованием теории связей (Theory Links) - расширения стандартного метода резолюции.
UR - Вывод с использованием юнитной резолюции - модификации метода резолюции
LUR - Вывод с использованием связанной юнитной резолюции - модификации метода UR - резолюции).
Результаты сравнения показывают, что наилучшие результаты были получены при использовании процедуры McCune/LUR. Процедуры параллельного вывода на графе связей показали, что их эффективность сопоставима с наиболее эффективными реализациями процедур дедуктивного вывода.
В заключении приведены основные результаты, полученные в диссертационной работе.
Основные результаты работы
1. Разработан комплексный подход к решению задачи создания эффективной процедуры вывода, основанного на применении параллелизма на уровне термов и параллелизма на уровне дизъюнктов (OR-, AND- и DCDP параллелизм).
2. Представлена структура представления термов, которая может быть использована в параллельных процедурах вывода.
3. Разработан алгоритм параллельной унификации, использующий представленную структуру представления термов.
4. Представлен метод построения множества связей для DCDP-параллельного вывода, позволяющий повысить эффективность DCDP-параллельного вывода.
5. Разработана эвристическая функция, позволяющая повысить эффективность параллельной процедуры вывода.
6. Выполнена реализация программного комплекса, в котором реализованы основные теоретические результаты, представленные в работе.

СПИСОК РАБОТ, ОПУБЛИКОВАННЫХ ПО ТЕМЕ ДИССЕРТАЦИИ
1. Аверин А.И. Алгоритмы дедуктивного вывода на графе связей. Параллельный вывод на графе связей//Третья международная школа-семинар по искусственному интеллекту для студентов и аспирантов (Браславская школа - 1999): Сборник научных трудов. - Минск: БГУИР, 1999. - С.155-157.
2. Аверин А.И., Вагин В.Н. Разработка алгоритмов дедуктивного вывода в системах принятия решений//Радиоэлектроника, электротехника и энергетика. Шестая Междунар. науч.-техн.конф. студентов и аспирантов; Тезисы докл. В 3-х т. - Т. 1. - М.: МЭИ,2000. - С. 214.
3. Аверин А.И., Вагин В.Н., Хамидулов М.К. Исследование алгоритмов параллельного вывода на задаче "Стимроллер"//Известия Академии Наук. Теория и системы управления. - 2000. - №5. - С. 92-100.
4. Аверин А.И., Вагин В.Н., Хамидулов М.К. Исследование алгоритмов параллельного вывода на задаче "Стимроллер"//Международный журнал вычислительной техники и системотехники, Перевод журнала "Известия РАН. Теория и системы управления". - 2000. - Т. 39, №. 5 - С. 758-766-(на англ. яз.).
5. Аверин А.И., Вагин В.Н., Хамидулов М.К. Методы параллельного вывода на графовых структурах//Седьмая национальная конференция по искусственному интеллекту с международным участием (КИИ 2000). - Т.1. - М.: ФизМатЛит, 2000. - С.181-189.
6. Аверин А.И., Вагин В.Н. Методы параллельного дедуктивного вывода на графах связей//Научная сессия МИФИ - 2001. Сборник научных трудов. В 14 томах. -Т.3. -М.:МИФИ, 2001. - С. 200-201.
7. Аверин А.И., Вагин В.Н. Реализация алгоритмов дедуктивного вывода на графах связей//Радиоэлектроника, электротехника и энергетика. Седьмая Междунар. науч.-техн.конф. студентов и аспирантов; Тезисы докл. В 3-х т. - Т.1. - М.: МЭИ,2001. - С. 386.
8. Аверин А.И., Вагин В.Н. Параллелизм в дедуктивном выводе на графовых структурах//Автоматика и телемеханика. - 2001. - №10. - С. 54-64.
9. Аверин А.И., Вагин В.Н. Параллелизм в дедуктивном выводе на графовых структурах//Автоматика и телемеханика, перевод журнала "Известия РАН. Автоматика и телемеханика".- 2001. - Т.62,№. 10 - С.1588-1596. - (на англ. яз.).
10. Аверин А.И., Вагин В.Н. Методы параллельного дедуктивного вывода на графах связей//Научная сессия МИФИ - 2002. Сборник научных трудов. В 14 томах. - Т.3. - Банки данных. Интеллектуальные системы. Программное обеспечение.М.МИФИ 2001., с. 200-201.
11. Аверин А.И. Разработка алгоритмов дедуктивного вывода в системах принятия решений//Радиоэлектроника, электротехника и энергетика. Восьмая Междунар. науч.-техн.конф. студентов и аспирантов; Тезисы докл. В 3-х т. М. МЭИ,2002. Том 1.с. 255-256.
12. Аверин А.И. Способ представления термов в логике предикатов первого порядка. Задача унификации//Радиоэлектроника, электротехника и энергетика. Девятая междунар. науч.-техн. конф. студентов и аспирантов; Тез. докл. В 3-х т. Т.1. - М.: МЭИ, 2003. - С. 282-283.
13. Аверин А.И. Алгоритм параллельной унификации с использованием усовершенствованной структуры термов//Научная сессия МИФИ - 2003. Сборник научных трудов. В 14 томах. Т.3 -М.:МИФИ,2003. - C. 154-156.
14. Аверин А.И. Разработка алгоритмов параллельной унификации//Радиоэлектроника, электротехника и энергетика. Десятая международная научно-техническая конференция студентов и аспирантов; Тез. докл. В 3-х т. -Т.1. - М.: МЭИ, 2004. - C. 307-308.
15. Аверин А.И. Использование агентов в распределенном доказательстве теорем//Международный форум информатизации - 2003: Доклады международной конференции "Информационные средства и технологии" в 3-х т. - Т.1. -М.: Янус-K, 2003 -C. 178-181.
16. Аверин А.И., Вагин В.Н. Разработка высокоэффективных алгоритмов параллельного дедуктивного вывода с использованием графа связей//Программное обеспечение основанное на знаниях: материалы шестой объединенной конференции по программному обеспечению, основанному на знаниях/под ред. В. Стефанюка и К. Каджири - IOS Press, 2004. - С.253-260. - (на англ. яз.)
17. Аверин А.И., Вагин В.Н. Использование параллелизма в дедуктивном методе//Известия РАН. Теория и системы управления. - 2004.-№4.- С. 114-126.
18. Аверин А. И., Вагин В.Н. Использование параллелизма в дедуктивном методе//Международный журнал вычислительной техники и системотехники, Перевод журнала "Известия РАН. Теория и системы управления". - 2004. - Т. 43, № 4. - С.603-615. - (на англ. яз).

Подписано в печать Зак Тир. П.л.
Полиграфический центр МЭИ (ТУ)
Красноказарменная ул. д.13
??

??

??

??




2





СОДЕРЖАНИЕ