НАХОЖДЕНИЕ МИНИМАЛЬНЫХ АБДУКТИВНЫХ ОБЪЯСНЕНИЙ С ПОМОЩЬЮ ПЕРВИЧНЫХ ИМПЛИКАТ В.Н. Вагин, К.Ю. Хотимчук (Москва, Московский энергетический институт (Технический университет), Россия) В последнее время в интеллектуальных системах очень важную роль стал играть абдуктивный вывод, цель которого заключается в выводе причины для наблюдаемого события. С точки зрения моделирования человеческих рассуждений, абдуктивный вывод является более гибким инструментом, чем дедуктивный. Тем не менее, дедукция играет немалую роль в организации абдуктивного вывода. Именно дедуктивные свойства абдукции являются центральной темой данной статьи. Показано, как минимальные абдуктивные объяснения связаны с первичными импликатами. Рассматривается алгоритм SOL-резолюции для нахождения множества первичных импликат и предлагается эвристика для сокращения поискового пространства в этом алгоритме. 1. Введение. В настоящее время разработка формальных моделей различных форм рассуждения играет ключевую роль в создании интеллектуальных систем различного назначения. Логический вывод, на котором основаны рассуждения, в стандартном смысле понимается как достоверный вывод, при организации которого из истинных посылок мы всегда получаем истинные заключения. В широком смысле к достоверному выводу относится хорошо изученный дедуктивный вывод. Дедукция – строгая и ограниченная форма рассуждения, и дедуктивного вывода недостаточно для моделирования таких важных аспектов человеческого мышления, как противоречивость информации, неопределённость, формирование гипотез и др. Поэтому в интеллектуальных системах наряду с дедукцией необходимо привлекать правдоподобные формы рассуждения, такие как индукция и абдукция. Индуктивный вывод – это вывод от частного к общему. Абдуктивный вывод заключается в выводе причины из наблюдаемого события и является выводом от частного к частному. На сегодняшний день вывод по абдукции успешно применяется для решения задач диагностики[1], понимания естественного языка[2], распознавания, накопления знаний, составления расписаний и, несомненно, является очень важной составляющей интеллектуальных систем. В настоящей работе мы рассматриваем понятие минимального абдуктивного объяснения, после чего перейдём к понятию первичной импликаты. Далее будет изложен принцип нахождения множества минимальных абдуктивных объяснений с помощью первичных импликат, мы приведём алгоритм SOL-резолюции для нахождения первичных импликат. Затем мы предлагаем эвристический метод для сокращения поискового пространства в алгоритме SOL-резолюции, названный нами методом выбора начального порядка литер в исходных дизъюнктах. 2. Абдукция. Абдукция заключается в выводе объяснений наблюдаемого факта. К настоящему времени рассмотрены различные формы абдукции, из которых можно выделить функциональную абдукцию, абдукцию, основанную на логике, вероятностную абдукцию. Мы будем рассматривать только абдукцию, основанную на логике. В этом случае имеющиеся знания представлены как логическая теория. Абдуктивный вывод, основанный на логике, определяется через теорию, основанную на предположениях. Под предположениями будем понимать гипотезы, которые в процессе вывода будут подтверждаться или опровергаться. О п р е д е л е н и е 1. Пусть Ф – логическая теория, Ф также обозначает конъюнкцию всех формул в Ф. H – конечное множество фактов, называемых гипотезами. Упорядоченная пара T = <Ф, Н> называется теорией, построенной на предположениях (гипотезах). О п р е д е л е н и е 2 ( а б д у к т и в н о г о в ы в о д а ). Пусть T = <Ф, Н> – теория, построенная на предположениях. Абдуктивный вывод заключается в выводе объяснения для наблюдаемого события δ как подмножества γ H, такое, что Ф & γ ╞ δ. Заметим, что на γ в определении 2 накладывается синтаксическое ограничение – γ представляет собой конъюнкцию фактов. О п р е д е л е н и е 3 [3]. Пусть Т = <Ф, Н> – теория, основанная на предположениях, и δ – формула логики предикатов первого порядка. Конъюнктивно интерпретируемое подмножество γ H назовём абдуктивным объяснением δ относительно Т, если -Ф&γ ╞δ - Ф & γ выполнимо. П р и м е р 1. Пусть Т = <Ф, Н>, где Ф = x (Студент(x) Юн(x)), δ = Юн(Петров). Пусть H = {Студент(x1), Рабочий(x2)}. Тогда Студент(Петров), Студент(Петров) & Рабочий (Иванов) являются абдуктивными объяснениями δ относительно T. Заметим, что абдуктивное объяснение должно быть непротиворечиво. В примере 1 Студент(Петров) & Юн(Петров) не является абдуктивным объяснением δ относительно T в силу противоречивости. О п р е д е л е н и е 4 [3]. Пусть Т = <Ф, Н> – теория, основанная на предположениях, δ – формула логики предикатов первого порядка. Конъюнктивно интерпретируемое подмножество γ H назовём минимальным абдуктивным объяснением δ относительно Т, если - γ – абдуктивное объяснение для δ относительно Т - для любого абдуктивного объяснения γ' для δ относительно Т выполняется (γ'γ) (γγ'). П р и м е р 2. Пусть Т = <Ф, Н>, где Ф = x (Студент(x) Юн(x)), δ = Юн(Петров). Пусть H = {Студент(x1), Рабочий(x2)}. Тогда Студент(Петров) является минимальным абдуктивным объяснением δ относительно T. Студент(Петров) & Рабочий (Иванов) не является минимальным абдуктивным объяснением δ относительно T. В логике предикатов первого порядка, в общем случае, множество минимальных абдуктивных объяснений не всегда конечно. Приведём пример. П р и м е р 3. Пусть δ = P(a, b), Ф = {xyz (P(x, y) & P(y, z) P(x, z))}, H = {P(x,y)}. Тогда каждая из следующих конъюнкций: h0 = P(a, b) h1 = x1 (P(a, x1) & P(x1, b)) h2 = x1 x2 (P(a, x1) & P(x1, x2) & P(x2, b)) … является минимальным объяснением F относительно T = <Ф, H>. Задачу абдукции будем рассматривать как задачу нахождения множества минимальных абдуктивных объяснений наблюдаемого события на основе имеющихся знаний и ограничений на представление результатов (будут предварительно перечисляться все возможные элементы, ожидаемые в качестве составляющих результата). 3. Первичные импликаты. Дадим определение <Ф, L>-импликаты и <Ф, L>первичной импликаты: О п р е д е л е н и е 5 [3]. Пусть L – конечное подмножество литер, – формула, Ф – логическая теория, Ф также обозначает конъюнкцию всех формул в Ф. Пусть также Lit(d) – множество литер дизъюнкта d. - Дизъюнкт является <Ф, L>-импликатой , если Ф ╞ и Ф╞ , и Lit() L. - Дизъюнкт является <Ф, L>-первичной импликатой , если - – <Ф, L>-импликата - для всех <L, Ф>-импликат π' формулы выполнено {'╞}{╞'}. Множество всех -первичных импликат формулы будем обозначать как . = (a b), Ф = (b c) (c b d), L = {a, b, d}. П р и м е р 4. Пусть Тогда a b, a b d являются = (a b), Ф = (b c) (c b d), L = {a, b, d}. П р и м е р 5. Пусть Тогда a b является является - импликатами формулы . -первичной импликатой формулы . a b d не -первичной импликатой формулы . Нужно заметить, что для дизъюнктов логики предикатов первого порядка, в отличие от дизъюнктов пропозициональной логики, существование конечного числа первичных импликат не гарантируется. Это видно из ниже приведённого примера. П р и м е р 6. Пусть = P(a), Ф = x (P(x) P(f(x))), L = {P} Тогда каждый из следующих дизъюнктов: h0 = P(a) h1 = P(f(a)) h2 = P(f(f(a)))… является -первичной импликатой формулы . 4. Решение задачи абдукции с помощью первичных импликат. Существуют различные методы решения задачи абдукции. Мы рассматриваем метод решения задачи абдукции с помощью первичных импликат. В основе этого метода лежит принцип абдукции через дедукцию[4]: Ф, γ ╞ δ Ф, δ ╞ γ. Доказана справедливость следующего утверждения[3]: У т в е р ж д е н и е 1. Пусть T = <Ф, H> – теория, основанная на предположениях, и пусть δ – формула. γ – минимальное абдуктивное объяснение для δ относительно T тогда и только тогда, когда γ является <Ф, H> - первичной импликатой формулы δ. Замечание. H означает <h1, h2, …, hN>. П р и м е р 7. Пусть Т = < a b, {a , a , b, b} > – теория, основанная на предположениях. Пусть наблюдается факт δ = b. Сведём задачу нахождения минимальных абдуктивных объяснений для δ = b относительно Т к задаче нахождения множества <Ф, H>-первичных импликат формулы δ: δ = b. Ф = a b Н = {a, a, b, b}. Формулы a, b являются <Ф, H>-первичными импликатами формулы δ. Для каждой из этих двух формул получаем соответствующее минимальное абдуктивное объяснение путём взятия отрицания: a и b. 5. Алгоритм SOL-резолюции. Для нахождения множества применяется алгоритм SOL-резолюции - первичных импликат формулы (skipping ordered linear – линейная упорядоченная резолюция с перемещением), основанный на работах Ковальски и Кунера [5]. Неформально, суть его такова: пусть формула Ф допускает дизъюнктивное представление S, тогда последовательно осуществляется резолюция формулы с дизъюнктами из S до того момента, пока не окажется, что полученный к данному моменту дизъюнкт уже нельзя прорезольвировать ни с одним из дизъюнктов S. Для того чтобы не допустить вывод дизъюнктов, не являющихся первичными импликатами, в алгоритме используется механизм обрамления литеры, по которой имело место резольвирование [6]. SOL-резолюция оперирует расширенными и структурными дизъюнктами. О п р е д е л е н и е 6. Пусть LPS – множество литер логики предикатов первого порядка. Расширенным дизъюнктом называется упорядоченный дизъюнкт, литеры которого берутся из множества LPS{[r], r LPS}. {[r], r LPS } – это множество так называемых обрамлённых литер. Обрамление литеры является способом запомнить, что по данной литере мы уже резольвировали. Таким образом, если дизъюнкт содержит обрамлённую литеру [r], то это означает, что один из его родительских дизъюнктов содержит r. С логической точки зрения расширенный дизъюнкт независим от его обрамлённых литер, то есть представляет собой дизъюнкт, составленный только из не обрамленных литер данного. Целью обрамления является организация последовательного поиска и обеспечение вывода только первичных импликат: резольвирование дизъюнкта с дизъюнктами из , содержащими литеру, по которой производилось резольвирование выше, бесполезно. О п р е д е л е н и е 7. Структурным дизъюнктом называется упорядоченная пара , где – дизъюнкт, – расширенный дизъюнкт. Структурный дизъюнкт в SOL-резолюции логически означает некоторый дизъюнкт, который уже является первичной импликатой формулы означает дизъюнкт, составленный из литер дизъюнкта расширенного дизъюнкта . Разделение на и , то есть, и необрамлённых литер необходимо для чёткого определения части, которую надо резольвировать ( ) и части, от резольвирования которой уже нельзя получить новые импликаты ( ), тем самым реализуется последовательный перебор. Опишем вкратце сам алгоритм. Первоначально из исходного дизъюнкта составляется структурный дизъюнкт, левая компонента которого является пустым множеством, а правая состоит из множества литер исходного дизъюнкта. Построенный структурный дизъюнкт подаётся на вход алгоритма SOLрезолюции, на выходе которого мы получаем множество первичных импликат. Опишем действие алгоритма SOL-резолюции для произвольного узла дерева вывода. Со структурным дизъюнктом, связанным с этим узлом, можно осуществить два действия – переместить первую литеру из второй компоненты в первую (Skip) и прорезольвировать по первой литере со всеми подходящими дизъюнктами из базы правил, объединённой с начальным дизъюнктом (Resolve). Процедура Skip перемещает первую литеру из второй компоненты в первую, после чего вызывается процедура Reduce, которая редуцирует вторую компоненту. Процедура Resolve перебирает все дизъюнкты из базы правил, объединённой с исходным дизъюнктом. И если находит подходящий для резольвирования дизъюнкт, то осуществляется резолюция и редуцирование Reduce. Процедура Reduce удаляет из структурного дизъюнкта повторные литеры, а так же удаляет все обрамлённые литеры второй компоненты структурного дизъюнкта, которым не предшествует ни одна необрамлённая литера. 6. Пример работы алгоритма SOL-резолюции. Рассмотрим пример работы алгоритма SOL-резолюции. П р и м е р 8. Пусть Ф допускает следующее дизъюнктивное представление {(1) a d, (2) d e, (3) a f, (4) f e, (5) e g}, а = a b c. L – множество всех встречающихся в данном примере литер. Тогда дерево вывода множества <Ф, L>первичных импликат формулы имеет следующий вид: 1. <<>, <a, b, c>> 2. <<a>, <b, c>> Правило 3. <<>, <d, [a], b, c>> Правило 4. <<>, <f, [a], b, c>> Правило 5. <<a, b>, <c>> Правило 6. Правило 7. <<d> <b, c>> Правило 8. <<>, <e, [d], [a], b, c>> Правило 9. <<f> <b, c>> Правило 10. <<>, <e, [f], [a], b, c>> Правило [11].<<a, b, c>, <>> = a b c Правило 12. Правило 13. <<d, b>, <c>> Правило 14. Правило 15. <<e>, <b, c>> Правило 16. <<>, <g, [e], [d], [a], b, c>>Правило 17. <<f, b>, <c>> Правило 18. Правило 19. <<e>, <b, c>> Правило 20. <<>, <g, [e], [f], [a], b, c>>Правило [21.] <<d, b, c>, <>> = b c d Правило 22. Правило 23. <<e, b>, <c>> Правило 24. Правило 25. <<g>, <b, c>> Правило 26. Правило [27.] <<f, b, c>, <>> = b c f Правило 28. Правило 29. <<e, b>, <c>> Правило 30. Правило 31. <<g>, <b, c>> Правило 32. Правило [33.] <<e, b, c>, <>> = b c e Правило 34. Правило 35. <<g, b>, <c>> Правило 36. Правило [37.] <<e, b, c>, <>> = b c e Правило 38. Правило 39. <<g, b>, <c>> Правило 40. Правило [41.] <<g, b, c>, <>> = b c g Правило 42. Правило [43.] <<g, b, c>, <>> = b c g Правило 44. Правило Ответ: Skip для 1 Resolve для Resolve для Skip для 2 Resolve для Skip для 3 Resolve для Skip для 4 Resolve для Skip для 5 Resolve для Skip для 7 Resolve для Skip для 8 Resolve для Skip для 9 Resolve для Skip для 10 Resolve для Skip для 13 Resolve для Skip для 15 Resolve для Skip для 16 Resolve для Skip для 17 Resolve для Skip для 19 Resolve для Skip для 20 Resolve для Skip для 23 Resolve для Skip для 25 Resolve для Skip для 29 Resolve для Skip для 31 Resolve для Skip для 35 Resolve для Skip для 39 Resolve для 1 с (1) 1 с (3) 2 не выполнимо 3 с (2) 4 с (4) 5 не выполнимо 7 не выполнимо 8 с (5) 9 не выполнимо 10 с (5) 13 не выполнимо 15 не выполнимо 16 не выполнимо 17 не выполнимо 19 не выполнимо 20 не выполнимо 23 не выполнимо 25 не выполнимо 29 не выполнимо 31 не выполнимо 35 не выполнимо 39 не выполнимо a b c, b c d, b c f, b c e, b c g, решение получено за 44 шага. В общем случае для логики предикатов первого порядка, как говорилось раннее, может существовать бесконечное число первичных импликат. В таких ситуациях алгоритм SOL-резолюции работает бесконечно долго. Эта проблема может быть решена введением ограничения на максимальную функциональную вложенность получаемых в процессе вывода структурных дизъюнктов. 7. Проблема сокращения поискового пространства в алгоритме SOLрезолюции. Выше приведённый алгоритм SOL-резолюции для поиска множества первичных импликат имеет существенный недостаток – он не ограничивает вывод повторных дизъюнктов, и поэтому для результирующего набора дизъюнктов на выходе алгоритма требуется дополнительная проверка на повторы с целью их устранения. Таким образом, проблема сокращения перебора связана с устранением повторных дизъюнктов. У т в е р ж д е н и е 2. Любая последовательность выводимых друг из друга при помощи правил Skip и Resolve структурных дизъюнктов не содержит повторов. Отсюда следует важный вывод о том, что повторы могут возникать только при разветвлении вывода – ситуации, в которой к текущему дизъюнкту применяется хотя бы одно правило Resolve (в этом случае разветвление действительно будет иметь место, так как правило Skip применяется к любому дизъюнкту, к которому применимо правило Resolve). В идеале хотелось бы для каждого выводимого в SOL-резолюции структурного дизъюнкта знать, с какими дизъюнктами его резольвировать можно, а с какими нельзя (иными словами, резолюция с какими дизъюнктами не приведёт к выводу уже имеющихся дизъюнктов). Однако эта проблема остаётся NP-полной. Мы предлагаем эвристический метод, заключающийся в сокращении количества повторов. Далее будет показано, что можно организовать вывод таким образом, чтобы максимально отсрочить вывод повторных дизъюнктов. Тогда повторные дизъюнкты выведутся, но они повлекут за собой менее массовый вывод других повторных дизъюнктов. 8. Эвристический метод выбора начального порядка литер в исходных дизъюнктах в алгоритме SOL-резолюции. Можно заметить, что уменьшение количества повторов возможно за счет варьирования порядка литер в исходных дизъюнктах. На этом наблюдении основывается эвристический метод выбора начального порядка литер в исходных дизъюнктах. Метод заключается в упорядочивании литер в дизъюнкте по возрастанию функции Rank, действующей из декартова произведения множества литер и множества множеств дизъюнктов в множество целых чисел и определённой ниже. Пусть RuleBase – множество дизъюнктов. Тогда ранг литеры r в RuleBase определяется следующим образом. Находятся дизъюнкты d1, … dn, содержащие r. Тогда П р и м е р 9. Рассмотрим множество из 3 дизъюнктов {(1) a b с, (2) a b, (3) b с}. Вычислим значения функции Rank для литер a, a, b, b, c. Rank(a, (1, 2, 3)) = 1 + Rank(b, (1, 3)) = 1 + 1 + Rank(c, (1)) = 2 Rank(b, (1, 2, 3)) = 1 + Rank(c, (1, 2)) = 1 Rank(a, (1, 2, 3)) = 1 + Rank(b, (2, 3)) + Rank(c, (2, 3)) = 1 + 1 = 2 Rank(b, (1, 2, 3)) = 1 + Rank(a, (2, 3)) + Rank(c, (2, 3)) + + Rank(a, (1, 3)) = 1 + 1 + Rank(b, (3)) + 0 + 1 + + Rank(b, (3)) + Rank(c, (3)) = 3 + 2 = 5 Rank(c, (1, 2, 3)) = 0 Таким образом, на первых местах во второй компоненте расширенного дизъюнкта оказываются литеры, которые, по нашей оценке, приведут к порождению наименьшего числа дизъюнктов. Ранг 0 имеет та литера, по которой резольвирование вообще не происходит. Пример 10. Рассмотрим пример 8. Изменяем порядок следования литер согласно эвристическому методу выбора начального порядка литер в исходных дизъюнктах. Ф представима как {(1) a d, (2) e d, (3) a f, (4) e f, (5) g e}, а = b c a. В этом случае, по сравнению с примером 8, решение мы получаем уже за 20 шагов. 1. <<>, <b, c, a>> 2. <<b>, <c, a>> 3. 4. <<b, c>, <a>> 5. [6.] <<b, c, a>, <>> 7. <<b, c>, <d, [a]>> 8. <<b, c>, <f, [a]>> [9.] <<b, c, d>, <>> 10. <<b, c>, <e, [d], [11.] <<b, c, f> <>> 12. <<b, c>, <e, [f], = a b c = b c d [a]>> = b c f [a]>> Правило Правило Правило Правило Правило Правило Правило Правило Правило Правило Правило Skip для 1 Resolve для Skip для 2 Resolve для Skip для 4 Resolve для Resolve для Skip для 7 Resolve для Skip для 8 Resolve для 1 не выполнимо 2 не выполнимо 4 с (1) 4 с (3) 7 с (2) 8 с (4) [13.] <<b, c, e>, <>> = b 14. <<b, c>, <g, [e], [d], [15.] <<b, c, e>, <>> = b 16. <<b, c>, <g, [e], [f], [17.] <<b, c, g>, <>> = b 18. [19.] <<b, c, g>, <>> = b 20. c e Правило Skip для 10 [a]>> Правило Resolve для c e Правило Skip для 12 [a]>> Правило Resolve для c g Правило Skip для 14 Правило Resolve для c g Правило Skip для 16 Правило Resolve для 10 с (5) 12 с (5) 14 не выполнимо 16 не выполнимо Ответ: a b c, b c d, b c f, b c e, b c g 9. Заключение. В настоящее время абдуктивный вывод широко применяется в интеллектуальных системах различного назначения. Представлен метод решения задачи абдукции с помощью - первичных импликат - первичных импликат. Собственно нахождение осуществляется по алгоритму SOL-резолюции. Недостатком этого алгоритма является, во-первых, полный перебор, а во-вторых, в общем случае он находит повторные дизъюнкты. Мы предложили эвристический метод выбора начального порядка литер в исходных дизъюнктах для сокращения поискового пространства. ЛИТЕРАТУРА 1. P. T. Cox and T. Pietrzykowski “General diagnosis by abductive inference” – In Proc. of the IEEE Symposium on Logic Programming, pages 183 – 189, 1987 2. J. Hobbs, M. E. Stickel, D. Appelt, and P. Martin “Interpretation as abduction” – Artificial Intelligence, 63:69 – 142, 1993 3. P. Marquis “Consequence finding algorithms” – In D. Gabbay and Ph.Smets, editors, Handbook of Defeasible Reasoning and Uncertainty Management Systems, volume V: Algorithms for Uncertainty and Defeasible Reasoning, Kluwer Academic, 2000, pp. 41-145 4. A.C. Kakas, R.A. Kowalski, F. Toni “The role of abduction in logic programming” – Handbook of logic in Artificial Intelligence and Logic Programming, Eds. D. M. Gabbay, C. J. Hoger and J. A. Robinson, Oxford University Press, 1998 5. R. Kowalski and D. Kuhner “Linear resolution with selection function” – Artificial Intelligence, 2:227 – 260, 1971 6. В.Н. Вагин, Е.Ю. Головина, А.А. Загорянская, М.В. Фомина “Достоверный и правдоподобный вывод в интеллектуальных системах” / Под ред. В.Н. Вагина, Д.А. Поспелова – Москва, Физматлит, 2004. – 704 с.