ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
УДК 519.854 д. в. АДЕЛЬШИН
А. К. КУЧИН
Омский филиал Института математики им. С. Л. Соболева
СО РАН
АЛГОРИТМЫ
ТОЧНОГО И ПРИБЛИЖЕННОГО РЕШЕНИЯ ЗАДАЧИ МАКСИМАЛЬНОЙ ВЫПОЛНИМОСТИ
В работе рассматривается взвешенная задача максимальной выполнимости логической формулы, заданной в конъюнктивной нормальной форме. Предлагаются комбинаторный алгоритм точного решения указанной задачи и алгоритм локального поиска с переменными окрестностями, основанные на методах целочисленного линейного программирования и ¿-разбиении. В алгоритмах строится последовательность специальных задач выполнимости, которые решаются алгоритмом перебора (.-классов. Приводятся результаты вычислительного эксперимента на различных сериях задач.
Ключевые слова: задача максимальной выполнимости, целочисленное программирование, перебор (.-классов, локальный поиск, переменные окрестности.
Работа поддержана грантом РФФИ (проект 10-01-005981
Введение
Во многих задачах управления, планирования, проектирования и других областях возникают логические ограничения, которые необходимо учитывать в процессе принятия решений. Указанные ограничения часто описываются с помощью логических фор-
мул и приводят к задаче максимальной выполнимости, представляющей собой обобщение известной задачи выполнимости, одной из центральных в теории сложности. Широкое практическое применение этих задач является стимулом для разработки алгоритмов их решения. Обзор алгоритмов для задачи выполнимости представлен в [ 1 ]. В работах [2,3] прово-
дились исследования указанных задач на основе моделей целочисленного линейного программирования (ЦАП) и L-разбиения. Для задачи выполнимости был разработан алгоритм [3, 4], основанный на методе перебора 1-классов [5]. В дальнейшем с его использованием был предложен точный алгоритм для решения невзвешенной задачи максимальной выполнимости. В данной работе описываются точный алгоритм и алгоритм локального поиска с переменными окрестностями для взвешенного варианта этой задачи, которые основаны на лексикографическом переборе булевых векторов и сведении к конечной последовательности специальных задач выполнимости. Приводятся результаты вычислительного эксперимента.
1. Постановка задачи
Рассмотрим постановку задачи выполнимости (SAT). Пусть xlf...r хп — логические переменные, принимающие значение истина или ложь. Подлите-ралом понимается либо переменная х., либо ее отрицание Xj. Пусть логическая формула Fпредставляет собой конъюнкцию формул (скобок) С/г 1=1, ..., Я1, каждая из которых является дизъюнкцией литералов. Требуется определить, выполнима ли формула F, т.е. существует ли такой набор значений переменных, при котором она принимает значение истина. Известно, что данная задача является NP-полной, а в случае, когда каждая скобка содержит не более двух литералов, задача полиномиально разрешима [6].
Важным обобщением задачи SAT является задача максимальной выполнимости (MAX SAT). Пусть каждой скобке С. соответствует вес wi > 0 . Задача состоит в отыскании набора значений логических переменных, при котором суммарный вес выполненных скобок будет наибольшим. Иногда встречается не-взвешенный вариант задачи, в котором все w.= 1. Задачи оптимизации с логическими ограничениями находят применение при решении многих практических задач, в частности, при проектировании изделий сложной структуры [7].
Одним из подходов к решению рассматриваемых задач является использование аппарата ЦАП. Введем булевы переменные у1(...,ул такие, что у. соответствует переменной х., а (1 — У7) — ее отрицанию, т.е. у = 1 тогда и только тогда, когда переменная х. принимает значение истина, j= 1, ..., п. Условие истинности формулы эквивалентно существованию решения системы:
5>у - > 1 - |СГ|, ¿ = l....xnf (1)
;еС,+ jeC-i
О < уj < 1, 7 = 1,...,п, (2)
y,eZ, j = 1,...,л, (3)
где С," и С(+ — множества индексов переменных, входящих в скобку С с отрицанием и без него соответственно, величина | С г | — мощность множества С,". Модель ЦАП для задачи MAX SAT приведена, например, в [2]. С использованием данных моделей в [2,3,8] проводится анализ сложности рассматриваемых задач и предлагаются алгоритмы их точного и приближенного решения.
2. Метод перебора I-классов
Метод перебора L-классов [6] был предложен для решения задачи ЦАП:
/(х)-»тах, хе(Оп2л),
где О. — выпуклое многогранное множество в пространстве Яп. Метод основан на разбиении пространства которое определяется следующим образом. Точки х,у е Ял (х >- у) называются Ь-эквивалент-ными, если не существует отделяющей их точки г е , т.е. такой, что выполняется х > % Ъ У • Такое отношение порождает разбиение любого множества Хс]?Л на непересекающиеся классы эквивалентности, которые называются Ь-классами. Соответствующее фактор-множество Х/Ь называется Ь-разби-ением множества X. Отметим, что каждая точка г е 2" образует отдельный 1-класс, а остальные классы состоят из нецелочисленных точек и называются дробными. Указанное разбиение обладает рядом свойств, которые оказались полезными при разработке и исследовании алгоритмов целочисленного программирования (ЦП) [5].
Рассмотрим задачу ЦП в лексикографической постановке:
найти у' = 1ехтах(М г\гп), (4)
где М — некоторый выпуклый многогранник. Множество
М. ={уеМ: Ууе(Мп7") у У у}
называется дробным накрытием задачи, а МУЬ — ее Ь-накрытием.
Выделение этой части релаксационного множества задачи связано с тем, что в некоторых методах ЦП, основанных на аппарате непрерывной оптимизации, происходит последовательное исключение точек из М, т.е. мощность М. /Ь можно рассматривать как показатель сложности задачи для данных алгоритмов. В алгоритмах отсечения, например, это делается с помощью дополнительных линейных ограничений.
Для описания идеи алгоритма решения задачи выполнимости рассмотрим задачу (4) с многогранником М, определяемым системой ограничений (1) — (2). Пусть ¿-накрытие задачи состоит из классов 7,,^,..,, V , причем V, >- У2 >-... >- Ур >■ у', где у — лексикографически максимальное решение (если оно существует) . Основной шаг метода заключается в переходе от одного класса из МУЬ к другому. Обычно это осуществляется в порядке лексикографического убывания, начиная с лексикографически максимального 1-класса. Алгоритм порождает последовательность точек у[п е М., обладающую свойствами:
— у(1)уу{М\ t = \,...,s-\, Б<р;
— все точки принадлежат различным 1-классам.
Алгоритм завершает работу, если не удается найти
очередной 1-класс. Лучшее из найденных целочисленных решений (если оно существует), является оптимальным. В общем случае для задачи ЦАП переход от одного 1-класса к другому выполняется путем решения некоторого числа задач линейного программирования. Для решения задачи выполнимости поиск представителей у10 указанных классов можно осуществлять, не решая задач линейного программирования, что заметно повышает эффективность алгоритма [4].
В работе [3] приведено подробное описание алгоритма перебора 1-классов ЬСЕ для решения задачи выполнимости. С его использованием в работах [2, 8] предложены точные алгоритмы для решения невзвешенной задачи максимальной выполнимости и алгоритмы локального поиска.
3. Точный алгоритм решения задачи максимальной выполнимости
В данном разделе будет приведено описание точного алгоритма решения взвешенной задачи максимальной выполнимости, который за конечное число итераций находит оптимальное решение задачи. Алгоритм основан на лексикографическом переборе целочисленных векторов и сведении к последовательности задач выполнимости, для решения которых используется алгоритм LCE. По сравнению с алгоритмом из работы [2] для невзвешенной задачи, данный алгоритм содержит дополнительные процедуры, оптимизирующие перебор указанных векторов, сокращая при этом число решаемых подзадач выполнимости.
Пусть формуле F = Q л... л Ст соответствует вектор Z— (Zj,..., ZJ, координаты которого принадлежат множеству {0, 1,2}. Основные процедуры алгоритма заключаются в направленном переборе указанных векторов, каждому из которых соответствует следующая задача: найти такой набор значений переменных, при котором скобки С , для которых Zp = 1, становятся истинными, а скобки Cql для которых Zq = 0, — ложными. Если соответствующая вектору Z задача выполнимости разрешима, будем называть такой вектор выполнимым, иначе — невыполнимым. Отметим, что координаты Z. = 2 используются для обеспечения монотонности лексикографического перебора векторов, с этой целью можно использовать любое значение, большее 1. Пусть все скобки, входящие в формулу, предварительно упорядочены по невозрастанию их весов. При описании алгоритма будем пользоваться следующими обозначениями:
Wq(Z) — суммарный вес всех скобок С. формулы F, для которых Z,. = 0;
Wj (Z) — суммарный вес всех скобок Ci формулы F, для которых Zt— 1;
fmax{z :Z(. ф 2,i = l,...,m}, если Z. ф 2;
Right(Z) = «I '
[0, иначе;
subSAT(F, Z) — функция для решения специальной задачи выполнимости с помощью алгоритма LCE.
Описание алгоритма
Шаг 0. Получаем приближенное решение х задачи каким-нибудь эвристическим алгоритмом. Пусть 7 = /(х) — суммарный вес выполненных скобок формулы F, соответствующий набору х. Полагаем Z = 2, i= 1,..., т, и переходим на шаг 1.
__ т
Шаг 1. Если f , алгоритм завершает работу
ы1
(х — оптимальное решение задачи); в противном случае переходим на шаг 2.
Шаг 2. Если выполняется Wj (Z) < 7, то переходим на шаг 3; в противном случае — на шаг 7.
т
Шаг 3. Если имеет место ^ wi - W0 (Z) < / , то пере-
/=1
ходим на шаг 4; в противном случае — на шаг б.
Шаг4. Пусть ц = min{z | Z, = 0, z = 1 ,...,ш}. Если среди координат Z(,i = ц,...,л7 не более одной, равной 0, то алгоритм завершает работу (х — оптимальное решение задачи); в противном случае — на шаг 5.
Шаг 5. Находим v = max{z|Z(. =0,/ = l,...,m}, к = = шах{/1 Z, = 0, z = l,...,v-l} и 1 = max{z | Z, =1,г = 1,..., к-\}. Полагаем Z = 0, Z. = 2, i = l+1,т и переходим на шаг 2.
Шаг 6. Находим r = Right(Z) и полагаем Zr_
= 0.
Переходим на шаг 2.
Шаг 7.5 = яиЬБаЦР, Z). Если найден выполняющий набор х (б = 0), то обновляем рекордное значение целевой функции 7 := 1(х) и х := х , переходим на шаг 1; в противном случае (бфО) переходим на шаг 8.
Шаг 8. Если \i\Zi = 1, / = 1,...,$} = 0 , алгоритм завершает работу. В противном случае находим номер 1 = = шах{11 Zi — 1, / = 1,..., 5} и полагаем Zl — 0, Z/ = 2, / = ]+ 1,..., та. Переходим на шаг 2.
Комментарий. Если функция subSat находит такой выполняющий набор, при котором скобки Ср №р=\) становятся истинными, а скобки Сд = 0) ложными, то функция принимает значение 0. В противном случае функция принимает такое значение 5, что, если положить Zi = 2, ¡ = я,..., т,то вектор Zостанется невыполнимым.
На рис. 1 изображена блок-схема описанного точного алгоритма.
4. Алгоритм локального поиска с переменными окрестностями
В данном разделе будет приведено описание алгоритма локального поиска с переменными окрестностями решения взвешенной задачи максимальной выполнимости, в котором строится последовательность задач выполнимости, решаемых алгоритмом LCE.
Особенностью данного алгоритма является то, что поиск локальных оптимальных решений ведется в двух различных пространствах переменных. Пусть логической формуле F = С, л... л Ст соответствуют множества векторов X— (Xv ..., Xn), Х} ; е {0,1}, j= 1, п, и Z— (Zv...,Zm), Zi е{0,1}, /= 1, ..., т, таких, что Z = 1, если соответствующая скобка Ci становится истинной и Zt — 0, если соответствующая скобка С становится ложной для текущего вектора X.
Очевидно, что каждому вектору X соответствует единственный вектор Z. Кроме того, нетрудно показать, что если логическая формула, содержащая скобки Ср (при Zp= 1) и отрицания скобок Cq (при Zq = 0) является выполнимой, то текущему вектору Z соответствует хотя бы один вектор X.
Для каждого вектора X (или Z) будем рассматривать различные окрестности Ох (или Oz). В частности, в вычислительном эксперименте в п. 5 применяются окрестности 1 -swap и 1 -flip. Окрестность k-flip вектора X (или Z) — это все вектора X' (или Z'), которые отличаются от вектора X (или Z) не больше, чем к координатами. Окрестность k-swap вектора X (или Z) — это все вектора X' (или Z'), у которых ровно к координат, равных 1, заменены на 0, и ровно к координат, равных 0, заменены на 1.
Далее через /(X) обозначим суммарный вес выполненных скобок на векторе X. А величине g(Z) положим значение f(X), если существует вектор X, соответствующий вектору Z, и 0, в противном случае.
Общая схема алгоритма
Шаг 0. Находим случайным образом начальный вектор Х0, вычисляем Z0 и начальный рекорд 7 = /(Х0) = = g(Z0). Переходим на шаг 1.
Шаг 1. Если выполнен некоторый критерий оста-
новкиили f , алгоритм завершает работу. В про-
тивном случае, переходим на шаг 2.
Таблица 1
Результаты эксперимента для точных алгоритмов
Серия Кол-во задач Размерность пхт WMaxSatz-2.5 WMS
Время (с) Время (с) preLCE LCE
rwms 20 70 х400 18.805 5209.848 >2108 >4106
flat75 20 225x840 37.646 3.176 45 45
flat 100 20 300x1100 109.396 1.494 43 43
jnh 20 100x850 50.835 136.273 >106 55551
uuflOO 20 100x430 13.477 7.353 909 771
uufl25 20 125x538 62.022 181.275 4903 4513
Шаг 2. Выбираем множество X (или Z) и строим некоторую окрестность Ох (или Oz) на данном множестве. Переходим на шаг 3.
Шаг 3. Ищем в текущей окрестности точку X еОх (ZeOz) такую, что выполняется f(X)>f (g(Z)>7). Если такая точка найдена, обновляем рекорд. Переходим на шаг 1.
Комментарий. На шаге 3 просмотр точек окрестности Oz осуществляется путем решения специальных задач выполнимости алгоритмом LCE. В качестве критерия остановки может быть выбрано, например, ограничение по числу итераций алгоритма или по времени работы.
5.0 вычислительном эксперименте
С целью апробации предложенных алгоритмов нами проведены экспериментальные исследования на сериях тестовых примеров из MAX-SAT Evaluation 2009 [9] и примеров, построенных на основе задач выполнимости из известной специализированной библиотеки SATLIB [10].
Результаты вычислений представлены в табл. 1. В эксперименте сравнивается время работы предложенного нами точного алгоритма (WMS) с новым известным алгоритмом WMaxSatz-2.5 [9], основанным на алгоритме ветвей и границ. В алгоритме LCE переменные отсортированы по невозрастанию числа
вхождений их в формулу. Данные сгруппированы по сериям задач. Также для алгоритма WMS приведено число решенных задач выполнимости (LCE) и число применений процедуры упрощения формулы перед решением задачи выполнимости (preLCE). Часто уже на процедуре упрощения формулы удается определить, что формула будет невыполнимой. Отметим, что эксперимент показал конкурентоспособность предложенного точного алгоритма на некоторых сериях тестовых задач, в частности, на семействах flat преимущество алгоритма WMS было значительным (табл. 1).
Кроме того, были реализованы алгоритмы локального поиска с переменными окрестностями в рамках предложенной в п. 4 схемы и был проведен вычислительный эксперимент по сравнению данных алгоритмов. Имеются следующие особенности реализации:
— критерий остановки: ограничение по времени работы алгоритма — 1 с;
— используемые окрестности: \-flip и 1 -swap на множестве X (обозначенные Fxи Sx соответственно) и на множестве Z (обозначенные Fzh Sz);
— выбор окрестности: фиксируется некоторая последовательность окрестностей Ov 02,..., Ог После генерации начальной точки выбирается окрестность Oj. Если на окрестности Oi не был найден новый локальный оптимум, то на следующей итерации выбирается окрестность 0/+/, если оптимум найден —
Таблица 2
Результаты эксперимента для алгоритмов локального поиска
Серия Кол-во задач Размерность nxm Средняя относительная погрешность (%)
Fx Fx Sx FXFZ Fx Sx Fz Fz FZSZ
fbr 9 135x2600 0,001 0,001 0,000 0,001 12,840 22,867
ram 35 91x1365 0,017 0,007 0,013 0,008 0,141 0,429
c-fat 7 42x400 0,000 0,004 0,031 0,000 4,022 6,730
rwms 160 100x850 0,059 0,004 0,055 0,005 8,127 11,974
bf 4 1000x5000 5,257 3,978 4,327 3,529 17,656 17,833
jnh 20 100x850 0,183 0,051 0,023 0,012 1,795 4,265
выбирается Ог Если же в окрестности Ot не найдено нового локального оптимума, генерируется новая случайная точка и на следующей итерации выбирается окрестность О,.
Далее сравниваются алгоритмы, отличающиеся последовательностями окрестностей. При этом в сравнении участвуют как алгоритмы, использующие локальный поиск только на одном множестве (X или Z), так и алгоритмы смешанного типа, использующие локальный поиск на обоих множествах. Сравнение производится по средней относительной погрешности решения (табл. 2).
Эксперимент показал, что на некоторых семействах тестовых задач использование окрестностей смешанного типа позволяет за то же время добиться лучшей точности, чем алгоритмы локального поиска, использующие окрестности только на множестве X. На рассматриваемых сериях наилучшие результаты были получены с использованием последовательности Fx Sx Fz.
Библиографический список
1. Algorithms for the Satisfiability (SAT) Problem: A Survey. / J. Gu [etc. ] // DIMACS Series in Discrete Mathematics and Theoretical Computer Science. - 1997. - P. 19-152.
2. Колоколов, А. А. Алгоритмы точного и приближенного решения задачи максимальной выполнимости / А. А. Колоколов, А. В. Аделынин, Д. И. Ягофарова // III Всероссийская конференция «Проблемы оптимизации и экономические приложения» : материалы конференции (Омск, 11 - 15 июля 2006) / ОФ ИМ СО РАН. -Омск, 2006. - С. 42-46.
3. Колоколов, А. А. Решение задачи выполнимости с использованием метода перебора L-классов / А. А. Колоколов, А. В. Адель-шин, Д. И. Ягофарова // Информационные технологии. — 2009. — №2. - С. 54-59.
4. Kolokolov, A. Analysis and Solving the Satisfiability Problem using L-partition / A. Kolokolov, J. Kallrath, D. Yagofarova // Annual International Conference of the GOR Society «Operations Research» / University of Heidelberg. - Heidelberg, 2003. - P. 128.
5. Колоколов, А. А. Регулярные разбиения и отсечения в целочисленном программировании / А. А. Колоколов // Сиб. журнал исследования операций. — 1994. — №2. — С. 18 — 39.
6. Cook, S. A. The complexity of theorem-proving procedure / S. A. Cook // Proc. 3rd Annual ACM Symposium on the Theory of Computing. - 1971. - P. 151-159.
7. Математические модели и программный комплекс для проектирования эскизов одежды / А. А. Колоколов [и др.] // Прикладная математика и информационные технологии : сб. науч. и метод, трудов / ОмГТУ. - Омск, 2005. - С. 80-98.
8. Kolokolov, A. Local search algorithms for the MAX SAT problem based on L-class enumeration / A. Kolokolov, A. Adelshin, D. Yagofarova // Extended Abstracts of 18th Mini Euro Conference on VNS. - Tenerife (Spain), 2005. - P. 117- 118.
9. Fourth Max-SAT Evaluation. — Режим доступа : http: // www.maxsat.udl.cat/09/ (дата обращения: 03.05.2010).
10. SATLIB — Benchmark Problems. — Режим доступа: http: // www.cs.ubc.ca/-hoos/SATLIB/benchm.html (дата обращения : 03.05.2010).
АДЕЛЫНИН Александр Владимирович, кандидат физико-математических наук, старший научный сотрудник.
КУЧИН Андрей Константинович, аспирант лаборатории дискретной оптимизации. Адрес для переписки: e-mail: [email protected], [email protected]
Статья поступила в редакцию 27.09.2010 г. © А. В. Адельшин, А. К. Кучин
Книжная полка
Письменный, Дмитрий Трофимович. Конспект лекций по высшей математике [Текст]: в 2 ч. / Д. Письменный. - 10-е изд. - М.: Айрис Пресс, 2010. - ISBN 978-5-8112-4000-5. - Ч. 1. - 2010. - 279, [11 с.: рис. - ISBN 978-5-8112-3999-3.
Настоящий курс лекций предназначен для студентов, изучающих высшую математику в различных вузах. Первая часть содержит необходимый материал по девяти разделам курса высшей математики, что изучаются студентами на первом курсе вузов (техникума) — линейная и векторная алгебра, аналитическая геометрия на плоскости и в пространстве, комплексные числа и основы математического анализа (функции, пределы, производная, определенный и неопределенный интеграл, функции нескольких переменных). Изложение теоретического материала по всем темам сопровождается рассмотрением большого количества примеров и задач.