Литература
1. Павлов С. В., Христодуло О. И. Методология создания многомерных баз данных на основе тензорных структур // Проблемы создания национальной академической системы баз данных и баз знаний: Тезисы докладов всероссийского совещания. - Уфа, 1995. С. 20-21.
2. Павлов С. В., Христодуло О. И. Использование разнотипных информационных тензоров для описания информации о результатах испытаний авиационной и ракетно-космической техники // Актуальные проблемы авиадвигателестроения. - Уфа: УГАТУ, 1998. С. 185-188.
3. Павлов С. В., Хамитов Р. З., Христодуло О. И. Интеграция геоинформационных систем в корпоративные информационные системы крупных предприятий и организаций // Вестник УГАТУ, 2007. № 2 (20). С. 50-57.
4. Христодуло О. И. Совместное описание пространственных и атрибутивных данных на основе многомерных информационных объектов // Программные продукты и системы, 2011. № 3 (95). С. 48-54.
5. Христодуло О. И. Интеграция ГИС в корпоративные системы обработки информации на основе многомерных информационных объектов // Научно-технические ведомости СПбГПУ, 2011. № 3 (126). С. 37-42.
6. Павлов С. В., Плеханов С. В., Бахтизин Р. Н. Интеграция геоинформационных систем с информационными системами трубопроводного предприятия на основе многомерных моделей данных // Вестник УГАТУ, 2006. № 1 (17). С. 39-42.
7. Вершинин А. В., Серебряков В. А., Ряховский В. М., Дьяконов И. А., Динь ле Дат, Шкотин А. В., Шульга Н. Ю. Создание среды интеграции распределенных источников пространственных данных и приложений // Открытое образование, 2008. № 4. С. 9-15.
8. Бакланов П. Я., Ермошин В. В., Краснопеев С. М. Региональные геоинформационные системы в природопользовании на Дальнем Востоке // Открытое образование, 2010. № 5. С. 12-23.
9. Рундквист Д. В., Ряховский В. М. Роль геоинформатики в фундаментальных исследованиях в области наук о Земле // Открытое образование, 2010. № 5. С. 57-60.
МОДИФИКАЦИИ ПАРАЛЛЕЛЬНОГО МЕТОДА АНАЛИТИЧЕСКИХ ТАБЛИЦ
В. Н. Вагин, д. т. н., профессор Тел.: (495) 362-79-62, e-mail: vagin@appmat.ru Зо Мьо Хтет, аспирант Тел.: (495) 362-79-62, e-mail: vagin@appmat.ru Московский энергетический институт (технический университет)
http://www.mpei.ru
Работа выполнена при финансовой поддержке РФФИ (проект № 11-07-00038а)
The main inference methods on analytic tableaux: the classic inference method and the parallel analytic tableaux method with dummy variables are described. There are viewed modifications of the parallel analytic tableaux method with dummy variables using two strategies of search: breadth-first search and depth-first one. The advantage of the parallel analytic tableaux inference on the comparison with the sequential method for solving the complicated problems is shown.
Описаны основные методы вывода на аналитических таблицах: классический метод вывода и параллельный метод аналитических таблиц с фиктивными переменными. Рассмотрены модификации параллельного вывода метода аналитических таблиц с фиктивными переменными, использующие две стратегии поиска: поиск «только в ширину» и поиск «только в глубину». Показано преимущество параллельного вывода на аналитических таблицах по сравнению с последовательным методом в задачах практической сложности.
Ключевые слова: аналитические таблицы, параллельный метод, фиктивная переменная, наибольший общий унификатор, подстановка, согласование, поиск «только в ширину», поиск «только в глубину».
Key words: analytical tables, parallel method, dummy variable, the most general unifier, substitution, reconciliation, breadth-only search, depth-only search.
Введение
Известно, что система дедуктивного вывода в общем случае недетерминирована и поэтому проблема управления поиском вывода актуальна для построения решателей проблем. При выводе наблюдается экспоненциальный рост затрат на обработку огромного про-
странства поиска при решении задач практической сложности, а именно увеличение объема хранимой информации и увеличение времени решения задачи. Одним из путей решения этой проблемы является параллелизм, который может быть реализован как мультипоиск и распределенный поиск [1, 2]. В мультипоиске стратегии приписывают каждому параллельному процессу свой план поиска, в то время как стратегии распределенного поиска выдают каждому параллельному процессу свою порцию пространства поиска. Эти два подхода не являются взаимоисключающими, между ними имеется связь.
Говоря о стратегии поиска, прежде всего следует упомянуть о стратегиях, основанных на упорядочении (ordering-based strategies). Необходимо отметить, что среди них имеются как стратегии, ориентированные на расширение множества дизъюнктов для метода резолюции, так и на его сокращение путем поглощения. Упорядочение здесь понимается как наличие обоснованного порядка среди выражений, подлежащих процедуре поиска вывода. Стратегии, основанные на упорядочении, используют поиск только «наилучшего» (с применением эвристик) и, как правило, не очень восприимчивы к разрешению целей. Однако использование в них семантических (например, в семантической резолюции) или поддерживающих (например, в резолюции множества поддержки) требований настраивает поиск на разрешение целей. Стратегии, основанные на упорядочении, являются синтетическими, получаемыми образованием одних цепочек вывода из других.
Другим типом стратегий является стратегия редукции подцелей, реализованная в аналитических таблицах. Название этой стратегии подчеркивает тот факт, что вычисление цели состоит в редукции ее подцелей и затем
их разрешении. Если в подходе, основанном на упорядочении, стратегии ограничивают поиск наложением некоторых локальных требований на каждый шаг вывода, то стратегии редукции подцелей ограничивают поиск наложением требований на саму форму вывода. Так, в методе аналитических таблиц происходит разложение формулы на подформулы и ищется их невыполнимость, как в случае методов опровержения. Эти стратегии являются по сути аналитическими.
Из упомянутых нами типов параллелизма главное внимание будет уделено параллелизму на уровне распределенного поиска. Ключевой фактор в классификации методов с параллельным поиском заключается в дифференциации и комбинировании активности дедуктивных процессов. Принцип разделения пространства поиска на ряд подпространств положен в основу распределенного поиска, в котором существенную роль играет организация связи между порциями пространства.
Рассматривается параллельный метод аналитических таблиц с фиктивными переменными и две стратегии поиска решений: поиск «только е ширину» и поиск «только в глубину»
[2, 3]. Как известно, классический (последовательный) метод аналитических таблиц использует стратегию полного перебора, конструируя таблицу сверху вниз, слева направо, замыкая пути как только найдена контрарная пара формул. Возникающая здесь проблема связана с многократным применением у-правила (оно будет пояснено ниже), которое будет порождать множество экземпляров (примеров) формул (в общем случае бесконечное), приводящее к снижению эффективности метода. Параллельный метод с фиктивными переменными использует более сложный алгоритм унификации благодаря зависимостям между путями, обрабатываемыми параллельно, а следовательно, между процессами. Описывается модель вычисления конкретных параллельных путей таблицы и модель распределения процессов на этих путях с целью повышения эффективности метода.
1. Метод аналитических таблиц
Метод аналитических таблиц является эффективной процедурой доказательства теорем как для логики высказываний, так и для логики предикатов первого порядка. Он, как и метод резолюции, относится к методам опровержения, т. е. для доказательства общезначимости формулы A доказывается ее противоречие (—A) [2-4]. Но если метод резолюции работает с формулами, представленными в конъюнктивной нормальной форме (КНФ), то метод аналитических таблиц оперирует с формулами, представленными в дизъюнктивной нормальной форме (ДНФ). Вывод осуществляется на бинарных деревьях, вершины которых отмечены формулами, причем вершина называется концевой, если она не имеет потомков, простой, если она имеет только одного потомка и дизъюнктивной, если она имеет двух потомков. Каждая ветвь дерева представлена конъюнкцией формул, а само дерево - дизъюнкцией своих ветвей.
Известно, что в методе аналитических таблиц имеются четыре правила вывода, два из которых относятся к логике высказываний (а, в), а два - для логики предикатов первого порядка (у, 8) [2-4]. я
Правило а: щ , где а - формула конъюнктивного типа, состоящая из двух компонент ai и а2.
а2
Это правило гласит, что если формула Х есть а, то к дереву надо добавить вершину, отмеченную формулой а1 и затем на этой же ветви другую вершину, отмеченную а2.
Правило в: ^ , где в - формула дизъюнктивного типа, состоящая из двух компонент в1 и р2-
PllP2
Эта формула гласит, что если формула Х есть в, надо расщепить идущую от вершины в ветвь на две ветви и вершину на левой ветви отметить формулой вь а на другой - в2.
Правило 8: , где 8 - формула экзистенционального типа, имеющая кванторы 3 или -iV,
О {С)
и c - новый параметр, не входящий в исходную формулу, чью невыполнимость мы доказываем. Правило гласит, что если формула X есть 8, то к дереву надо добавить вершину, отмеченную формулой 8(с). Это означает, что к формуле Х применена подстановка c вместо всех вхождений переменной x в X.
Правило у: , где у - формула универсального типа, имеющая кванторы V или -i3, и a -
любой параметр. Это правило гласит, если формулаXесть у, то к дереву надо добавить вершину, отмеченную формулой y(a). Это означает, что к формуле Х применена подстановка а вместо всех вхождений переменной x в X.
Назовем правила а, в, у, 8 правилами расширения таблицы. Доказано, что метод аналитических таблиц обладает непротиворечивостью, т. е. невозможно доказать этим методом формулу и ее отрицание одновременно. Также метод полон, т. е. если формула Х общезначима, то она доказуема (выводима) методом аналитических таблиц [2-4].
В общем случае правила расширения таблицы недетерминированы, т. е. они говорят, что можно сделать, а не то, что нужно сделать. Но в отличие от пропозиционального случая в логике предикатов возможно многократное (в худшем случае бесконечное) повторение правил расширения таблицы без получения замкнутого дерева, хотя оно может существовать. Источником такой трудности является у-правило. Если правила а, в, 8 применяются к формуле X только один раз, то в случае с у-правилом это не так. Предположим, например, что формула Vx1; ...,VxnF{x1, ...,хп) содержит m констант. Тогда потребуется добавить mn различных замкнутых предложений к пути в таблице (функциональные символы в подстановке отсутствуют), т. е. количество формул, которое нужно добавить, возрастает экспоненциально в зависимости от количества кванторов.
Для уменьшения недетерминированности выбора правил сначала будем использовать все а- и 8-правила (нет ветвления). Затем применим в-правила и только после этого у-правила.
Будем называть таблицу атомарно замкнутой, если каждая ветвь дерева содержит некоторую атомарную формулу и ее отрицание (т. е. контрарную пару P и -iР). Таким образом, если формула Х общезначима или —Х невыполнима, то существует атомарно замкнутая таблица для Х.
2. Метод фиктивных переменных
Во избежание комбинаторных проблем, вызванных многократным добавлением к пути экземпляров универсальных формул, рассмотрим предложенный Р. Джонсоном метод фиктивных (dummy) переменных [3].
Вместо квантифицированных переменных, входящих в формулы, вводятся фиктивные переменные. Они могут быть заменены любым именем (константой), если будут соблюдены определенные ограничения, о которых будет сказано ниже.
Обозначим фиктивные переменные как Ах или Ах, где х - положительное целое число.
Введем несколько определений.
Определение 1 (редукция). Редукция - это упорядоченная пара вида <А, Т>, где А - переменная и t - терм. Это означает, что t будет подставлен вместо фиктивной переменной А в любое множество термов или формул, к которым подстановка применима.
Определение 2 (подстановка). Подстановка - конечная последовательность редукций (множество редукций).
Мы будем различать два вида редукций <А, О: константная редукция, где t - константа, и фиктивная редукция, где t - фиктивная переменная. Отсюда очевидно, что подстановка - это конечная последовательность редукций, а унификация определяется как обычно: если имеются два терма t и V, содержащие переменные, то подстановка а такая, что № = \а , называется унификатором для t и V. Подстановка а = {<хь ^>, ...,<х„, t„>} называется идемпотентной если для 1< /, ] < п хг- не входит в 4 поэтому переменные в идемпотентной подстановке не появляются одновременно на левой и правой сторонах любой редукции или различных редукций [3, 5]. Естественно нас интересуют только непротиворечивые идемпотентные подстановки (НИП). Следовательно, всякий раз, когда в результате композиции получается противоречивая подстановка в, где <АЬ а>, <А\, Ь> е в, а и Ь - константы и а Ф Ь, в будет исключена.
Метод фиктивных переменных во многом похож на метод Фиттинга, оперирующий со свободными переменными [6]. Он отличается от метода полного перебора в способах работы с универсальными формулами. Если метод полного перебора добавляет новую копию формулы для каждой новой константы, которая появляется на пути, то метод фиктивных переменных просто помещает фиктивную переменную на место всех вхождений универсально квантифицированной переменной, т. е. вместо фиктивной переменной может быть подставлена любая константа, находящаяся на пути. Эта подстановка может создать контрарную пару и тем самым замкнуть путь. Если при последовательном конструировании таблицы не возникает никаких проблем, то в параллельном случае необходимо поддерживать непротиворечивые подстановки для фиктивных переменных, которые возникают более чем на одном пути.
Опишем схему, позволяющую справиться с этой проблемой [3].
Имеем формулу ^ и подстановку а = {<х0, ^>, <хь ^>, ...,<хп_ь tn_l>}, ¥а - результат применения каждой редукции {<хр, tp>} к ^ для 0 <р < п - 1, т. е. в ^ каждое вхождение хр заменяется на ^.
Говоря про унификацию формул или множества формул, мы подразумеваем унификацию соответствующих термов в формулах. Например, рассмотрим формулы ^(а, х)^О(х) и ¥(у, Ь)^О(Ь), где х и у - фиктивные переменные. Эти формулы унифицируются подстановкой {<х, Ь>, <у, а>}. Рассмотрим ограниченное множество подстановок. Если любая переменная хр входит в левую часть константной редукции в а, тогда это будет ее единственным вхождением в а. Это гарантирует, что хр может быть связана только единственной константой, а также не содержит тождественных редукций, т. е. редукций вида <А, А>. Если у нас есть подстановки вида а ={<АЬ А2>} и в ={<А2, а>}, то ав ={<АЬ а>, <А2, а>}. Однако а ={<АЬ А2>} является двунаправленной, так что если в ={<АЬ а>}, то ав ={<АЬ а>, <А2, а>} дает такой же результат. Мы будем ссылаться на этот процесс как на внесение констант.
Нас интересуют только константные подстановки, за исключением случая, где одна переменная связана с другой, но ни одна из них, в свою очередь, не связана с константой. Получаем, что порядок применения редукций не важен.
3. Параллелизм в методе с фиктивными переменными
Опишем метод, который параллельно пытается построить подстановки, способные замкнуть таблицу. Отметим, что в таблице могут существовать пути, которые не требуют унификации, т. е. когда контрарная пара ^ и —^ не нуждается в унификации. Если на пути существуют две формулы, которые замыкают его без унификации, то это называется константным замыканием. Однако, если на пути присутствует формула типа ^(а, х) и —^(у, Ь), где а и Ь - константы, х и у - фиктивные переменные, то эти формулы необходимо унифицировать, т. е. применить к ним подстановку {<х, Ь>, <у, а>} и получить контрарную пару ¥(а, Ь) и —^(а, Ь).
Главная проблема, на которую нужно обратить внимание в параллельном случае, состоит в поддержании непротиворечивости подстановок, так как многие фиктивные переменные разделяются между нитями и могут связываться с различными константами, что недопустимо.
Как уже было сказано, две или более редукций являются противоречивыми, если они пытаются связать одну и ту же фиктивную переменную с различными константами. Противоречивая подстановка - это подстановка, содержащая одну или более пар противоречивых редукций. Рассмотрим два пути Рь Р2 таблицы Т, где Р1 может быть замкнут после унификации формул Е(а, х) и —Е(у, Ь), а Р2 может быть замкнут после унификации формул G(a, х) и — G(y с). Рх требует подстановку {<х, Ь>, <у, а>} для замыкания, в то время как Р2 требует {<х, с>, <у, а>}. Очевидно, что эти подстановки противоречивы. Поэтому замыкание путей с такими подстановками несостоятельно и невозможно.
Введем еще несколько определений [3].
Определение 3 (П-множество). Возможное унифицирующее множество (П-множество) П для подтаблицы Т' таблицы Т содержит редукции, требующиеся для замыкания всех путей в Т'. Каждое П-множество состоит из непротиворечивых идемпотентных подстановок.
Отметим, что Т' может быть частью таблицы Т, всей таблицей Т или только единственным путем.
Определение 4 (^-множество). Необходимое унифицирующее множество (У-множество) N является множеством из П-множеств.
У-множество содержит полное множество всех возможных подстановок, которые позволяют таблице замкнуться. Если какой-либо путь не может быть замкнут без унифицирования термов, тогда необходимо для У-множества, чтобы он содержал, по крайней мере, одну подстановку, которая унифицирует рассматриваемые термы.
У-множество (далее У) и П-множество (далее П) будут описаны следующим образом: N = {П0, ..., Пп}, где п > 0.
Отметим, что У-множество - это множество, состоящее из П-множеств, в то время как П-множество - это множество, состоящее из редукций: П = {<А0, ^>, ..., <Ар, tp>}, где р > 0, А Ф А и ti Ф у (' Ф у, 0 < /, у < р). П-множество - это подстановка, которая унифицирует соответствующие аргументы хь ., хп и уь ., уп для двух формул, делая их контрарными.
У каждого У-множества и П-множества есть соответствующая таблица или подтаблица Т.
Применяя П к формулам на каждом пути в Т получаем контрарную пару формул, замыкая Т. Аналогично, применение любого из П-множеств в У замыкает Т. В итоге получаем замкнутую таблицу Т.
Подстановки и их свойства.
Прежде чем обсудить создание унифицирующей подстановки для всей таблицы, опишем некоторые свойства подстановок и операций, которые выполняются над ними.
Определение 5 (композиция). Если а и в - две подстановки, то их композиция ав является подстановкой, определяемой как (Еа)в = Е(ав) для всех формул Е.
Определение 6 (допустимость). Даны две подстановки а! и а2, их композиция в = аа допустима тогда и только тогда, когда для любой формулы Е, ¥а\а2 = ¥а2а\ (т. е. в коммутативна) и все редукции в в непротиворечивы.
Отметим, что результатом допустимой композиции является НИП. Необходимо гарантировать, что в результате композиции будет получена непротиворечивая идемпотентная подстановка. Чтобы это получить, нам необходимо применить к допустимой композиции в операцию внесения констант. Операция внесения констант, примененная к редукции, замещает редукции вида {<АЬ А2>, <АЬ а>} на две редукции вида {<АЬ а>, <А2, а>}.
Введем два понятия непротиворечивости.
Определение 7 (сильно непротиворечивы). Две подстановки а и в сильно непротиворечивы, если а Я: в.
Определение 8 (слабо непротиворечивы). Две подстановки а и в слабо непротиворечивы, если ^, а> е а, <у, Ь> е в, а Ф Ь и а или Ь - переменные.
Сильная и слабая непротиворечивость составляют условия, которые проверяются при построении подстановок в композициях. Если замыкающие подстановки для всех путей в таблице сильно непротиворечивы, то таблица замыкается немедленно. Если замыкающие подстановки слабо непротиворечивы, тогда таблица все еще может быть замкнута, однако необходимо произвести композицию замыкающих подстановок, чтобы проверить наличие в них скрытых противоречий. Рассмотрим случай, где три пути замыкаются с подстановками а ={<х, а>}, у ={<х,
y>} и X ={<y, b>}. Композиция (оу)Х дает противоречивую подстановку, содержащую редукции <x, a> и <x, b>. Однако если у ={<x, z>}, то композиция непротиворечива.
Каждое N-множество содержит множество П-множеств, каждое из которых унифицирует, по крайней мере, одну пару контрарных формул на всех путях конкретной таблицы. Операция согласования объединяет N-множества N1 и N2, соответствующие паре таблиц, выводя единственное N-множество, содержащее П-множества, которые замыкают обе таблицы. Унификация N-множеств называется согласованием [3, 5].
Определение 9 (наиболее общий унификатор - НОУ). Говорят, что подстановка 9, унифицирующая формулы F1 и F2, называется наиболее общим унификаторам, если для всех унификаторов о формул F1 и F2 существует некоторая подстановка у такая, что о = 9у.
Рассмотрим две формулы F1(x, b, z) и F2(a, y, c). Эти формулы могут быть унифицированы подстановкой 9 = {<x, a>, <y, b>, <z, c>}.Здесь 9 - НОУ для этих формул, так как не существует подстановки уо такой, что F1(x, b, £)у = F2(a, y, с)у, и 9 = уо, где о Ф 0. Когда N-множество сгенерировано в концевой вершине, каждое П-множество в N-множестве составляет НОУ для пары контрарных формул на этом пути.
Определение 10 (наиболее общая подстановка - НОП). Если дано множество подстановок 9 = {91, ..., 9n}, то 9j (i = 1,n ) - наиболее общая подстановка (НОП) в 9, если не существует никакой 9j Е 9, где 9 - экземпляр для 9j. Заметим, что может быть больше одной НОП в 9. N-множество является множеством НОУ. Каждый НОУ множества термов является НОП, которая унифицирует множество.
Мы стремимся составить множества подстановок, поддерживая непротиворечивость каждого составленного П-множества и гарантируя, что результирующее N-множество N не содержит П-множество, которое менее общее (т. е. является экземпляром), чем любое другое П-множество в N. Поэтому каждое N-множество содержит множество НОП, а результатом согласования двух N-множеств является либо 0, либо множество НОП. Операция согласования пытается получить множество НОП для контрарных формул на всех путях таблицы, соответствующих согласованной паре N-множеств. Однако может быть более одного множества, замыкающего каждый путь, поэтому N-множество может содержать более одного П-множества.
Процесс согласования N-множеств требует создания всех перестановок пар П-множеств из двух N-множеств (по одному П-множеству из каждого N-множества). Затем любое из результирующих П-множеств, которое содержит несогласованные подстановки или экземпляры любых П-множеств из того же самого N-множества, исключаются из этого множества. Несогласованные редукции - результат возникновения конфликтов при присваивании фиктивным переменным значений, т. е. одна и та же переменная унифицируется с разными константами при замыкании таблицы. Для поддержки полноты замыкания сначала включаются все возможные подстановки, часть которых при обнаружении противоречий позже будет исключена. Очевидно, что П-множество всегда будет непустым, поскольку пустая подстановка говорит, что замыкание пути происходит без подстановки.
Определение 11 (согласование). Согласование (reconciliation) N1©N2 двух N-множеств N1 и N2 - это множество, полученное композицией всех пар П-множеств, входящих в N1 и N2. N1©N2 также является N-множеством [3].
Множество N0 получается из согласования N-множеств N1 и N2. N1 - множество подстановок, каждая из которых вызывает замыкание всех ветвей левой части таблицы (антецедента), находящейся ниже ветвления. Аналогично N2 - множество подстановок, которое замыкает все ветви в правой части таблицы (консеквента), находящейся ниже ветвления. Таким образом, согласование двух N-множеств N1 = {П0,...,П]_1} и N2 = {П^,...,П\_ф) состоит в композиции каждого члена N1 с каждым членом N2. Это требует создания n подстановок, где n = j*k (где j - количество П-множеств в N1, а k - количество П-множеств в ^).Для сокращения числа подстановок N0 следует исключить все конфликтующие подстановки и все подстановки, которые являются экземплярами других членов N0 (т. е не являются НОУ в N0).
Корневое N-множество - это N-множество, полученное согласованием N-множеств наибольшей пары частей таблицы (т. е. парой, непосредственно находящейся ниже самого верхнего ветвления). Каждое П-множество в корневом N-множестве является НОУ для таблицы, которое приведет к замыканию каждого пути таблицы.
Метод фиктивных переменных для аналитических таблиц полон и непротиворечив, что доказывается соответствующими теоремами [3, 6].
Проиллюстрируем параллельный метод аналитических таблиц с фиктивными переменными, использующий две стратегии поиска решений: поиск «только в ширину» (breadth-first search) и поиск «только в глубину» (depth-first search) [2, 3].
4. Параллельный метод с фиктивными переменными, использующий стратегию поиска «только в ширину»
Так как метод использует стратегию поиска «только в ширину», все открытые ветви таблицы расширяются параллельно для заданного пользователем числа процессоров. При превышении этого числа подтаблицы конструируются локально.
Докажем невыполнимость (противоречивость) следующего множества формул логики предикатов первого порядка (см. рис. 1) [7].
(6) 3x(P(x)) [3]
(S) P(a) [б]
(9) і(P(d1) & R(d1)) [5]
(1) 13x(S(x) & Q(x))
(2) Vx(!P(x) V Q(x) V R(x))
(3) 3x(P(x))V3x (Q(x))
(4) Vx(!(Q(x) V R(x)) V S(x))
(5) 13x(P(x) V R(x))
(7) 3x (Q(x)) [3]
(S’) Q(b) [7]
(9’) і(S(d2) & Q(d2)) [1]
(10’) S(d2) [9’
(10) іP(d1) [9] (11) іR(d1) [9]
[8:10 ;{d1/a}] (12) іP(d4) V Q(d4) V R(d4) [2] (12’) і(Q(d3) V R(d3)) V S(d3) [4]
(11’) іQ(d2) [9’
[S’:11’;{d2/b}]
l’l _
(13) іP(d4) [12] (14) Q(d4) [12]
PI |P2 P2
(15) R(d4) [12] (13’) і(Q(d3) v R(d3)) [12’] (14’)S(d3) [12’
:13;{d4/a}] (1б) і(S(d5) & Q(d5)) [1] [11:15;{d1/d4}]
(17) іS(d5) [1б] (18) іQ(d5) [1б]
(19) -i(Q(d6) V R(d6)) V S(d6) [4] [14:18;{d4/d5j]
PI A >s>4^ PI
(20) і(Q^) v R(dб)) [19] (21) S^) [19]
(22) іQ(dб) [20] I
(23) іR(dб) [20] [17:21;^5Мб}]
(15’) іQ(d3) [13’] (1б’) іR(d3) [13’]
[S’:15’;{d3/b}]
[10’:14’;{d2/d3}]
[14:22;{d4/d6}]
Px - ( x = номер процессора)
PI P2
NUmoz = {<d1/a><d2/b><d3/b><d4/a><d5/a><d6/a>}.
I
I
I
I
I
I
I
I
Рис. 1. Пример параллельного метода с фиктивными переменными для логики предикатов первого порядка, использующий стратегию «только в ширину» (с применением 2 ядер)
В универсальных формулах с кванторами Vx и —Эх осуществляется подстановка фиктивной переменной d вместо х, т. е. P(d) вместо P(x), R(d) вместо R(x) и т. д. Затем в экзистенцио-нальных формулах с кванторами Эх и —Vx реализуются подстановки констант вместо переменных, т. е. P(a) вместо P(x), Q(b) вместо Q(x) и т. д.
Выбираем третью формулу, к которой применимы в- и S-правила. Все остальные формулы - универсального типа. Подход, применяемый к в-расщеплению, называется «порождением процессов» [3]. В точке ветвления обе ветви расширяются параллельно и независимо друг от друга, порождая два процесса (процессора) P1 и Р2 . Расширение идет сверху вниз, слева направо. После обработки формулы (5) имеем снова расщепление, левая ветвь которого замыкается. Получаем {P(a), —P(d1)} на 10-м шаге и N1 = <d1, a>. На шаге 9' идет расщепление правой ветви, левосторонняя ветвь которой замкнется на шаге 16', давая {Q(b), — Q(d3)} и N" = <d3, b>. Освободившийся процессор P1 начинает обработку формулы (12), давая замыкание на 13-м шаге: {P(a), —P(d4)} и N2 = <d4, a>. Применяем операцию согласования, которая объединяет соседние N1 и N2 : N'итог = N © N2 = {<db a>, <d4, a>}. Затем освободившийся процессор P2 замыкает правостороннюю ветвь на шаге 11', давая {Q(b), — Q(d2)} и N2' = <d2, b>. Согласование соседних Nj" и N2' приводит к Nтог = N" © N2' = {<d3, b>, <d2, b>}. Аналогично процессор Pi замыкает на 23-м шаге левостороннюю ветвь: {Q(d4), — Q(d6)} и N'3 = <d4, d6>. Согласование дает N'итог = N'итог ©N3 = {<db a>, <d4, a>}©{<d4, d6>} = {<db a>, <d4, a>, <d6, a>}. Далее процессор P1 на 15, 18 и 21 шагах замыкает целиком всю левостороннюю ветвь, что дает в результате
N'итог = N'итог ©N4 = {<db a>, <d4, a>, <d6, a>}©{<d1, d4>} = (15-й шаг)
= {<d1, a>, <d4, a>, <d6, a>};
N 'итог = N 'итог © N'5 = {<db a>, <d4, a>, <d6, a>}©{<d4, d5>} = (18-й шаг)
= {<d1, a>, <d4, a>, <d5, a>, <d6, a>};
N 'итог = N 'итог © N6 = {<db a>, <d4, a>, <d5, a>, <d6, a>}©{<d5, d6>} = (21-й шаг)
= {<d1, a>, <d4, a>, <d5, a>, <d6, a>}.
Аналогично процессор P2 на 14-м шаге замыкает правую ветвь, что приводит к
Ктог = Ктог ® N = {<d3, b>, <d2, b>}©{<d2, d3>} = {<d3, b> , <d2, b>}.
Таким образом, после согласования левой и правой ветвей получаем следующее решение:
Ктог = N'иmoг © Ктог = {<db a>, <d4, a^ <d5, a>, <d6, a>}©{<d3, b> <d2, b>} =
= {<d1, a>, <d2, b>, <d3, b>, <d4, a>, <d5, a>, <d6, a>}.
Процесс согласования N-множеств, как уже упоминалось, требует создания всех перестановок пар ^-множеств из двух N-множеств, причем несогласованные подстановки или экземпляры любых ^-множеств из одного и того же N-множества будут исключены.
Мы рассмотрели упрощенный случай, где нет противоречивых подстановок, связывающих одну и ту же фиктивную переменную с разными константами. Будем называть такие подстановки конфликтующими [3]. В параллельном методе расширение происходит асинхронно до тех пор, пока не потребуется унификация. Унификация требуется, когда путь завершен (т. е. полностью расширен) и константное замыкание потерпело неудачу. Во время унификации конструируются подстановки и осуществляется согласование различными таблицами (желательно смежными). Этот процесс требует синхронизации. Если N-множество для всей таблицы не может быть сконструировано, выбирается N-множество, которое замыкает больше всего путей. Эти пути замыкаются, а для оставшихся путей начинается процесс затенения (shadowing) [3, 6]. Затенение может происходить асинхронно до тех пор, пока не понадобится унификация. Определим процесс затенения. Введем несколько определений.
Определение 12 (гранула). Имеем формулу Vx F(x). Если dx - фиктивная переменная, замещающая в F(x) все вхождения x, тогда F(dx) - гранула.
Определение 13 (конфликтующая тень). Если о - конфликтующая подстановка (т. е. <d, a> е о и <d, b> е о где a и b - константы и а Ф b), <d, a> - конфликтующая редукция и F(d) является гранулой для d, то F(d) {<d, b>} - конфликтующая тень для F(d).
Определение 14 (фиктивная тень). Если F(d) - гранула и о = {<d, d' >}, тогда F(d) {<d, d' >} - фиктивная тень для F(d), где d' - новая фиктивная переменная таблицы.
В отличие от метода полного перебора, метод с фиктивными переменными добавляет к пути только минимальное множество новых экземпляров универсально квантифицированной формулы. В качестве первой попытки работы с конфликтами экземпляры универсально квантифицированных формул добавляются к пути, основываясь на неудачных подстановках, которые (если бы они не конфликтовали с подстановками из других путей) замкнули бы путь. Эти экземпляры называются конфликтующими тенями. Если расширение конфликтующих теней делает неудачным вывод замыкания, тогда новые уникальные фиктивные переменные вводятся на этом пути, заменяя фиктивные переменные в грануле, и расширение продолжается. Эти экземпляры универсально квантифицированных формул называются фиктивными тенями.
Процесс добавления конфликтующих теней, согласования N-множеств из открытых путей, добавления фиктивных теней, затем снова согласования повторяется до тех пор, пока замыкание не будет достигнуто, или не обнаружится, что путь открыт. Однако полуразрешимость логики предикатов 1-го порядка означает возможность того, что этот процесс будет продолжаться бесконечно.
Конфликтующее множество (С-множество) получается в результате операции согласования N1©N2, где N1 и N2 содержат противоречивые ^-множества, С = {<d1, a1, b1>, ..., <dn, an, bn>}, где d1, ..., dn - фиктивные переменные, a1, ..., an и b1, ..., bn - константы и ai Ф bi, где
1 < i < n.
Например, пусть все пути, кроме одного, замкнуты с подстановкой <d1, b> и только один путь имеет конфликт <d1, a>. Тогда для него надо построить конфликтующую тень для разрешения этого конфликта с конфликтующим множеством <d1, a, b>. Когда происходит согласование, С-множество создается путем объединения С-множеств из расположенных ниже ветвей с добавлением любых дополнительных конфликтующих подстановок, которые получаются из согласования N-множеств для расположенных ниже ветвей.
В методе с фиктивными переменными, использующем стратегию «только в ширину», происходит чередование между затетением конфликта и затенением фиктивных переменных до тех пор, пока все пути не будут замкнуты, либо не будет создано новое ^-множество, в котором некоторый путь окажется открытым.
5. Параллельный метод с фиктивными переменными, использующий стратегию поиска «только в глубину»
Здесь стратегия «только в глубину» следует другой схеме параллелизма, нежели в подходе «только в ширину». Во время расщепления левосторонняя ветвь может быть исследована немедленно, в то время как правосторонняя ветвь сохраняется для выполнения расширения позже, что позволяет уменьшить затраты памяти на хранение формул.
Формулы правостороннего пути помещаются в стек Tasks (задачи) активных открытых путей вместе с уникальным идентификатором и данными управления. Если процессор master (хозяин) осуществляет хранение Tasks, то расширение и замыкание путей выполняется процессорами slave (подчиненный). Когда процессор становится свободным, находящийся в стеке путь повторно активируется. Каждый из активированных путей решается параллельно и одновременно происходит согласование. Когда происходит замыкание пути, берется новый путь из Tasks. Процесс продолжается до тех пор, пока Tasks не станет пустым и никакой другой процессор не останется работать на незамкнутом пути. Тогда в этот момент таблица объявляется замкнутой. Если какой-либо процессор находит открытый путь, все вычисления заканчиваются сообщением из центрального пункта распределения сообщений (процессор master).
Так как все процессоры должны быть доступны стеку Tasks, возникает узкое место для их связи. Если стратегия «только в ширину» нуждается только в синхронизации всех путей при каждом согласовании (перед добавлением тени), подход «только в глубину» должен синхронизировать каждое активированное подмножество путей таблицы, ожидая пока унификатор для замыкания этого подмножества не будет сконструирован, перед тем как работать со следующим подмножеством путей из стека. Этот унификатор должен быть также непротиворечив с любыми замыкающими унификаторами, сконструированными ранее.
Требования регулярной синхронизации и доступ к разделенным ресурсам обеспечиваются централизованным механизмом управления для контроля над распределением задач и синхронизации процессов при согласовании. Используемая здесь структура «master - slave» может вызвать проблему доступа, когда большое число процессов требует новых задач, а процессор master, как уже говорилось, оказывается узким местом для коммуникации этих процессоров.
Вернемся к примеру, который уже был рассмотрен в стратегии поиска «только в ширину» (см. рис. 2). Снова начинаем с 3-й формулы, которая дает расщепление на две ветви, порождая два процесса (процессора) Р1 и Р2, выполняемые параллельно слева направо, сверху вниз. Расширение ветвей идет вглубь. После обработки формулы (5) имеем новое расщепление, левая ветвь которого замыкается на 10-м шаге, а правая - на 20-м.
Получаем (Р(а), -Р(^1)}, N = <4Ь а> и (<2(Ь) , -0(^3)}, N = <43, Ь>.
(1) —Зх(Б(х) & 0(х))
(2) ¥х(—Р(х) V д(х) V Щх))
(3) Эх(Р(х))У Зх «(х))
(4) ¥х(—«(х) V Щх)) V Б(х))
(5) —Зх(Р(х) & Щх))
1.Р1
(6) Эх(Р(х)) [3]
(8) Р(а)[6]
(9) -(Р(аі) & Я(аі)) [5]
(13)
(7) Эх(0(х)) [3] (12) дь) [7]
і(Б(а2) & д^)) [і]
(10) —іР(<11) [9]
□
[8:10 ;{аі/а>]
(11) —іЩсіі) [9]
(21) -Р(а4) V д(а4) V Щ4) [22] (16) -^3) V Щ3)) V Б^3) [4] [12:15;{а2/Ь>]
(22) -Р(а4) [21]
(23) 0(а4) [21]
(24) Щ4) [21]
[8:22;{а4/а>] (25) -(Б^5) & д(а5)) [1] [11:24;{аШ4>]
З.Р1
(26) -Б^5) [25]
(19) -,0(а3) [17]
(20) -Щ3) [17]
[14:18;{а2/а3>]
4.Р1
(27) ^(с15) [25]
□
(28) -,((2(с16) V Щсіб)) V Э(аб) [4] [23:27; {<14/с15}]
З.Р1Х З.Р2
[12:19;{а3/Ь>]
(29) -^6) V Щ6)) [28]
(31) -0(ё6) [29]
(32) -Щ6) [29]
□
[23:31;{а4М6>]
(30) Б(а6) [28]
□
[26:30;{а5М6>]
х = номер процессора)
З.Р1 иЗ.Р2
4.Р1 и 4.Р2
5.Р1
У.Рх - ( У = число прохождений процессора 1.Р1 и 1.Р2 ■"■"■ч 2.Р1 и2.Р2
Nитюг = {<d1/a>,<d2fb>,<d3/Ь>,<d4/a>,<d5/a>,<d6/a>}.
Рис. 2. Пример параллельного метода с фиктивными переменными для логики предикатов первого порядка, использующий стратегию «только в глубину» (с применением 2 ядер)
Применяем операцию согласования Ыитюг = N^©N2 ={<4Ь a>, <43, Ь>}. Затем с 11 шага процессор Р1 выполняется во второй раз, давая замыкание {Р^), - Р(44)}, N3 = {<44, a>} на 22-м шаге. Так как согласование идет в глубину, имеем Ыитог = Нитог@Ы3 = {<4Ь a>, <43, Ь>, <44, a>}. Аналогично с 15-го шага во второй раз выполняется процессор Р2, приводя к замыканию правосторонней ветви на 18-м шаге: {— ^(^2), S(d3)} и N = {<42, 43>}. Согласование дает Ктог = Nитог®N4 ={<4Ь a>, <43, Ь>, <^4, a>}©{<d2, dз>} = {<4Ь a>, <^2, Ь>, <43, Ь>, <44, a>}. Далее с 23-го шага процессор Р1 выполняется в третий раз, давая замыкание {<2(44), —Q(d6)} и N = <44, 46>, что приводит к следующему согласованию Ыитог = Шипюг@Ы5 = {<41, a>, <42, Ь>, <43, Ь>, <44, a>}©{<d4, 46>} = {<41, a>, <42, Ь>, <43, Ь>, <44, a>, <46, а>}. Также процессор Р2
□
□
□
выполняется в третий раз на 30-м шаге, что дает {— S(d5), S(d6)} и N6 = {<d5, d6>}. Имеем следующее согласование Nитог=N^@N6 = {<db a>, <d2, b>, <d3, b>, <d4, a>, <d6, а>}©{^5, d6>} = {<d1, a>, <d2, b>, <d3, b>, <d4, a>, <d5, a>, <d6, а>}. Аналогично процессоры P1 и P2 выполняются в 4-й раз: {Q(d4), — Q(d5)}, N7 = {<d4, d5>} (27-й шаг) и {—R(d1), R(d4)} и N8 = {<d1, d4>} (24-й шаг). Согласование: Nитог = Nиmoг®N8 ={<d1, a>, <d2, b>, <d3, b>, <d4, a>, <d5, a>, <d6, а>}. И наконец, на 15-м шаге при выполнении процессора P1 в 5-й раз получаем замыкание {Q(b), —Q(d2)} и N9 = {<d2, b>}.
Решение имеет вид N^02 = N^^QNc, = {<d1, a>, <d2, b>, <d3, b>, <d4, a>, <d5, a>, <d6, а>}. Здесь так же, как и в подходе «только в ширину», нет конфликтующих подстановок и нет затенения конфликта и фиктивных переменных.
Отметим, что стратегия поиска «только в глубину» страдает от проблемы глубины этого поиска. В [6] был рассмотрен случай, когда пользователь может расширить путь на некоторую глубину квоты (которую Фиттинг назвал Q-глубиной), предусматривающей, сколько копий каждого у-правила будет добавлено к пути. Это, очевидно, неэффективно, так как, с одной стороны, если значение счетчика Q-глубины будет завышено, это приведет к большому количеству вычислений, потраченных впустую. С другой стороны, хуже будет то, что если значение счетчика Q-глубины будет занижено, то метод окажется неполным и замыкания некоторых путей не произойдет. Пользователю придется варьировать величину квоты и запускать программу повторно с большей величиной квоты.
Заключение
Были рассмотрены основные методы вывода на аналитических таблицах для логики предикатов первого порядка. Исследованы различные способы повышения эффективности вывода и возможности по внесению в него параллелизма. Разработан метод параллельного вывода с фиктивными переменными. Так как метод с фиктивными переменными избегает худших проблем экспоненциального роста числа экземпляров, связанных с у-правилом, он страдает от сложности процесса унификации. Известно, что унификация является достаточно дорогой и затратной операцией. Несмотря на это, параллельный метод аналитических таблиц с фиктивными переменными показал свою
Литература
1. Bonacina M. P. A Taxonomy of parallel strategies for deduction // Ann. of Math. and Artificial Intell., 2000. Vol. 29. No. 1-4. P. 223-257.
2. Вагин В. Н., Головина Е. Ю., Загорянская А. А., Фомина М. В. Достоверный и правдоподобный вывод в ителлектуальных системах // Под ред. В. Н. Вагина, Д. А. Поспелова. - М.: Физматлит, 2008.
712 с.
3. Johnson R. Parallel analytic tableaux systems: Submitted for the degree of Doctor of Philosophy, 1996. 372 p.
4.SmullanR.V. First-order logic. - Berlin/Heidelberg/New York: Springer-Verlag, 1968. 158 p.
5. Bibel W. Automated theorem proving. 2nd ed. - Vieweg, 1987.
6. FittingM. First-order logic and automated theorem proving. - N. Y.: Springer-Verlag, 1990. 511 p.
7. Beckert B., Hahnle R. Analytic Tableaux // Automated deduction: A basis for applications. Vol. 1.
Chapt. 1. - Springer Verlag, 1998. P. 9-38.
эффективность в задачах практической сложности [3]. Были введены модификации параллельного вывода, использующие две стратегии поиска решения: поиск «только в ширину» и поиск «только в глубину».
Если системы, использующие стратегию поиска «только в ширину», ограничены размерами памяти, то в системах со стратегией поиска «только в глубину» на первый план выдвигается ограничение по времени. Многочисленные эксперименты [3, 6] показали преимущество стратегии поиска «только в глубину», хотя некоторые исследователи настаивают на продолжении изучения стратегии поиска «только в ширину», особенно в системах, содержащих операцию равенства.
*
*
*