Научная статья на тему 'Исследование задач дискретной оптимизации с логическими ограничениями на основе метода регулярных разбиений'

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

CC BY
514
78
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ЗАДАЧА ВЫПОЛНИМОСТИ / ЛОГИЧЕСКИЕ ОГРАНИЧЕНИЯ / ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ / ПЕРЕБОР L-КЛАССОВ / SATISFIABILITY PROBLEM / LOGICAL CONSTRAINTS / INTEGER PROGRAMMING / L-CLASS ENUMERATION

Аннотация научной статьи по математике, автор научной работы — Колоколов Александр Александрович, Адельшин Александр Владимирович, Ягофарова Дарья Ивановна

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

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

Похожие темы научных работ по математике , автор научной работы — Колоколов Александр Александрович, Адельшин Александр Владимирович, Ягофарова Дарья Ивановна

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

Study of discrete optimization problems with logical constraints based on regular partitions

Some discrete optimization problems with logical constraints are considered, and the possibility of applying these problems in complex products design is investigated. The results of the studying these problems with the use of the integer programming models and regular partitions approach are reviewed. The structure and the complexity of the problems are analysed, and the algorithms for SAT and MAX-SAT problems based on this approach are proposed.

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

2013 Вычислительные методы в дискретной математике №1(19)

ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ В ДИСКРЕТНОЙ МАТЕМАТИКЕ

УДК 519.8

ИССЛЕДОВАНИЕ ЗАДАЧ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ С ЛОГИЧЕСКИМИ ОГРАНИЧЕНИЯМИ НА ОСНОВЕ МЕТОДА

РЕГУЛЯРНЫХ РАЗБИЕНИЙ1

А. А. Колоколов*, А. В. Адельшин*, Д. И. Ягофарова**

* Омский филиал Института математики им. С. Л. Соболева СО РАН, г. Омск, Россия ** Омский государственный университет им. Ф. М. Достоевского, г. Омск, Россия

E-mail: [email protected], [email protected], [email protected]

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

Ключевые слова: задача выполнимости, логические ограничения, целочисленное программирование, перебор L-классов.

Введение

Значительное число исследований в области дискретной оптимизации посвящено задаче выполнимости логической формулы и её обобщениям. Широкое практическое применение этих задач в экономике, управлении, проектировании и других областях является стимулом для разработки алгоритмов их решения. Алгоритмы решения задач, связанных с выполнимостью логической формулы, представлены, например, в [1-4]. Одним из подходов к анализу и решению задач выполнимости и максимальной выполнимости является использование аппарата целочисленного линейного программирования (ЦЛП).

Для анализа задач целочисленного программирования (ЦП), разработки и исследования алгоритмов, основанных на релаксации условия целочисленности, А. А. Колоколовым предложен метод регулярных разбиений [5]. Ранее с помощью этого подхода была исследована сложность решения ряда задач, изучена структура релаксационных множеств, введены новые классы отсечений, построены оценки числа итераций для некоторых известных алгоритмов, проведён анализ устойчивости задач и алгоритмов, разработаны новые алгоритмы.

В работах [6, 7] получен ряд теоретических результатов для задач с логическими условиями. Исследована L-структура многогранников задач выполнимости и максимальной выполнимости. Выделены семейства логических формул, для которых мощности L-накрытий указанных задач растут экспоненциально с увеличением числа пе-

хРабота поддержана грантом РФФИ №10-01-00598.

ременных. Получены оценки числа итераций некоторых алгоритмов целочисленного линейного программирования при решении задач из построенных семейств.

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

1. Задачи с логическими ограничениями

Рассмотрим постановку задачи выполнимости (SAT). Пусть xi,... ,xn — переменные, принимающие значение истина или ложь. Под литералом понимается либо переменная Xj, либо ее отрицание. Пусть логическая формула F представляет собой конъюнкцию формул (скобок) Ci,i = 1,... ,m, каждая из которых является дизъюнкцией литералов. Требуется определить, выполнима ли формула F, т. е. существует ли такой набор значений переменных, при котором F принимает значение истина. Известно, что задача SAT является NP-полной, а в случае, когда каждая скобка содержит не более двух литералов, задача полиномиально разрешима [8]. Многие известные задачи теории графов, построения расписаний, криптографии могут быть сформулированы в виде задачи выполнимости некоторой логической формулы в конъюнктивной нормальной форме.

Важным обобщением задачи SAT является задача максимальной выполнимости (MAX SAT). Предположим, что каждой скобке Ci соответствует неотрицательный вес ci, тогда задача MAX SAT состоит в отыскании набора значений логических переменных, при котором суммарный вес выполненных скобок будет наибольшим. Актуальными также являются постановки так называемых смешанных задач [4, 9], в которых присутствуют два вида логических ограничений — «жёсткие» и «мягкие», причем веса приписаны только «мягким». При этом требуется найти набор значений логических переменных, при котором выполнены все «жёсткие» ограничения, а суммарный вес выполненных «мягких» является наибольшим. Указанные задачи находят применение при решении многих практических задач, в частности в проектировании изделий сложной структуры [9-11].

Перейдём к построению моделей ЦЛП рассматриваемых задач. Введём булевы переменные yi,... ,yn, такие, что yj соответствует переменной Xj, а (1 — yj) —её отрицанию, т. е. yj = 1 тогда и только тогда, когда переменная Xj принимает значение истина. Нетрудно показать, что условие выполнимости логической формулы F эквивалентно существованию решения системы

Е yj — Е yj ^ 1 — |C-1, * =1,...,m; (1)

jec+ jeer

0 ^ yj ^ 1, j = 1 ,...,n; (2)

yj e Z, j = 1,...,Щ (3)

где C— и C+ — множества индексов переменных, входящих в скобку Ci с отрицанием

и без него соответственно; | C— | —мощность множества C—.

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

n

f (y) = yi ^ max или f (y) = yj ^ max, где y = (yi,...,yn). Здесь рассматри-

j=i

вается лексикографическая постановка задачи ЦЛП, т. е. ищется лексикографически максимальный вектор y, удовлетворяющий системе ограничений (1) — (3).

Модель ЦЛП для задачи максимальной выполнимости выглядит следующим образом:

m

Уо = Е CiZi ^ max; (4)

i= 1

Е yj — Е yj + zi ^ |C—|, * = ^...,m; (5)

jeer jec+

0 ^ yj ^ 1, yj e Z j = 1,...,n; (6)

0 ^ zi ^ 1, zi e Z, i = 1,..., m. (7)

Здесь каждой скобке Ci поставлена в соответствие переменная zi, причем в любом допустимом целочисленном решении zi = 1 только в том случае, когда Ci выполнена. Таким образом, оптимальное значение целевой функции равно наибольшему суммарному весу выполненных скобок. Отметим, что если к (4) — (7) добавить ограничения (1), то получим модель ЦЛП для смешанной задачи с «жёсткими» ограничения-

ми (1) и «мягкими» ограничениями (5).

2. Прикладные постановки

Постановки задач с логическими ограничениями могут использоваться при анализе и решении многих прикладных задач. Отметим некоторые из них. В [9, 10] исследуются и решаются задачи проектирования сложных изделий из набора составляющих, работа [12] посвящена задаче формирования производственных групп с учетом межличностных отношений, в [13, 14] решаются задачи логического криптоанализа. Кроме того, большое число приложений задачи выполнимости приведено в обзоре [2].

Остановимся подробнее на задачах проектирования. На основе моделей задач дискретной оптимизации с логическими условиями в последнее время успешно развивается подход к автоматизации проектирования сложных изделий. Отметим, что вопросам автоматизации проектирования уделяется большое внимание, что обусловлено актуальностью этого направления в различных отраслях промышленности. К примеру, в [9, 11] отмечается применимость рассматриваемых задач для проектирования одежды, в [10] решаются задачи проектирования химического состава резин специального назначения.

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

Приведём математическую модель для задачи проектирования сложных изделий. Введём необходимые обозначения:

J — множество номеров составляющих изделия, J = {1,... ,n};

vj — составляющая изделия с номером j e J;

xj —логическая переменная, принимающая значение истина, если vj входит в состав изделия, и значение ложь в противном случае, j e J;

sj — вес составляющей vj, характеризующий степень целесообразности её включения в изделие;

p — нижняя граница для суммарного веса составляющих vj, включённых в изделие;

I — множество номеров логических формул, используемых в задаче, I = {1,... , m};

II —множество номеров логических формул, которые должны быть обязательно выполнены, I1 С I;

Ci — логическая формула, соответствующая i-му логическому ограничению, которая представляет собой дизъюнкцию переменных xj или их отрицаний, i e I;

ci — вес формулы Ci, характеризующий степень необходимости её выполнения,

i e I\Л;

K — множество номеров используемых ресурсов, K = {1, . . . , q};

akj —объём k-го ресурса, требуемый для изготовления j-й составляющей изделия,

k e K;

bk — имеющийся объём k-го ресурса, k e K.

Задача состоит в отыскании значений логических переменных, при которых выполняются формулы Ci с номерами i e Ii , ограничения по ресурсам и по суммарному весу включённых в изделие составляющих vj, а вес выполненных формул Ci для i e I\I1 максимален. Если поставленная задача разрешима, то в результате может быть получен один или несколько наборов составляющих, из которых формируются проектируемые изделия.

Модель ЦЛП рассматриваемой задачи имеет вид

f (z)= Е ciz ^ max; (8)

ieI\h

Е yj- Е yj + zi ^ |Ci L i e I\A; (9)

jee- jee+

Е yj— Е yj ^ |Ci 1 — 1, i e (10)

jee- jee+

E afcj yj ^ bfc, k e K; (11)

jeJ

E sjyj ^ p; (12)

jeJ

0 ^ yj ^ 1 yj e Z, j e J; (13)

0 ^ zi ^ 1, zi e Z, i e I. (14)

Здесь система (9) представляет собой набор «мягких» ограничений, а система (10) — «жёстких». Условия (11) описывают ресурсные ограничения, (12) —возможные требования проектировщика. В [9, 11] приводятся также более сложные модели, в которых учитываются группы составляющих и другие ограничения.

Рассмотрим задачу проектирования, состоящую в разработке рецептуры огнестойкой резины на основе смеси каучуков [10]. В дополнение к введённым обозначениям, через Ji обозначим множество номеров антипиренов (ингредиентов, обладающих свойством огнестойкости), J1 С J, а через rj —вес, соответствующий ингредиенту vj, который характеризует его огнестойкость, j e J1. Двухкритериальная модель ЦЛП этой

задачи может быть записана в виде системы (9), (10), (13), (14) с критериями /(г) = Е с^г ^ тах; #(у) = X] ^у, ^ max,

г€/\/х

в которых максимизируются общий вес «мягких» ограничений и суммарная огнестойкость включённых в состав ингредиентов.

В работе [10] представлены результаты решения указанной задачи. Все ингредиенты были разбиты на несколько групп в зависимости от их свойств. Разработаны логические ограничения, которые отражают недопустимость или желательность определённых комбинаций составляющих. Проведён вычислительный эксперимент с использованием алгоритма перебора Ь-классов и показана перспективность данного подхода.

3. О методе регулярных разбиений

Рассмотрим кратко подход, идея которого заключается в выделении семейства специальных разбиений релаксационного множества задачи. Особенности данного подхода подробно описаны в [5]. Приведём необходимые для дальнейшего изложения определения и обозначения.

Введём понятие лексикографического порядка. Для этого рассмотрим функцию

п(х, у) = тт{г : х = у*, г = 1,..., п}, х, у € Еп, х = у.

Вектор х лексикографически больше (меньше) вектора у, т. е. х У у (х -< у), если х = у и хад > уад (хш < уад) для ,ш = п(х,у). Отношение У представляет собой отношение строгого линейного порядка. Запись х У у означает, что либо х У у, либо х = у. Аналогично понимается х ^ у.

Для множеств X, У С Кп полагаем X У У (X -< У), если х У у (х -< у) при любых х € X и у € У.

Пусть х, у € Кп и х У у. Будем говорить, что точки х и у отделимы, если найдётся точка г € Ъп, для которой выполняется х У г У у. Точку г назовем отделяющей.

Дадим определение Ь-разбиения. Точки х,у € Кп (х У у) называются Ь-эквива-лентными, если не существует отделяющей их точки г € Ъп. Это отношение эквивалентности порождает разбиение любого множества X С Кп на непересекающиеся Ь-классы. Фактор-множество X/L называется Ь-разбиением множества X. Указанное разбиение обладает рядом полезных свойств, применяемых при разработке и исследовании алгоритмов целочисленного программирования, в частности алгоритмов перебора Ь-классов. Отметим некоторые из них:

1) каждая точка г € Ъп образует отдельный Ь-класс, остальные классы состоят из нецелочисленных точек и называются дробными;

2) если X — ограниченное множество, то фактор-множество X/L конечно;

3) любой дробный Ь-класс V € X/L можно представить в виде

V = X П {х : х1 = й1, ..., хг-1 = аг_1, аг < хг < аг + 1},

где а € ъ (г = 1,...,г), 1 ^ г ^ п.

Рассмотрим лексикографическую задачу ЦЛП следующего вида: найти лексикографически максимальную точку у* множества (М П Ъп), т. е.

найти у* = 1ехтах(М П Zn),

(15)

где М — некоторый выпуклый многогранник. Важную роль в исследовании задачи (15) и методов её решения играет множество

М* = {у € М : Уг € М П Ъп (у У г)},

которое называется дробным накрытием задачи (15). Фактор-множество М*/Ь называется Ь-накрытием задачи.

Выделение этой части релаксационного множества задачи связано с тем, что в некоторых методах ЦП ( методах отсечения, перебора Ь-классов) происходит последовательное исключение точек из М*, т. е. эти методы можно рассматривать как определённые способы «снятия» дробных накрытий, поэтому мощность Ь-накрытия является параметром сложности задачи для указанного класса алгоритмов.

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

Ранее с использованием данного подхода получены оценки числа итераций для некоторых известных алгоритмов ЦП. В частности, для задачи ЦЛП (15) установлено

I ^ |М*/Ь|, где I — количество Ь-регулярных отсечений, т. е. таких отсечений, которые сохраняют все допустимые целочисленные решения и отсекают текущее лексикографическое решение задачи линейного программирования вместе со всем Ь-классом, содержащим его [5]. К примеру, некоторые отсечения первого алгоритма Гомори являются Ь-регулярными.

При анализе структуры многогранников интересным представляется построение семейств задач ЦЛП, для которых мощности Ь-накрытий достаточно велики. Такие задачи оказываются труднорешаемыми для определённых классов алгоритмов, основанных на аппарате непрерывной оптимизации. В работах [6, 7] описываются различные семейства задач выполнимости и максимальной выполнимости, для которых мощности Ь-накрытий растут экспоненциально с увеличением числа переменных в формуле. Приведём одно из таких семейств для невыполнимых формул.

Пусть С = (х2г_1 V х2г), г = 1,..., п/2 - 1, С" = V хп_1 V хп), ] = 1,... , п/2 - 1,

где п — чётное число, большее 2, и С' = (хп-1 V хп)(хп-1 V хп)(хп-1 V хп). Рассмотрим формулу Г = С1ЛС2Л.. .ЛС;ЛС'1 ЛС2Л.. .лс;ЛС', где г = п/2-1. Структура матрицы А системы ограничений (1), соответствующей формуле Г, выглядит следующим образом:

11

1

А

V

11

1

11

1

\

11

11

11 1 -1

-1 1

-1 -1

В матрице А указаны только ненулевые элементы. Можно показать, что для многогранника задачи выполнимости с формулой Г выполняется | М* /Ь | = 2 • 3; — 1.

4. Разработка алгоритмов

Приведём алгоритмы для задач выполнимости и максимальной выполнимости, основанные на методе регулярных разбиений. Начальный вариант алгоритма перебора

Ь-классов для решения задачи выполнимости предложен в работе [15]. Подробное его изложение и некоторые модификации, а также экспериментальные исследования содержатся в [1]. Первое описание алгоритма точного решения для невзвешенного варианта задачи максимальной выполнимости представлено в [16], во взвешенном случае — в [17].

4.1. Алгоритм перебора Ь-классов для задачи

выполнимости

Рассмотрим лексикографическую постановку задачи ЦЛП (15), где М — многогранник, определяемый системой ограничений (1), (2).

Опишем идею метода перебора Ь-классов для задачи (15). Пусть Ь-накрытие задачи состоит из классов ... , ^, причем V У V2 У ... У ^.

Основной шаг метода заключается в переходе от одного класса из М*/Ь к другому в порядке лексикографического убывания, начиная с лексикографически максимального Ь-класса. Алгоритм порождает последовательность точек у(4) € М*, обладающую следующими свойствами:

— у(4) У у(*+1), £ =1, 2,...,8 — 1; 5 ^ р;

— все точки принадлежат различным Ь-классам.

В общем случае для задачи ЦЛП переход от одного Ь-класса к другому выполняется путём решения некоторого числа задач линейного программирования. Для решения задачи выполнимости поиск представителей у(4) указанных классов можно осуществлять, не решая задач линейного программирования, что заметно повышает эффективность алгоритма. Это основано на следующем свойстве: в каждом Ь-классе многогранника М содержится полуцелочисленная точка, т. е. точка со значениями координат из множества {0,1/2,1}. Поиск представителей осуществляется с помощью специальной комбинаторной процедуры Ш, в процессе выполнения которой строится лексикографически убывающая последовательность недопустимых целочисленных точек с координатами, равными 0, 1 или 2. Отметим, что значение 2 используется для обеспечения лексикографической монотонности указанной последовательности. С этой целью можно также выбрать любое число, большее 1.

Приведём алгоритм перебора Ь-классов для задачи выполнимости (алгоритм ЬСЕ), который за конечное число шагов либо находит лексикографически максимальное решение в случае выполнимости формулы, либо указывает на её невыполнимость.

Предполагается, что перед началом работы алгоритма формула не содержит единичных скобок, т. е. скобок вида х^ или х^. В противном случае число переменных и скобок можно сократить путём присвоения таким переменным соответствующих значений. Если в ходе работы алгоритма в формуле появляется единичная скобка х^, то будем считать, что переменной у^ значение 1 присвоено «автоматически» (аналогично для скобки х^ —значение 0).

Алгоритм завершает работу в двух случаях: если получено оптимальное решение задачи (15) или если не удаётся найти очередной Ь-класс. Показано, что трудоёмкость алгоритма ЬСЕ составляет 0(п3т • |М*/Ь|).

Алгоритм ЬОБ

Шаг 0 (поиск представителя первого Ь-класса). Выполняем процедуру Ш (она описана ниже), начиная с недопустимой точки ^(0)1 = (2,..., 2). Если находим полуцелочисленную точку у(1) € У1, то переходим к шагу 1 первой итерации.

Итерация £ (£ ^ 1).

Шаг 1. Начинаем с точки у(4) = (а1/'1,... ,а,_1, 1/2, У(+і,... , Уп;), где а(Г) Є {0,1}

і = 1,... , 5 — 1; у^ Є {0, 1/2, 1}, і = ^ + 1,... , п. Первую дробную координату у,4) округляем до 0. Выполняем процедуру упрощения формулы. В ходе этого преобразования некоторые координаты у*' (і = в + 1,... , п) «автоматически» примут значения 0 или 1. Обозначим полученную точку у(і). После упрощения формулы возникает один из следующих случаев.

— Все скобки исключены. Рассматривая точку у(4), переходим на шаг 4.

— Скобки остались, противоречие не обнаружено. Из вектора у(і) строим недопусти-

(*'1 Ґ (*)1 (*)1 А (*)1 (*)^ (*)1 ^ Гп 1 ОТ

мую точку и(1)1 = (а1 ,... , а^_1, 0, и^, ...,Шп ), где и] Є {0,1, 2}, причем если

у]*'1 = 1/2, то и^1 = 2, і = в + 1,..., п. Переходим на шаг 2.

— Обнаружено противоречие. Возвращаемся к точке у(4), переходим на шаг 3.

Шаг 2. Выполняем процедуру Ш, начиная с недопустимой точки и(*)1. Если находим полуцелочисленную точку у(*+1) Є ^+1, то переходим к шагу 1 итерации (і + 1).

Шаг 3. Среди координат вектора у(4) ищем максимальную по номеру координату у,4) = 1, которой это значение не было присвоено «автоматически» (р < в). Возможны следующие случаи.

— Такая координата существует, тогда продолжаем просматривать вектор у(4).

Находим все переменные у] (р < і ^ п), которым значение 0 или 1 присвоено

после назначения а,*) = 1. Изменяем их значения на 1/2. Значение координаты с номером р также уменьшаем до 1/2. В результате получаем точку у(*+1) є ^+1 и переходим на шаг 1 итерации (і + 1).

— Такой координаты не существует. В этом случае алгоритм завершает работу: формула невыполнима.

Шаг 4. Алгоритм завершает работу: формула выполнима. Оптимальное решение у* задачи (15) строим из текущего вектора у(4) следующим образом:

у* = / если Є {0, 1}

] \ 1, если у« = 1/2,

для і = 1,... , п.

Отметим, что на шаге 4 координатам со значением 1/2 можно произвольным образом присвоить булевы значения. Это дает множество различных допустимых решений задачи (15).

Приведем описание процедуры Ш, используемой в алгоритме ЬСЕ.

Полагаем 7 =1. Итерация 7.

Начинаем с вектора и(*)7 = (а^7,..., 0,-], 0, и(+1,..., и4*)7), где а(*)т Є {0,1},

і = 1,... , в — 1; и]*)7 Є {0,1, 2}, і = в + 1,... , п. Для получения представителя пер-

вого Ь-класса начинаем с вектора и(0)1 = (2,... , 2). Среди координат этого вектора

(*)т ч о

ищем первую по номеру координату , значение которой равно 2, и изменяем его

на 1. Выполняем процедуру упрощения формулы. В результате некоторые компоненты

вектора «автоматически» примут значения 0 или 1. Обозначим полученный вектор и.

После упрощения формулы возникает один из следующих случаев:

— Все скобки исключены. В векторе w заменяем все координаты, равные 2, на 1/2. Полученную точку обозначаем y(t) и переходим на шаг 4 алгоритма LCE.

— Скобки остались, противоречия не обнаружено. Вектор W обозначаем w(t)7+1 и переходим на (7 + 1)-ю итерацию.

— Обнаружено противоречие. Из вектора w(t)Y строим точку y(t+1): если wjt)7 = 2, то полагаем yj*+1) = 1/2, j = s + 1,...,n. Таким образом, значение q-й координаты меняется на 1/2. Возвращаемся на шаг 2 алгоритма LCE.

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

Пусть формуле F = C1 Л ... Л Cm соответствует вектор Z = (Z1,... , Zm), координаты которого принадлежат множеству {0,1, 2}. Основные процедуры алгоритма заключаются в направленном переборе указанных векторов, каждому из которых соответствует следующая задача: найти такой набор значений переменных, что скобки Cp, для которых Zp =1, становятся истинными, а скобки , где Zq = 0, — ложными. Если задача выполнимости, соответствующая вектору Z, разрешима, то будем называть этот вектор выполнимым, иначе — невыполнимым. Отметим, что координаты Zj = 2 используются для обеспечения монотонности лексикографического перебора векторов, с этой целью можно использовать любое значение, большее 1. Пусть все скобки,

входящие в формулу, предварительно упорядочены по невозрастанию их весов. При

описании алгоритма будем пользоваться следующими обозначениями:

W0(Z) — суммарный вес всех скобок Cj формулы F, для которых Zj = 0;

W1(Z) — суммарный вес всех скобок Cj формулы F, для которых Zj = 1;

subSAT(F, Z) —функция для решения специальной задачи выполнимости с помощью алгоритма LCE. Её особенность заключается в следующем. Если находится такой выполняющий набор, при котором скобки Cp (для координат Zp = 1) становятся истинными, а скобки (для Zq = 0)—ложными, то функция принимает значение 0. В противном случае функция принимает такое значение s, что если положить Zj = 2, i = s,... , m, то вектор Z останется невыполнимым.

Схема точного алгоритма для MAX SAT

Шаг 0. Получаем приближённое решение X задачи каким-нибудь эвристическим алгоритмом. Пусть f = f (X) — суммарный вес выполненных скобок формулы F, соответствующий набору X. Полагаем Zj = 2, i = 1,... , m, и переходим на шаг 1.

~ m

Шаг 1. Если f = ^2 wj , алгоритм завершает работу (X — оптимальное решение

j=1

задачи); в противном случае переходим на шаг 2.

Шаг 2. Если выполняется W1(Z) ^ f , то переходим на шаг 3; в противном случае — на шаг 7.

m _

Шаг 3. Если имеет место ^ wj — W0(Z) ^ f , то переходим на шаг 4; в противном

j=1

случае — на шаг 6.

Шаг 4. Пусть ^ = min{i ; Zj = 0, i = 1,...,m}. Если среди координат Zj,

i = ^,... , m, не более одной, равной О, то алгоритм завершает работу (X — оптимальное решение задачи); в противном случае — на шаг 5.

Шаг 5. Находим v = max{i ; Zj = 0, i = 1,... ,m}, k = max{i ; Zj = 0, i =

= 1,... , v — 1} и l = max{i ; Zj = 1, i = 1,... , k — 1}. Полагаем Z^ = 0, Zj = 2,

i = l + 1,... , m, и переходим на шаг 2.

Шаг б. Пусть r = max{i ; Zj = 2, i = 1,..., m} при Z1 = 2 и r = 0 в противном случае. Полагаем Zr+l = 1 и переходим на шаг 2.

Шаг Т. Пусть s = subSAT(F, Z). Если найден выполняющий набор X (в этом случае s = 0), то обновляем рекордное значение целевой функции и переходим на шаг 1; в противном случае переходим на шаг S.

Шаг S. Если {i ; Zj = 1, i = 1,..., s} = 0, алгоритм завершает работу. В противном случае находим номер l = max{i ; Zj = 1, i = 1,... , s} и полагаем Z^ = 0,

Zj = 2, i = l + 1,..., m. Переходим на шаг 2.

Предложенные алгоритмы реализованы и проведены вычислительные эксперименты как на случайно сгенерированных задачах, так и на семействах логических формул из электронных библиотек тестовых задач. В [1, 17] приведены результаты расчётов для различных серий задач и сравнение алгоритмов с другими известными алгоритмами для задач выполнимости и максимальной выполнимости. В частности, в работе [17] алгоритм для задачи максимальной выполнимости сравнивается с основанным на методе ветвей и границ алгоритмом WMaxSatz-2.5 из библиотеки MAX-SAT Evaluation 2ОО9. Кроме того, в указанной работе описывается возможность использования предложенного алгоритма для приближённого решения задачи максимальной выполнимости. Результаты эксперимента показали эффективность используемого подхода на ряде серий задач и целесообразность его дальнейшего развития. В настоящее время ведётся работа по применению разработанных схем алгоритмов для эффективного решения смешанных задач с логическими ограничениями.

Заключение

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

ЛИТЕРАТУРА

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

1. Колоколов А. А., Адельшин А. В., Ягофарова Д. И. Решение задачи выполнимости с использованием метода перебора L-классов // Информационные технологии. 2009. №2. С.54-59.

2. Gu J., Purdom P., Franco J., and Wah B. Algorithms for the satisfiability (SAT) problem: a survey // DIMACS Series in Discrete Mathematics and Theoretical Computer Science. Princeton: AMS, І996. P. І9-І52.

3. Hansen P. and Jaumard B. Algorithms for the maximum satisfiability problem // Computing. І990. No. 4. P. 279-303.

4. Thornton J., Bain S., Sattar A., and Pham D. N. A two level local search for MAX-SAT problems with hard and soft constraints // Proc. 15th Australian Joint Conference on Artificial Intelligence, AustAI-2002. Canberra, Australia, 2002. P. 603-614.

5. Колоколов А. А. Регулярные разбиения и отсечения в целочисленном программировании // Сиб. журнал исследования операций. 1994. №2. С. 18-39.

6. Адельшин А. В. Исследование задач максимальной и минимальной выполнимости с использованием L-разбиения // Автоматика и телемеханика. 2004. №1. С. 35-42.

7. Колоколов А. А., Адельшин А. В., Чередова Ю. Н. Применение L-разбиения к исследованию некоторых задач выполнимости // Труды XII Байкальской междунар. конф. «Методы оптимизации и их приложения». Иркутск, 2001. Т. 1. С. 166-172.

8. Cook S. A. The complexity of theorem-proving procedure // Proc. 3rd Annual ACM Symposium on the Theory of Computing. New York: ACM, 1971. P. 151-159.

9. Колоколов А. А., Ярош А. В. Автоматизация проектирования сложных изделий с использованием дискретной оптимизации и информационных технологий // Омский научный вестник. 2010. №2(90). С. 234-238.

10. Адельшин А. В., Жовнер Е. Н. Применение задач выполнимости логической формулы для проектирования химического состава резин // Вестник Омского университета. 2011. №2. С. 14-18.

11. Гуселетова О. Н., Колоколов А. А. Решение задач дискретной оптимизации с логическими ограничениями при проектировании сложных изделий // Автоматика и телемеханика. 2008. №10. С. 176-182.

12. Колоколов А. А., Серышева Ю. С., ШулеповаЛ.Д. Решение задач формирования малых групп с учетом межличностных отношений // Труды XV Байкальской междунар. школы-семинара «Методы оптимизации и их приложения». Иркутск, 2011. Т. 5. С. 61-66.

13. Посыпкин М. А, Заикин О. С., Беспалов Д. В., Семенов А. А. Решение задач криптоанализа поточных шифров в распределенных вычислительных средах // Труды ИСА. 2009. Т. 46. С. 119-137.

14. Massacci F. and Marraro L. Logical cryptanalysis as a SAT problem // J. Automated Reasoning. 2000. No. 24. P. 165-203.

15. Колоколов А. А., Чередова Ю. Н. Исследование и решение задачи о выполнимости с использованием L-разбиения // Материалы междунар. конф. «Дискретный анализ и исследование операций». Новосибирск, 2000. С. 150.

16. Колоколов А. А., Адельшин А. В., Ягофарова Д. И. Алгоритмы лексикографического перебора для решения задачи выполнимости и некоторых её обобщений // Труды XIII Байкальской междунар. школы-семинара «Методы оптимизации и их приложения». Иркутск, 2005. Т. 1. С.503-508.

17. Адельшин А. В., Кучин А. К. Алгоритмы точного и приближенного решения задачи максимальной выполнимости // Омский научный вестник. 2011. №1(97). С. 5-9.

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