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

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

CC BY
185
45
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ ИМИТАЦИИ ОТЖИГА / SIMULATED ANNEALING / АЛГОРИТМ БАЛАША / BALAS ALGORITHM / ПСЕВДОБУ-ЛЕВЫЕ ЛИНЕЙНЫЕ НЕРАВЕНСТВА / PSEUDO-BOOLEAN LINEAR INEQUALITIES

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

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

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

Solving linear inequalities systems with local search algorithms

Here, we present a new heuristic on the basis of Balas algorithm for solving systems of linear inequalities with Boolean variables. If a branch in a solution tree leads to a false solution, then a new branch is chosen with the help of simulated annealing technique. The experimental results of fulfilled comparison of new and classical (Balas and simulated annealing) heuristics are listed. Two variants of cost function sum and maximum were applied in the new heuristic. The plan of experiments concerned random systems of pseudo-Boolean linear inequalities. According to the results of comparison, the new heuristic is more effective. It was applied to a system of linear inequalities that describes LFSR with a Boolean threshold output function. This system grows exponentially with the length of the output. Some methods for reducing the system size are given. In all cases, the new heuristic allows to find the solution for LFSR sometimes being different from the original.

Текст научной работы на тему «Применение алгоритмов локального поиска к решению систем псевдобулевых линейных неравенств»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

№8 ПРИЛОЖЕНИЕ Сентябрь 2015

Секция 8

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

УДК 512.55 Б01 10.17223/2226308Х/8/53

ПРИМЕНЕНИЕ АЛГОРИТМОВ ЛОКАЛЬНОГО ПОИСКА К РЕШЕНИЮ СИСТЕМ ПСЕВДОБУЛЕВЫХ ЛИНЕЙНЫХ

НЕРАВЕНСТВ

, А. Н. Шурупов

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

Ключевые слова: алгоритм имитации отжига, алгоритм Балаша, псевдобу-левые линейные неравенства.

Рассмотрим следующую задачу (0-1)-целочисленного линейного программирования:

п

Хг ^ Ъз , (1)

г=1

где , ¿з е Ъ; хг € {0,1}; ] = 1,..., т.

Известно, что эта задача КР-полна и часто называется задачей решения целочисленной системы линейных неравенств (СЛН) с булевыми неизвестными (такие неравенства также называют псевдобулевыми). В [1] приведены результаты экспериментального сравнения алгоритма Балаша [2] и имитации отжига [3] для решения случайных СЛН вида (1). Рассмотрим модификацию алгоритма Балаша, использующую технику алгоритма имитации отжига для выхода из тупиковых точек. Для краткости будем называть эту модификацию алгоритмом БИО и приведём ниже его псевдокод.

Алгоритм БИО_

1) Выбрать случайно начальную точку Хо е {0,1}п. Положить г = 0.

2) Применить прямой проход алгоритма Балаша к хг и получить результат — тупиковую точку у.

Н. В. Анашкина

Вычислительные методы в дискретной математике

137

3) Если у — решение (1), то закончить работу. В противном случае выбрать ъ из окрестности 52 (хг) в соответствии с правилами алгоритма отжига. Положить

% = % + 1, х = ъ.

4) Проверить критерии остановки и в случае невыполнения перейти на шаг 2.

Окрестность 52 (хг) представляет собой шар радиуса 2 в смысле метрики Хемминга с центром в точке х. По сути шаг 3 является попыткой рандомизированного выбора новой точки для повторного применения алгоритма Балаша, сочетающей свойства случайного и направленного поиска, характерные для алгоритма имитации отжига.

В соответствии с методикой, изложенной в [1], проведено экспериментальное исследование эффективности алгоритма БИО в случаях использования разных целевых функций: суммы невязок неравенств и максимума из невязок неравенств. Обе целевые функции часто используются в эвристических алгоритмах (например, вторая — в оригинальном алгоритме Хачияна [4]). Усреднённые результаты исследования для задачи решения заведомо совместной случайной СЛН приведены в таблице. Для сравнения указаны результаты применения к тем же СЛН обычных алгоритмов Балаша и имитации отжига с целевой функцией первого типа. Легко видеть, что алгоритм БИО независимо от используемой целевой функции работает эффективнее алгоритма Балаша или имитации отжига. Однако целевая функция «сумма» позволяет достичь лучших средних результатов (в итоге на 6 %, а в пике — на 14 %) при решении переопределённых СЛН. Для СЛН с числом неравенств равным числу переменных выигрыш принадлежит второй целевой функции. Среднее число шагов алгоритма БИО (число повторений п. 2-4) для первой целевой функции равно 25, а для второй — 124. Тем не менее только на 4 из 12 серий экспериментов алгоритм БИО с первой целевой функцией превосходил по эффективности использование второй целевой функции, хотя более существенно — в среднем 35% против 8%.

Сравнение эффективности алгоритма БИО (с использованием разных целевых

функций) и классических эвристик

Отношение числа неравенств к числу переменных Итого

1 2 3 10

MAX SUM MAX SUM MAX SUM MAX SUM MAX SUM

SA Balas SA Balas SA Balas SA Balas SA Balas

60% 49% 84% 93% 84% 99% 86% 100% 79% 85%

40% 15% 84% 56% 85% 79% 100% 99% 77% 62%

Для алгоритма БИО (в варианте с первой целевой функцией) проведены экспериментальные исследования эффективности для решения неслучайных СЛН, в частности, описывающих функционирование фильтрующего генератора на основе линейного регистра сдвига со случайно и равновероятно выбранным начальным заполнением. Более точно, рассматривается автономный линейный регистр сдвига с булевой пороговой функцией в качестве функции выхода, функционирование которого описывается соотношениями уг = f (хг) = f (х^А) = f (х0Аг), где уг — %-й знак выходной последовательности; хг = (х1г),...,Жт ) — %-е состояние автомата, % = 0,... ,т — 1; А — сопровождающая матрица многочлена хп + хм + 1; f — булева пороговая функция от п переменных с целочисленной структурой Ь), w = (и\,..., ип), Ь € Ъ. Определение булевой пороговой функции, её структуры и других используемых ниже понятий можно найти в [1]. Везде далее будем рассматривать только псевдобулевы целочисленные неравенства.

138

Прикладная дискретная математика. Приложение

Для составления СЛН, связывающих выходную последовательность у = (у1,... , ут) с начальным состоянием х0, необходимо знать пороговое представление булевой функции, задаваемой псевдобулевым неравенством а1 ф ^2) + а2х2 + ... + апхп ^ Известно [5], что это неравенство (при а1 = 0) равносильно системе из двух линейных псевдобулевых неравенств

+ Й2Ж2 + ... + а,пХп - (М - ^ ¿,

+ Й2Х2 + ... + апХп + (М - ^ М - Й1,

где М = шах{а1х1 + ... + апхп : хг е {0,1}}.

Таким образом, при добавлении очередного знака выходной последовательности размер СЛН может увеличиться вдвое. Для выходной последовательности длины т верхняя оценка числа неравенств равна 2т - 1. Существуют приёмы сокращения числа неравенств в системе. Например, с сохранением равносильности можно отбросить неинформативные неравенства [1], т.е. те, которые задают гиперплоскость, не имеющую пересечений с единичным гиперкубом. Условие неинформативности задается

п

неравенством > ^Цу^п, где = | ^ и>г - 2Ъ|. Точно информативными яв-

г=1

ляются неравенства, для которых задаваемая ими гиперплоскость удалена от центра гиперкуба на расстояние не больше 1/2, или, что то же самое, р^, ¿) ^ (^Ц. Проведённые экспериментальные исследования выявили отсутствие неинформативных или не точно информативных неравенств в СЛН, порождаемых описанным выше автоматом. Ещё один приём сокращения числа неравенств в СЛН связан с выбором начального состояния х0. Выбрав начальное состояние равным Х|т/2\, можно построить две СЛН, одну — как было описано раньше для выходной последовательности у/ = (у|т/2\,... , ут), а другую — для выходной последовательности у// = (у|_т/2\, У|_т/2\-ъ ... ,У0) обратного регистра сдвига. Размер полученной системы оценивается сверху числом 2|т/2\ - 1.

Так, в одном эксперименте для регистра длины 30, функции от 25 существенных переменных и длины выхода т =32 СЛН с использованием сокращения состоит из 132984 неравенств, а без сокращения — более чем из 3 млн. Алгоритм БИО решил сокращённую систему за 8 шагов, потребовавших 18 с. Найденное решение не совпало с исходным, что свидетельствует о сильной избыточности полученной СЛН.

Авторы приносят благодарность А. А. Фролову за идею выбора начального состояния для сокращения числа неравенств.

ЛИТЕРАТУРА

1. Анашкина Н. В., Шурупов А. Н. Экспериментальное сравнение алгоритмов Балаша и имитации отжига в задаче решения систем линейных неравенств // Прикладная дискретная математика. Приложение. 2014. №7. С. 151-153.

2. Анашкина Н. В. Обзор методов решения систем линейных неравенств // Вестник Московского университета леса. Лесной вестник. 2004. № 1(32). С. 144-148.

3. Кочетов Ю. А. Вероятностные методы локального поиска для задач дискретной оптимизации // Дискретная математика и ее приложения: Сб. лекций молодежных и научных школ по дискретной математике и ее приложениям. М.: Изд-во центра прикл. исслед. при мех.-мат. фак. МГУ, 2001. С. 84-117.

4. Хачиян Л. Г. Полиномиальный алгоритм в линейном программировании // Докл. АН СССР. 1979. Т. 244. №5. С. 1033-1096.

5. Балакин Г. В., Никонов В. Г. Методы сведения булевых уравнений к системам пороговых соотношений // Обозрение прикладной и промышленной математики. 1994. Т. 1. Вып.3. С.389-401.

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