Научная статья на тему 'Ускорение алгоритмов логического вывода на ограничениях'

Ускорение алгоритмов логического вывода на ограничениях Текст научной статьи по специальности «Математика»

CC BY
197
116
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГЕБРА КОРТЕЖЕЙ / ЛОГИКО-СЕМАНТИЧЕСКИЙ АНАЛИЗ / ПРОГРАММИРОВАНИЕ В ОГРАНИЧЕНИЯХ / ЗАДАЧА УДОВЛЕТВОРЕНИЯ ОГРАНИЧЕНИЙ / CONSTRAINTS РROGRAMMING / N-TUPLE ALGEBRA / LOGICAL-SEMANTIC ANALYSIS / OONSTRAINT SATISFACTION PROBLEM

Аннотация научной статьи по математике, автор научной работы — Зуенко Александр Анатольевич

В статье предлагается метод ускорения алгоритмов, применяемых при решении задач удовлетворения ограничений. Многие из упомянутых задач можно свести к поиску выполняющих подстановок некоторого конечного предиката. Метод опирается на ортогонализацию дизъюнктивных нормальных форм конечных предикатов и использует разработанные автором эвристики.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Accelerated algorithms of logical inference on constraints

In the paper we propose a method of acceleration algorithms applied to solving constraint satisfaction problems. A lot of these problems could be reduced to finding of satisfying substitutions for a finite predicate. The method is based on the orthogonalization of the disjunctive normal form of finite predicate and uses heuristics developed by the author.

Текст научной работы на тему «Ускорение алгоритмов логического вывода на ограничениях»

А.А. Зуенко

ФГБУН Институт информатики и математического моделирования технологических процессов КНЦРАН

Кольский филиал ПетрГУ

$

УСКОРЕНИЕ АЛГОРИТМОВ ЛОГИЧЕСКОГО ВЫВОДА НА ОГРАНИЧЕНИЯХ

Аннотация

В статье предлагается метод ускорения алгоритмов, применяемых при решении задач удовлетворения ограничений. Многие из упомянутых задач можно свести к поиску выполняющих подстановок некоторого конечного предиката. Метод опирается на ортогонализацию дизъюнктивных нормальных форм конечных предикатов и использует разработанные автором эвристики.

Ключевые слова:

алгебра кортежей, логико-семантический анализ, программирование в ограничениях, задача удовлетворения ограничений.

A.A. Zuenko ACCELERATED ALGORITHMS OF LOGICAL INFERENCE ON CONSTRAINTS

Abstract

In the paper we propose a method of acceleration algorithms applied to solving constraint satisfaction problems. A lot of these problems could be reduced to finding of satisfying substitutions for a finite predicate. The method is based on the orthogonalization of the disjunctive normal form of finite predicate and uses heuristics developed by the author.

Keywords:

n-tuple algebra, logical-semantic analysis, constraints рrogramming, oonstraint satisfaction problem.

Введение

В современном программировании можно выделить несколько основных парадигм: императивное или алгоритмическое программирование, логическое программирование, функциональное программирование и др. Важное место в этом ряду занимает программирование в ограничениях (constraint programming) [11-

Программирование в ограничениях как самостоятельное научное направление сложилось в конце 60-х - начале 70-х годов прошлого века. Примечательно, что первыми приложениями были задачи обработки изображений и параметрического моделирования пространственно-двумерных сцен. С тех пор направление существенно эволюционировало, охватывая новые классы задач, начиная от решения судоку и ребусов и заканчивая решением

* Работа выполнена при финансовой поддержке РФФИ (проекты №№ 11-08-00641, 12-07-00550-а, 12-07-00689-а, 13-07-00318-а), ОНИТ РАН (проект 2.3 в рамках текущей Программы фундаментальных научных исследований) и Президиума РАН (проект 4.3 Программы № 16).

систем линейных уравнений и задач искусственного интеллекта, и выдвигая новые подходы к их решению. Например, в [2] рассматриваются задачи маршрутизации перемещений с ограничениями в виде условий предшествования, причем допускаются также ограничения других типов, диктуемые особенностями прикладных задач. В качестве прикладных задач там разбирается задача, связанная со снижением облучаемости при работе в радиационных полях, и задача листовой резки деталей на станках с числовым программным управлением.

Семантически программирование в ограничениях отличается от традиционного логического программирования в первую очередь тем, что исполнение программы рассматривается не как доказательство утверждения, а строится как нахождение значений переменных. При этом система программирования в ограничениях, как правило, стремится сократить перебор с целью минимизации отката в случае неуспеха.

Для ускорения вычислительных процедур могут быть использованы различные методы, в частности эвристические. В данной работе рассмотрен алгоритм ортогонализации, помогающей снизить трудоемкость алгоритмов логического анализа. Был использован математический аппарат - алгебра кортежей (АК), который относится к классу булевых алгебр [3, 4] и позволяет реализовать алгебраический подход к логическому анализу в системах искусственного интеллекта [5, 6, 7, 8].

Постановка задачи программирования в ограничениях

В последние годы наблюдается ренессанс идей логического программирования в ограничениях в таких актуальных научных областях и дисциплинах, как интеллектуальные системы принятия решений, компьютерная графика, экономические модели, системы автоматизированного проектирования, информационные системы, семантический поиск данных, верификация и тестирование программного обеспечения, системы коллективной инженерии.

Задача удовлетворения ограничений (сош^а^ satisfaction problem, CSP) может быть определена множеством переменных X1, X2,..., Xn и множеством ограничений С1, С2, ..., Cm [1]. Каждая переменная X имеет непустую область определения Д-. Каждое ограничение С затрагивает некоторое подмножество переменных и задает допустимые комбинации значений для этого подмножества. Решением задачи CSP называется такое присваивание значений всем переменным {X;=v;, ., Xn=vn }, которое удовлетворяет всем ограничениям.

Многие задачи CSP характеризуются тем, что в них используются переменные, которые являются дискретными и имеют конечные области определения. К числу таких задач относится задача раскраски карты (раскраски графа). Также к категории задач с конечными областями относятся булевы задачи CSP, в которых переменные принимать значения либо истина, либо ложь. Булевы задачи включают в качестве частных случаев некоторые NP--полные задачи, такие как 3SAT [1].

Часто CSP решаются с помощью графов ограничений [1]. В настоящей работе рассматривается применение матрицеподобных вычислений в тех задачах программирования ограничений, где переменные дискретны и определены на конечных множествах значений (конечных доменах). По сути,

решение CSP в этом случае сводится к определению множества выполняющих подстановок конъюнктивной нормальной формы (КНФ), но не булевой функции, а конечного предиката. Матрицеподобное представление таких КНФ и специализированные методы ускорения вычислительных процедур [3, 4] позволяют на практике получать требуемые решения за приемлемое время.

В АК конечные предикаты можно сжато представить с помощью двух типов структур: С-систем и ^-систем. Они формируются в виде матриц из подмножеств доменов атрибутов, называемых компонентами. В их число входят две фиктивные компоненты: полная компонента (обозначается «*») - это множество, равное домену соответствующего (по месту ее расположения в кортеже) атрибута; пустое множество - 0. В виде ^-систем удобно КНФ конечных предикатов, а в виде С-систем - их дизъюнктивные нормальные формы (ДНФ). В АК процесс поиска выполняющих подстановок некоторой КНФ сводится к преобразованию ^-систем в С-системы.

Преобразование АК-объектов в альтернативные классы

Алгоритм преобразования ^-системы в С-систему является комбинаторным по вычислительной сложности.

Утверждение 1. Каждый С-кортеж (^-кортеж) Р преобразуется в эквивалентную ему диагональную ^-систему (С-систему).

Алгоритмы преобразования С-кортежей и ^-кортежей в альтернативные классы не требуют для своей реализации алгоритмов экспоненциальной сложности. Трудоемкость алгоритмов существенно возрастает при преобразовании в альтернативные классы С-систем и ^-систем.

Утверждение 2. D-система Р, содержащая т ^-кортежей, эквивалентна С-системе, которая равна пересечению т С-систем, полученных с помощью преобразования каждого ^-кортежа из Р в С-систему.

Важность данного утверждения с теоретической точки зрения состоит в том, что она определяет существенную в ряде доказательств и обоснований возможность представить любую структуру АК в виде С-кортежа или С-системы.

Утверждение 3. С-система Р, содержащая т С-кортежей, эквивалентна ^-системе, которая равна объединению т ^-систем, полученных с помощью преобразования каждого С-кортежа из Р в ^-систему.

(а, с} (й } (Ь, й}

0 (а, й} (а, с}

(Ь, с} 0 {Ь}

получим проме-

Рассмотрим преобразование ^-системы Р =

в С-систему. Преобразуя каждый ^-кортеж в С-систему жуточный результат:

(а, с} * *

1. “ ) (й} * * (а, й} * (Ь, с} * *

Р = * * * (Ь, й} п * * (а,с} п 1 * * Ь} 1

Вычислим пересечение первых двух С-систем (получающиеся при этом пустые С-кортежи, которые затем удаляются из С-системы, здесь и далее для экономии места не показаны):

{а, с} * *

{ } * {а, й} *

* * п

* * {Ь, й} * * {а, с}

{а, с} {а, й} *

{а, с} * {а, с}

* {й} *

* {й} {а, с}

* {а, й} {Ь, й}

Теперь найдем пересечение полученной С-системы с оставшейся:

Р=

{а, с} {а, й } *

{а, с} * {а, с}

* {й} *

* {й} {а, с}

* {а, й } {Ь, й}

п

{Ь,с} * *

* * {Ь}

{с} {а, й } *

{а, с} {а, й } {Ь}

{с} * { а, с}

{Ь, с} {й} *

* {й} {Ь}

{Ь, с} {й} { а, с}

{Ь, с} {а, й } {Ь, й}

* { а, й} {Ь}

Алгоритм преобразования ^-систем в С-системы требует для своего выполнения больших вычислительных ресурсов, так как в общем случае является алгоритмом экспоненциальной сложности. Для систем большой размерности он может оказаться практически нереализуемым. Поэтому его целесообразно использовать по возможности реже, в АК разработаны методы и приемы, позволяющие значительно уменьшить требуемые вычислительные ресурсы для его выполнения. Остановимся на них подробнее, одним из таких методов является ортогонализация.

Ортогонализация

При анализе определенных С-систем можно увидеть, что некоторые пары содержащихся в них С-кортежей имеют непустое пересечение. Иногда это сильно усложняет расчеты. Например, возможны ситуации, когда требуется вычислить общее число элементарных кортежей, содержащихся в таких С-системах - приходиться учитывать все возможные пересечения пар, троек и так далее С-кортежей. Те же трудности возникают, если исследуются метрические свойства АК-объектов, например, их вероятностное представление. Ортого-нализация как раз и предназначена для преодоления этих трудностей.

Кроме того, ортогонализация дает эффективные средства уменьшения трудоемкости алгоритмов преобразования АК-объектов в альтернативные классы, и, в частности, ^-систем в С-системы.

Рассмотрим основные соотношения ортогонализации, используемые в математической логике.

ДНФ называется ортогональной, если любая пара ее конъюнктов не имеет общих выполняющих подстановок. Ортогонализация есть преобразование, переводящее произвольную формулу в эквивалентную ей ортогональную ДНФ.

В основе существующих методов ортогонализации лежит следующее соотношение, полученное П.С. Порецким для формул исчисления высказываний:

Дизъюнкция H\ V Н2 V ... V Hk эквивалентна ортогональной ДНФ вида

(Н\) V (Н1 л Щ V ... V (Н1 л И2 л ... лИк_ л Hk).

С-система называется ортогональной, если пересечение любой пары содержащихся в ней различных С-кортежей равно пустому С-кортежу.

Утверждение 4. ^-кортеж вида ^ Q2 ... Qm.\ Qm[, где Qi- произвольные компоненты, преобразуется в эквивалентную ему ортогональную С-систему:

а * . .. * *

а а . .. * *

а а . .. Qm-1 *

а а . .. Qm-1 Qm

Трудоемкость операции преобразования ^-системы в С-систему можно снизить, преобразуя ^-кортежи исходной системы в ортогональные С-системы.

Рассмотрим пример. Пусть в схеме отношений [XYZ], где X = Y = 2 = {a,b,c,d}, задан ^-кортеж ]{а,с} {d} {b,d}[. Тогда при преобразовании его в ортогональную С-систему получим следующие равенства:

{а, с} * * {а, с} * *

]{а,с} {ё} {Ь,ё}[ = * {С} * = {Ь, С} {С} *

* * {Ь, С} {Ь, С} {а, Ь, с} {Ь, с}

причем вторая С-система ортогональна.

Утверждение 5. Ортогонализация произвольных АК-объектов сводится к ортогонализации эквивалентных им ^-систем (преобразованию ^-систем в ортогональные С-системы). Для этого требуется:

1) выразить исходный АК-объект как ^-систему;

2) представить ^-систему как пересечение ^-кортежей;

3) каждый ^-кортеж преобразовать в ортогональную С-систему;

4) выполнить пересечение промежуточных ортогональных С-систем. Утверждение 6. Если Р и Q - ортогональные С-системы, то пресечение

этих С-систем, либо пусто, либо состоит из одного С-кортежа, либо представляет собой ортогональную С-систему.

Рассмотрим пример ортогонализации для ^-системы:

Р =

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

{а, с} {С} {Ь, С}

0 {а, С} {а, с}

{Ь, с} 0 {Ь}

При преобразовании ^-кортежей в эквивалентные им ортогональные С-системы получим:

Р =

{а,с} *

{Ь, С} {С}

{Ь, С} {а, Ь, с}

{Ь, С}

п

{а, С} *

{Ь,с} {а, с}

п

'{Ь, с}

{а, ё}

{Ь}

Вычислим промежуточные результаты (пустые С-кортежи не показаны):

{а, с} *

{Ь, С} {С}

{Ь, С} {а, Ь, с}

{ а, с} { а, С}

{ а, с} {Ь, с}

{Ь, С} {С}

{Ь, С} {а}

п

{а, С }

{Ь,с} {а,с}

{а, с} *

{Ь, С}

п

{Ь, с} {а, С}

{Ь}

{а, с} { а, С} *

{а, с} {Ь, с} { а, с}

{Ь, С} {С} *

{Ь, С} {а} {Ь, С}

'{с} {а, С } * “

{а} {а, С } {Ь}

{с} {Ь, с} {а, с}

{Ь} {С} *

{С} {С} {Ь}

{Ь} {а} {Ь, С}

{С} {а} {Ь} _

Получен результат, который по размерности незначительно улучшает результат, вычисленный без ортогонализации - матрица С-системы сократилась лишь на одну строчку. Далее будут рассмотрены некоторые другие методы сокращения размерности и трудоемкости вычислений при выполнении этой операции.

Эвристический алгоритм ортогонализации

Прежде чем приступить к изложению предложенного метода, рассмотрим одно важное соотношение, позволяющее во многих случаях существенно сократить перебор при преобразовании АК-объектов в альтернативные классы. Дело в том, что ^-кортеж, содержащий не менее двух непустых компонент, можно представить как ортогональную С-систему не единственным способом. Допустим, даны равенства:

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

" А * * " А * *

]А В С[ = * В * = А В *

* * С А В с

Если в промежуточном АК-объекте переставить местами С-кортежи, то эквивалентность не нарушится, но при ортогонализации после перестановки будет получено другое изображение того же ^-кортежа. В итоге для ^-кортежа ]А В С[формируется совокупность следующих равенств:

" А * * * В * * В * * * С"

]А В С[= * В * = * * С = * В С = А * *

* * С А * * А В С * В *

* * с

А * С .

А В С

Таким образом, если задан ^-кортеж, в котором содержится к непустых компонент, то алгоритм, описывающий получение из этого ^-кортежа всех возможных эквивалентных ему ортогональных С-систем, состоит из трех шагов:

\) перевести ^-кортеж в С-систему Р с к С-кортежами;

2) выбрать произвольную перестановку С-кортежей в Р (число таких перестановок равно к) и записать Р в порядке, соответствующем этой перестановке;

3) для каждой неполной компоненты Рц (/ - номер строки, Ц - номер столбца) преобразованной С-системы Р заменить все фиктивные компоненты

Рт (т>/), находящиеся ниже Рц ее дополнениями Рц .

Если целенаправленно использовать эти варианты преобразования, то можно существенно уменьшить как размерность вычисляемой С-системы путем сокращения числа входящих в нее С-кортежей, так и трудоемкость вычислений за счет того, что в промежуточных вычислениях образуется значительно больше пустых С-кортежей, которые не участвуют в последующих вычислениях. Этот прием особенно эффективен при преобразовании ^-систем в С-системы в рамках исчисления высказываний, но и для более широкого класса АК-объектов он также позволяет иногда получить существенное уменьшение трудоемкости. Для иллюстрации повторим ранее выполненное преобразование ^-системы Р в С-систему, но при этом ^-кортежи преобразуем в ортогональные С-системы иначе:

проведем сорти-

ровку ее столбцов и строк так, чтобы сгруппировать непустые компоненты в

{а, с} {а} {ъ, а}

\. В ^-системе Р[Х\Х2Х3] = 0 {а, а} {а, с}

{Ь,с} 0 {ъ}

верхнем левом миноре логическом матрицы кортежи с ненулевыми компонентами. Для этого переставим строки 1 и 3 местами.

]я й } {й} {а, с}"

2. Получим Р[Х3Х2Х1] = {a,с} ^,й} 0 .

{Ь} 0 {Ь, с}

3. Преобразуем ^-кортежи в эквивалентные им ортогональные С-системы. Получаем:

Р[ХХХі] =

~{Ь, Л} * * 1 * * сз , 1

{а, с} {Л} * п

{а, с} {а, Ь, с} {а, с} {Ь, Л} {а, Л} *

п

п

{Ь} * *

{а, Л, с} * {Ь, с}

4. Вычислим пересечение первых двух С-систем (получающиеся при этом пустые С-кортежи, которые затем удаляются из С-системы, здесь не показаны):

~{Ь, Л} * * {а,с} * * ~{Ь, Л} {а, Л} *

{а, с} {Л} * п * = {а, с} {Л} *

{а, с} {а, Ь, с} {а, с} {Ь, Л} {а, Л} {а, с} {а, Ь, с} {а, с}

Теперь найдем пересечение полученной С-системы с оставшейся:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

~{Ь, Л} {а, Л} * ~ {Ь} {а, Л, с} *і* »і» ' {Ь} { а, Л} *

{а, с} {а, с} {Л} {а, Ь, с} * {а, с} п * * * {Ь, с} = {Л} {а, с} { а, Л} {Л} }} ,с ,с Ь, Ь,

{а, с} {а, Ь, с} {с} ]

Нетрудно убедиться, что итоговая С-система, содержащая четыре С-кортежа, ортогональна, а по составу элементарных кортежей эквивалентна ранее полученной С-системе, содержащей семь С-кортежей. Из примера видно, что суть метода сводится к тому, чтобы максимально увеличить число пустых кортежей, образующихся на первых и промежуточных этапах вычисления, путем соответствующего выбора вариантов ортогонализации ^-кортежей в исходной ^-системе - за счет этого существенно уменьшается число вариантов, подлежащих дальнейшей обработке.

Заключение

В статье предлагается один из методов “вычислительной логики”, направленный на снижение остроты проблемы “экспоненциальной катастрофы” при решении задач удовлетворения ограничений. Особенно продуктивным оказывается постановка и решение практических задач в виде задач удовлетворения ограничений в слабо формализованных предметных областях,

где требуется не только количественный, но и качественный анализ информации. В подобных системах логические модели, описывающие еще до конца не изученные аспекты функционирования системы, органично дополняют аналитические закономерности, уже устоявшиеся для полностью изученных фрагментов системы. Применение представленного метода в таких системах позволяет на практике выполнять теоретически сложные алгоритмы логического анализа за приемлемое время.

Литература

1. Рассел, С. Искусственный интеллект: современный подход. 2-е изд. / С. Рассел, П. Норвиг // пер. с англ.; ред. К.А. Птицына. - М.: Изд. дом «Вильямс», 2006. -1408 с.

2. Ченцов, А.Г. Экстремальные задачи маршрутизации: теория и приложения /А.Г. Ченцов // Шестая Всероссийская мультиконференция по проблемам управления, г. Геленджик, с. Дивноморское, 30 сентября - 5 октября 2013 г.: материалы мультиконференции: в 4 т. - Ростов-на-Дону: Изд-во Южного федерального университета, 2013. -Т.3. - C.213-220.

3. Кулик, Б.А. Алгебраический подход к интеллектуальной обработке данных и знаний / Б.А. Кулик, А.А. Зуенко, А.Я. Фридман - СПб.: Изд-во Политехн. ун-та, 2010. - 235 с.

4. Зуенко, А.А. Матрицеподобные вычисления в задачах удовлетворения ограничений /А.А. Зуенко // Шестая Всероссийская мультиконференция по проблемам управления, г. Геленджик, с. Дивноморское, 30 сентября -5 октября 2013 г.: материалы мультиконференции: в 4 т. - Ростов-на-Дону: Изд-во Южного федерального университета, 2013. -Т.1. - C.30-34

5. Зуенко, А.А. Реализация комбинированных методов логико-семантического анализа с использованием алгебры кортежей / А.А. Зуенко, Б.А. Кулик, А.Я. Фридман // Тринадцатая национальная конференция по искусственному интеллекту с международным участием, г. Белгород, 16-20 октября 2012г.: труды конференции. - Белгород: Изд-во БГТУ, 2012. -Т.2. - С.67-75.

6. Зуенко, А.А. Булевы алгебры как средство интеллектуального анализа систем рассуждений / А.А. Зуенко, А.Я. Фридман, Б.А. Кулик // Интеллектуальный анализ информации ИАИ-2012: сборник трудов XII Международной научной конф. имени Т.А. Таран, г. Киев, 16-18 мая 2012 г.: / гл. ред. С.В. Сирота.

- К.: Просвгга, 2012. - C.70-78.

7. Boris Kulik, Alexander Fridman, Alexander Zuenko. N-tuple Algebra: Providing Clarity by Combining Logical Inference with Defeasible Reasoning // Cybernetics and Systems 2012: Proceedings of Twentieth European Meeting on Cybernetics and Systems Research (EMCSR 2012), 10-13 April, 2012, Vienna, Austria.

- P.315-318.

8. Kulik, B. Logical Analysis of Intelligence Systems by Algebraic Method /B. Kulik, A. Fridman, A. Zuenko // Cybernetics and Systems 2010: Proceedings of Twentieth European Meeting on Cybernetics and Systems Research (EMCSR 2010) Vienna, Austria, 2010. - P.198-203.

Сведения об авторе

Зуенко Александр Анатольевич - к.т.н, научный сотрудник,

е-mail: zuenko @iimm. kolasc.net.ru

Alexander A. Zouenko - Ph.D. (Tech. Sci.), Researcher

i Надоели баннеры? Вы всегда можете отключить рекламу.