УДК 519.8
Л. А. колоколов
Д. И. ЯГОФАРОВА А. Н. ТЮРЮМОВ
Омский филиал Института математики им. С.Л. Соболева СО РАН
Омский государственный университет
РАЗРАБОТКА АЛГОРИТМОВ ДЛЯ ЗАДАЧИ ВЫПОЛНИМОСТИ И НЕКОТОРЫХ ЕЕ ОБОБЩЕНИЙ С ИСПОЛЬЗОВАНИЕМ ПЕРЕБОРА ¿-КЛАССОВ
В данной работе предлагаются точные алгоритмы решения известной задачи выполнимости логической формулы, основанные на моделях целочисленного линейного программирования и методе перебора ¿-классов. Рассмотрено их применение в алгоритмах локального поиска для задачи максимальной выполнимости. Приводятся результаты экспериментальных исследований.
Введение
В дискретной оптимизации и теории сложности большую роль играют задача выполнимости логической формулы, атакже ее обобщение — задача максимальной выполнимости. Многие задачи теории графов, теории расписаний могут быть сформулированы как задача выполнимости [9]. Логические ограничения возникают также в задачах управления, планирования, проектирования различных систем [6,9].
Одним из основных направлений исследований этих задач является разработка точных и приближенных алгоритмов их решения [9, 12]. В [ 1,3-5, 11 ] и других работах отражены исследования задач на основе моделей целочисленного линейного программирования (ЦЛП) и метода /.-разбиения. Для решения задачи выполнимости пред/южен специальный алгоритм перебора ¿-классов ЬСЕ (4,5]. Вычислительный эксперимент показал целесообразность его применения в гибридных алгоритмах для различных обобщений задачи выполнимости. В частности, ЬСЕ используется в алгоритме точного решения невзвешенной задачи максимальной выполнимости [4,5], атакже в алгоритмах для задачи проектирования [6].
В данной работе приводится описание алгоритма ЬСЕ, а также некоторых его модификаций, обсуждаются результаты экспериментальных исследований, проведенных с использованием электронной библиотеки 5АШВ [13]. Кроме того, рассматриваются алгоритмы локального поиска для решения задачи максимальной выполнимости, основанные на сведении к конечной последовательности задач выполнимости, для каждой из которых применяется ЬСЕ. Идея таких алгоритмов была предложена в [10], результаты вычислительного экспериментов указывают на перспективность развиваемого подхода.
1. Постановки задач
Пусть хх,...,хп - переменные, принимающие значение истина или ложь. Под литералом понима-
ется либо переменная Xj, либо ее отрицание х l. Рассмотрим логическую формулу
/Г = С1 лС2 д...лС„,
представляющую собой, конъюнкцию формул (скобок) С(, i = ],..., т , каждая из которых является дизъюнкцией литералов. В задаче выполнимости (SAT) требуется определить, выполнима ли формула F, т.е. существует ли такой набор значений переменных, при котором Fпринимает значение истина. Известно, что эта задача является NP-полной, а в случае, когда каждая скобка содержит не более двух литералов, она полиномиально разрешима [9].
Пусть скббки С,,...,Ст имеют положительные веса с,,...,ст . Задача максимальной выполнимости (MAX-SAT) состоит в отыскании набора значений переменных, при котором суммарный вес выполненных скобок будет наибольшим. Эта задача является NP-трудной, даже если каждая скобка в формуле содержит не более двух литералов.
Для разработки алгоритмов решения задач SAT и MAX-SAT используются модели ЦЛП. Введем булевы переменные у1,...,уЛ такие, что у. соответствует переменной Xj,&(l- уj) —ее отрицанию. Условие выполнимости логической формулы F эквивалентно существованию решения системы:
£ уj - X л * hqi, /=1,...,«, (и
1 е с; j ч С,"
0<^<1, 7 = 1,-.и.
7 = 1,
(2)
(3)
У, eZ,
где С~ w С* — множества индексов переменных, входящих в скобку С, с отрицанием и без него соответственно. Модель ЦЛП для задачи MAX-SAT имеет вид: m
/ = £c,z,-> max, (4'
I Ч' ' = 1.-.'". (5)
1 е С," } Е С,+
0<^ <1, ^.ег, j = l,...,n, (6)
0<г,<1, I = 1...../я . (7)
Здесь вспомогательные булевы переменные г, соответствуют скобкам формулы. Если в допустимом решении задачи (1)-(4) для некоторого ;' имеет место г1. = 1 , то формула С, принимает значение истина. Оптимальное значение целевой функции равно максимальному суммарному весу выполненных скобок.
2. Алгоритм перебора 1-классов для задачи выполнимости
Введем необходимые определения и обозначения. Точки х,уеК" (х У у ) называются Ь-эквивалент-ными, если не существует отделяющей их точки г е 2", т.е. такой, что выполняется х УгУу . Здесь >- — знак лексикографического сравнения, а запись х У У означает, что либо х У у , либо х = у . Такое отношение порождает разбиение любого множества на непересекающиеся классы эквивалентности, которые называются ¿-классами.
Соответствующее фактор-множество X / Ь называется ¿-разбиением множествах. Указанное разбиение обладает рядом полезных свойств [2], применяемых при разработке и исследовании алгоритмов целочисленного программирования, в частности, алгоритмов перебора 1-классов.
В работе также используется лексикографическое сравнение множеств. Пусть Xа Я" . Будем считать, что X >- У , если для любых х&Х и у е У выполняется х У у .
Для построения алгоритма решения задачи выполнимости рассмотрим следующую лексикографическую задачу ЦЛП:
найти у = 1ехтах(Л/ г\ 2"), (8)
где М — многогранник, определяемый системой ограничений (1), (2). Важную роль в исследовании задачи (8) и методов ее решения играет множество
М5 = | у' еМ: у'у у для всех у е {М г\2") |,
которое называется верхним дробным накрытием задачи (8). Фактор множество М? /Ь называется верхним Ь-накрытием. Аналогично можно рассмотреть нижнее дробное накрытие М" и нижнее {.-накрытие М? / Ь для следующей задачи:
найти у* = 1ехтт(М Г)2") . (9)
Отметим, что если М п 2" = 0, то М* = М? = М .
Выделение этих частей релаксационного множества задачи связано с тем, что в некоторых методах целочисленного программирования (алгоритмах отсечения, перебора ¿-классов) происходит последовательное исключение точек из М? или М" ,т.е. эти методы можно рассматривать как определенные способы "снятия" дробных накрытий.
Основной шаг метода перебора 1-классов для задачи (8) заключается в переходе от одного класса из М? / Ь кдрутомув порядке лексикографического убывания. В процессе перебора порождается последовательность точек уе , которые принадлежат различным ¿-классам. В отличие от метода перебора ¿-классов для общей задачи ЦЛП поиск представителей У указанных классов осуществляется
комбинаторно без решения задач линейного программирования, Это возможно благодаря следующему свойству [3]: в каждом ¿-классе многогранника М содержится полуцелочисленная точка, т.е. точка со значениями координат из множества {0,-^,1}.
Приведем описание разработанного нами алгоритма перебора ¿-классов для задачи выполнимости (алгоритм ЬСЕ), который за конечное число шагов либо находит лексикографически максимальный набор, выполняющий формулу, либо указывает на ее невыполнимость.
Предполагается, что перед началом работы алгоритма формула не содержит единичных скобок, т.е. скобок вида Х] или . В противном случае число переменных и скобок можно сократить путем присвоения таким переменным соответствующих значений.
В алгоритме ЬСЕ используется процедура упрощения формулы, которая включает следующие основные преобразования:
• если найдена скобка х], то исключаем из формулы литерал х] и скобки, содержащие литерал х]; переменной Уj "автоматически" присваиваем значение 1;
• если найдена скобка х], то исключаем из формулы литерал и скобки, содержащие литерал х,; переменной у1 "автоматически" присваиваем значение 0;
• в ходе упрощения проверяется наличие единичных скобок х} и Х} для некоторого у; существование такой пары скобок означает, что получено противоречие.
Упрощение продолжается до тех пор, пока в текущей формуле имеются единичные скобки.
Пусть верхнее ¿-накрытие задачи (8) состоит из классов У1,Уг,...,Ур , причем У, У У2 У... У Ур У у', где у — лексикографически максимальное решение (если оно существует). Поиск представителей ¿-классов в алгоритме ЬСЕ осуществляется с помощью специальной комбинаторной процедуры, подробное описание которой содержится в [5].
Алгоритм 1,СЕ
Шаг 0 (поиск представителя первого Ь-класса). Находим полуцелочисленную точку е У] .Переходим к шагу 1 первой итерации.
Итерация! (/> 1).
Шаг 1. Начинаем с точки ум =
—¡Уп})'гАе а!'} е {0,1} , / = 1,...,5-1, - зафиксированы; 0, 1 1}, > = л+'1,...,и.
Если скобки отсутствуют, то полагаем у(/) = у"] и переходим на шаг 4.
Иначе выполняем следующее.
Первую дробную координату у^ округляемдоО. Выполняем процедуру упрощения формулы. В ходе этого преобразования некоторые координаты у1р (] = 5 + 1) "автоматически" примут значения 0 или 1. Обозначим полученную точку у(,). После упрощения формулы возникает один из случаев:
• все скобки исключены. Рассматривая точку у(1), переходим на шаг 4;
• скобки остались, противоречие не обнаружено. Переходим на шаг 2;
• обнаружено противоречие. Возвращаемся к точке у(,). Переходим на шаг 3.
Среднее время решения для каждой серии, с
Таблица 1
Серия Число переменных в формуле Число скобок в формуле Гип формул LCE S, + LCE S, + LCE Sj + LCE
uf 75 75 325 S 0,033 0,002 0,005 0,001
uuf 75 75 325 и 0,070 0,009 0,011 0,003
uf 100 100 430 S 0,335 0,020 0,040 0,01.3
uuf100 100 43С и 0,967 0,085 0,07? о,о:.4
uf 125 125 538 S 4,801 0,148 0,387 0,076
uuf125 125 538 и 10,777 C..S31 0,511 0,161
uf 150 150 645 S 59,648 0,62'" 1,552 0,282
uuf150 150 645 и 134,878 2,615 2,64!) 0,772
uf 175 175 753 S 548,451 4,У57 10010 !,5ri7
uuf 175 175 753 и 167ЛЭ06 14.601 16,855 3,599
uf 200 200 86G S > 10000 24,678 46,810 6,136
uuf200 200 1 860 и | > 100С0 90,637 98,779 14,877
Шаг 1. Находим полуцелочисл».нную точку ум) е у^ Переходимнашш' 1 итерации (/ +1),
ШагЗ. Среди координат вектора ищем максимальную по номеру координату =1 .которой это значение не было присвоено "автоматически" (р< 5). Возможны случаи:
• такая координата существует, тогда продолжаем просматривать вектор У'*. Если после назначения а^ = 1 какой-то переменной было присвоено значение 0 или 1, то меняем его на |. Значение координаты с номером р уменьшаем до у . В результате получаем точку у(<+1) е и переходим на шаг 1 итерации + 1);
• такой координаты не существует. В этом случае алгоритм завершает работу: формула невыполнима.
Шаг 4 (заключительный). Алгоритм завершает работу: формула выполнима. Оптимальное решение у строим из текущего вектора у(1), заменяя дробные значения координат на 1.
Таким образом, алгоритм завершает работу в двух случаях: если не удается найти очередной ¿-класс или если найдено оптимальное решение задачи (8). В последнем случае алгоритм переходит на заключительный шаг, где оставшимся переменным присваиваются значения, равные 1. Следует отметить, что указанным переменным можно произвольным образом присвоить булевы значения. Это дает множество различных допустимых решений задачи (8).
Аналогичный алгоритм перебора ¿-классов (алгоритм ЬСЕ 1) разработан и для задачи (9), который находит лексикографически минимальный набор, выполняющий формулу (если он существует).
3. Результаты вычислительного эксперимента
Экспериментальные исследования проводились на задачах из специализированной электронной библиотеки БАТЫВ и других тестовых примерах. Основ-
ная часть расчетов выполнена на задачах из класса Uniform Random-3-SAT. Формулы данного класса сгенерированы случайным образом, все скобки содержат по три литерала. Нами были рассмотрены 10 серий, каждая из которых содержит по 100 задач. Результаты эксперимента отражены в таблице 1, тип формул в каждой серии указан с помощью сокращений: S — формулы выполнимые, U — невыполнимые.
Известно, что упорядочение переменных существенно влияет на мощности ¿-накрытий и, следовательно, на эффективность алгоритмов перебора L-классов. Нами предлагаются три варианта предварительной сортировки переменных задачи. Обозначим через a j (fl.) число вхождений литерала х( (соответственно X ) в формулу. Перед началом работы алгоритма переменные упорядочиваются следующим образом:
сортировка S, — по невозрастанию значений а у,
сортировка S2 — по невозрастанию значений 0j;
сортировка S3 — по невозрастанию значений
+ fij)-
В табл. 1 приведено среднее время решения задач алгоритмом LCE для исходного упорядочения и после применения указанных сортировок. Все сортировки значительно сократили время решения задач алгоритмом LCE. Лучшие результаты показала сортировка S3. Задачи с невыполнимыми формулами оказались заметно труднее, чем задачи для выполнимых формул. Это связано с тем, что дробное накрытие задачи для невыполнимой формулы совпадает со всем многогранником.
Серии задач для выполнимых формул были решены также алгоритмом LCE 1, который перебирает ¿-классы из нижнего ¿-накрытия. В ряде случаев алгоритм LCE 1 оказался быстрее, чем LCE, в ряде случаев -наоборот. На рис. 1 изображены результаты работы 2-х алгоритмов на 25 задачах из серии uf 175 (примеры с номерами uf 175-051 - uf 175-075). Если решать те же задачи двусторонним перебором ¿-классов, то время решения существенно сократится, что показано на рис. 2.
s:
0 u>
1
2500 2000 1500 1000 500
I
I ■
Lid 4 и 1 л Ii п. 1 IfkJ I
I_________
I 2 3 4 5 6 7 g 9 )0 M 12 I) 14 IS 16 17 IS 19 10 2t 22 U 24 25
0LCE BLCE1
Рис. 1. Время работы двух алгоритмов на задачах серии uf 175, с
ilce + lce 1
Рис. 2. Наименьшее время работы, с
Результаты вычислительного эксперимента показали перспективность применения алгоритмов перебора ¿-классов для решения задачи выполнимости, а также целесообразность их использования в гибридных алгоритмах для различных обобщений задачи выполнимости. В частности, ЬСЕ используется в алгоритме точного решения невзвешённой задачи максимальной выполнимости [4, 5], а также в программном комплексе для эскизного проектирования одежды [6]. В следующем разделе рассматривается применение алгоритма ЬСЕ для приближенного решения задачи максимальной выполнимости.
4. Алгоритмы локального поиска для задачи максимальной выполнимости
Для решения задачи максимальной выполнимости существует значительное число алгоритмов локального поиска, которые отличаются друг от друга видом окрестностей и некоторыми процедурами [12]. В этих алгоритмах поиск решения осуществляется в пространстве переменных дс,,..., хя .В работах [7,10] предложено вести поиск локального оптимума в пространстве переменных г1,...,гт , соответствующих скобкам формулы.
Определим окрестность 0,р(г) текущей точки г радиуса р :
1)2 е в,(р;
2) г е Qp (?), если расстояние Хэмминга I) < р и выполнено неравенство /(г) > /(г).
В алгоритмах используется подмножество £?(2) ^ (2Р (?), удовлетворяющее некоторым условиям (в зависимости от конкретного алгоритма). Алгоритмы включают следующие основные процедуры:
1) поиск начальной точки с помощью некоторой эвристики;
2) просмотр окрестности 6(2);
3) переход к новой окрестности.
Отметим ряд особенностей этих процедур, В процессе перебора точек окрестности мы решаем задачу выполнимости для каждой точки г' е (Э^г) . Это осуществляется следующим образом. Из формулы Р строим формулу р', включая в нее все скобки С,, I такие что г' = 1. Решаем задачу выполнимости для р'
алгоритмом LCE. Если найден набор х', выполняющий данную формулу, то, подставляя х' в F, вычисляем соответствующую точку z":
il, если С выполнена;
0, в противном случае,
Лучшая среди таких точек (по значению целевой функции) принимается за центр новой окрестности. Процесс решения останавливается, если в текущей окрестности не найдено точки, улучшающей значение целевой функции. Отметим, что в ряде случаев в процессе просмотра окрестности алгоритмом LCE приходится решать достаточно большое количество задач для невыполнимых формул.
Нами исследовались алгоритмы LSI и LS2, которые отличаются друг от друга видом окрестностей Q{z). В первом алгоритме Q(z) включает лишь одну точку z, 1Ф1 , для которой формула выполнима (точек, соответствующих невыполнимым формулам, может быть много). Во втором алгоритме Q(z) совпадает с Qp(z).
Оба алгоритма опробованы в вычислительном эксперименте, который проводился на задачах для невыполнимых формул из библиотеки SATLIB и на других тестовых примерах. Начальная точка генерировалась случайным образом, окрестности Qp(z) рассматривались для р< 2 . Во многих случаях были найдены оптимальные решения задач; относительная погрешность получаемых решений в среднем не превышала 1%. Поиск по алгрритму LSI естественно завершался заметно быстрее, чем по алгоритму LS2, однако LS1 оказался несколько хуже по точности получаемых решений.
Для ускорения алгоритма LS2 время работы алгоритма LCE ограничивалось сверху величиной Т. Если за время Т решение текущей задачи выполнимости не было найдено, то процесс применения алгоритма LCE завершался.
В целом вычислительный эксперимент показал эффективность использования предложенных алгоритмов локального поиска для решения задачи максимальной выполнимости и необходимость продолжения работы в этом направлении.
Проведенные исследования указывают на целесообразность применения целочисленного программирования и метода перебора L-классов для разработки алгоритмов точного и приближенного решения задачи выполнимости и максимальной выполнимости.
Библиографический список
1. Адельшин A.B. Исследование задач максимальной и минимальной выполнимости с использованием ¿-разбиения / A.B. Адельшин //Автоматика и телемеханика. — 2004. — №3. — С.35-42.
2. Колоколов A.A. Регулярные разбиения и отсечения в целочисленном программировании / A.A. Колоколов // Сиб. журнал исследования операций. — 1994. - №2. - С. 18-39.
3. Колоколов A.A., Адельшин A.B., Чередова Ю.Н. Применение ¿-разбиения к исследованию некоторых задач выполнимости / АА Колоколов, AB. Адельшин, ЮЛ. Чередова // Труды XII Байкальской межд. конференции. - Иркутск, 2001. - Т. 1. - С. 166-172.
4. Колоколов A.A., Адельшин A.B., Ягофарова Д.И. Алгоритмы лексикографического перебора для решения задачи выполнимости и некоторых ее обобщений / А А Колоколов, AB. Адельшин, Д.И. Ягофарова // Труды XIII Байкальской международной школы-семинара. - Иркутск. 2005.- Т. 1. - С. 503 - 508.
5. Колоколов А.А., Адельшин А.В., ЯгофароваД.И. Решение задач выполнимости и некоторых ее обобщений с использованием метода перебора L-классов / АА. Колоколов, А.В. Адельшин, Д.И. Ягофарова // Прикладная математика и информационные технологии: Сб. науч. и метод, трудов. / Под ред. А. А Колоколова. -Омск: Иэд-во ОмГТУ, 2005. - С. 68 - 79.
6. Колоколов АА., Нагорная З.Е., Гуселетова О.Н., Ярош А.В. Задачи дискретной оптимизации и программный комплекс для эскизного проектирования одежды / АА Колоколов, З.Е. Нагорная, О.Н. Гуселетова, А.В. Ярош // Труды XIII Байкальской международной школы-семинара. - Иркутск. 2005. — Т. 1. - С. 509-514.
7. КолоколовА.А.,ЯгофароваД.И., АдельшинАВ.,Тюрюмов А Н. О некоторых алгоритмах локального поиска для решения задачи максимальной выполнимости / А.А. Колоколен, Д.И. Ягофарова, АВ. Адельшин, АН. Тюрюмов //Труды 37-й Региональной молодежной конференции. - Екатеринбург, 2006. - С 382 -385.
8. Cook S.A. The complexity of theorem-proving procedure / S.A. Cook /'/ Proc. 3" Annual ACM Symposium on the Theory of Computing, 1971—P. 151-159.
9. Gu J., Purdom P., Franco J., Wah В Algorithms for the Satisfiability ( SAT | Problem: A Survey / J. Gu, P. Purdom, J. Franko, Л Wah. // DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 1996. - 131 p.
10. Kolokolov A., AdelshinA., Yagofarova D. Locals^rch algorithms for the MAX SAT problem based on L-class enumeration / A. Kolokolov, A. Adelshin, D. Yagofarova. // Extended Abstracts of 16"; Mini Euro Conference on VNS. Tenerife (Spain), 23-25 November 2005. P 117- 118.
11. Kolokolov A., Yagofarova D., Tyuryumov A. Development of L-class Enumeration Algorithms lor Satisfiability Problem / A. Kolokolov, D. Yagofarova, A. Tyuryumov // Annual International Conference of the German Operation Reseach Society. Bremen, 2005 - P. 107- 108.
12. StblzleT., Hoos H., Roli A A review of tlK literature on lo^al search algorithms for MAX-SAT // Technical Report A'. DA 01 02, Darmstadt University of Technology, Computer Science Department, Intellects Group, 2001.21 p.
13. www.cs.ubc.ca/-hoos/SATI.IB/benchm.htmi.
КОЛОКОЛОВ Александр Александрович, доктор физико-математическьх наук, профессор, заведующий "лабораторией дискретной оптимизации Омского филиала Института математики им. С Л.
Соболева СО РАН.
ЯГОФАРОВА Дарья Ивановна, ассист :нт кафедры прик жадном и вычислительной математики Омского государственно! ■; университета, ТЮРЮМОВ Алексей Николаевич, аспирант кафедры прикладной и вычислительной математики Омского государственного университета.
Поступила в редакцию 09.06.06. © Колоколов А. А., Ягофарова Д. И., Тюрюмов А. Н.
удк"» 3 С. А.КОРНЕЕВ
И. В. КРУПНИКОВ С. Н. ПОЛЯКОВ В. В. ШАЛАЙ
Омский государственный технический университет
ОАО «Сибнефтетранспроект»
МАТЕМАТИЧЕСКОЕ (КОМПЬЮТЕРНОЕ) МОДЕЛИРОВАНИЕ ПОВЕДЕНИЯ СТАЛИ 19Г ПРИ ПРОСТОМ И СЛОЖНОМ НАГРУЖЕНИЯХ_
В статье на примере стали 19Г проанализировано поведение упругопластических материалов при простом и сложном нагружениях. Методом компьютерного моделирования подтверждены два физических положения о свойствах ранее предложенной мезо-механической модели. Макромеханические соотношения приведены к виду, приспособленному для проведения численных расчётов. Даны практические рекомендации.
Введение
Для учёта поликристаллического строения металлов и сплавов в [ 1,2] предложена двухуровневая математическая модель изотропных упругопластических материалов, в которой элементарный макромехани-
ческий объём тела представлен (на мезоуровне) как совокупность структурных элементов с одинаковыми упругими свойствами и разными пределами текучести. Для идентификации макромеханической и мезо-механической моделей в [3] разработан расчётно-экс-периментальный метод определения материальных