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

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

CC BY
266
37
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Computational nanotechnology
ВАК
Область наук
Ключевые слова
ПСЕВДОБУЛЕВЫ ЛИНЕЙНЫЕ НЕРАВЕНСТВА / МЕТОД ВНУТРЕННЕЙ ТОЧКИ / РЕЛАКСАЦИЯ / ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

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

Для решения непрерывной задачи линейного программирования известен метод внутренней точки (метод Кармаркара [1]). Целью работы является разработка и исследование надежности алгоритма решения псевдобулевых систем линейных неравенств, построенного на основе метода внутренней точки. Идея алгоритма заключается в релаксация исходной задачи, применении метода внутренней точки и возврате к булевому решению. Вместо традиционно используемой целевой функции невязки системы в предлагаемом алгоритме выбрана линейная функция от коэффициентов системы. Экспериментальный анализ показал высокую (86%) среднюю надежность алгоритма, превосходящую аналогичные результаты ранее примененных к этой задаче эвристических алгоритмов [2; 3] при решении случайно выбираемых псевдобулевых систем линейных неравенств (77 и 85%, соответственно). В результате экспериментальных исследований выявлены классы систем неравенств, на которых сравниваемые эвристические алгоритмы существенно различаются в эффективности решения. Это позволяет рекомендовать разработанный алгоритм для пополнения класса эвристик, ориентированных на исследуемую задачу. Недостатком разработанного алгоритма является относительно большое время работы.

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

Похожие темы научных работ по математике , автор научной работы — Маняев Глеб Олегович, Шурупов Андрей Николаевич

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

ON A SUCCESS RATE OF INTERNAL POINT ALGORITHM FOR SOLVING SYSTEMS OF LINEAR INEQUALITIES WITH BOOLEAN VARIABLES

The interior point method (Karmarkar's method [1]) is well known for its solution of the continuous problem of linear programming. The aim of this paper is the development and reliability research of the algorithm for solving systems of linear inequalities with Boolean variables, based on variables relaxation, application of the internal point method and following return to Boolean solution. In our algorithm a system's coefficients linear function was chosen instead of the system discrepancy, which is traditionally used as an objective function. Experimental analysis showed that reliability of the algorithm is about 86 %. This value is higher than the reliability (77 & 85%) of other heuristic algorithms, applied to the same problem [2; 3]. As the result of experimental research, we found some classes of systems of inequalities, which are solved by different algorithms with significantly different reliabilities. These results allow of recommending the developed algorithm for addition to the class of heuristics, oriented on the researched problem. The drawback of the developed algorithm is relatively long working time.

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

05.13.19

МЕТОДЫ И СИСТЕМЫ ЗАЩИТЫ ИНФОРМАЦИИ, ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

О НАДЕЖНОСТИ АЛГОРИТМА РЕШЕНИЯ ПСЕВДОБУЛЕВЫХ СИСТЕМ ЛИНЕЙНЫХ НЕРАВЕНСТВ, ОСНОВАННОГО НА МЕТОДЕ ВНУТРЕННЕЙ ТОЧКИ

Маняев Глеб Олегович, сотрудник ФУМО ВО Информационная безопасность. E-mail: gmolymp@yandex.ru Шурупов Андрей Николаевич, сотрудник ФУМО ВО Информационная безопасность. E-mail: ashurupov@mail.ru

Аннотация. Для решения непрерывной задачи линейного программирования известен метод внутренней точки (метод Кармаркара [1]). Целью работы является разработка и исследование надежности алгоритма решения псевдобулевых систем линейных неравенств, построенного на основе метода внутренней точки. Идея алгоритма заключается в релаксация исходной задачи, применении метода внутренней точки и возврате к булевому решению. Вместо традиционно используемой целевой функции - невязки системы - в предлагаемом алгоритме выбрана линейная функция от коэффициентов системы. Экспериментальный анализ показал высокую (86%) среднюю надежность алгоритма, превосходящую аналогичные результаты ранее примененных к этой задаче эвристических алгоритмов [2; 3] при решении случайно выбираемых псевдобулевых систем линейных неравенств (77 и 85%, соответственно). В результате экспериментальных исследований выявлены классы систем неравенств, на которых сравниваемые эвристические алгоритмы существенно различаются в эффективности решения. Это позволяет рекомендовать разработанный алгоритм для пополнения класса эвристик, ориентированных на исследуемую задачу. Недостатком разработанного алгоритма является относительно большое время работы.

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

ON A SUCCESS RATE OF INTERNAL POINT ALGORITHM FOR SOLVING SYSTEMS OF LINEAR INEQUALITIES WITH BOOLEAN VARIABLES

Manyaev Gleb O., member of FEMA (Federal Educational Methodical Association) in the system of higher education on Information security

ShurupovAndreiN., member of FEMA (Federal Educational Methodical Association) in the system of higher education on Information security

Annotation. The interior point method (Karmarkar's method [1]) is well known for its solution of the continuous problem of linear programming. The aim of this paper is the development and reliability research of the algorithm for solving systems of linear inequalities with Boolean variables, based on variables relaxation, application of the internal point method and following return to Boolean solution. In our algorithm a system's coefficients linear function was chosen instead of the system discrepancy, which is traditionally used as an objective function. Experimental analysis showed that reliability of the algorithm is about 86 %. This value is higher than the reliability (77 и 85%) of other heuristic algorithms, applied to the same problem [2; 3]. As the result of experimental research, we found some classes of systems of inequalities, which are solved by different algorithms with significantly different reliabilities. These results allow of recommending the developed algorithm for addition to the class of heuristics, oriented on the researched problem. The drawback of the developed algorithm is relatively long working time.

Key words: Pseudo boolean linear inequalities, interior point method, relaxation, linear programing.

Введение

Одной из важных прикладных задач является решение псевдобулевых систем линейных неравенств (СЛН). Методы сведения булевых систем нелинейных уравнений (СНУ) к псевдобулевым СЛН предложены в работах Г.В. Балакина и В.Г. Никонова [4; 5]. Общий метод решения СЛН для неотри-

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

методов для решения СЛН. В частности, разработаны полиномиальные алгоритмы решения действительных СЛН такие как, алгоритм Хачияна (алгоритм эллипсоидов) [7], алгоритм Кармаркара (алгоритм внутренней точки) [1]. Алгоритм Хачияна можно применить для решения псевдобулевых СЛН с использованием релаксационного подхода [8].

В статье исследуется возможность применения алгоритма Кармаркара для решения псевдобулевых СЛН. Нетривиальность указанной задачи обусловлена, во-первых, тем, что алгоритм Кармаркара в оригинальной публикации разработан для решения задач линейного программирования (ЛП), а, во-вторых, особенностями использования линейной целевой функции в вычислениях алгоритма Кармаркара. Напомним, что лобовое, стандартное сведение решения СЛН к задаче ЛП требует минимизации кусочно-линейной целевой функции с линейными ограничениями.

1. Псевдобулевые системы линейных неравенств

Определение 1. Под псевдобулевой системой линейных неравенств понимается система вида:

Ax > b,

(1)

Задача линейного программирования (ЛП) заключается в нахождении минимума функции J(x) на множестве U, элементы которого часто называются допустимыми точками, решениями и т.п. Задачу ЛП можно записать следующим образом

j (x )——Hnf,

где U = {x е W: Ax > b}.

Определение 5. Стандартной задачей ЛП (СЗЛП) называется задача ЛП вида:

cTx ^ min;

Ax > b, x > 0,

(2)

где х = (х„ ... , х )Т е К", с е Ъ", А е Ъ .

^ х 1' ' "' ' ' т, "

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

Определение 6. Невязкой линейного неравенства

Ux > V,

(3)

где A е Zm n - целочисленная матрица размера m х n с коэффициентами а..; i = 1, 2, ... , m; j = 1, 2, ... , n; b е Zm - целочисленный вектор. Искомые булевы переменные составляют вектор x е V2n.

Рассмотрим функцию tob (x'): [0, 1]n ^ V2n, которая отображает действительный вектор x' е [0, 1]n в булев x' е V2n покоординатно, т.е.

x=1М,

где [[а]] - ближайшее к а по модулю целое число.

Таким образом, любая точка единичного n-мерного куба отображается в его ближайшую в смысле стандартной метрики вершину.

Замечание 2. Значение [[1/2]] определяется произвольным фиксированным образом.

Определение 3. Под релаксацией псевдобулевой СЛН (ПСЛН) будем понимать ослабление требования булевости переменных до произвольных действительных значений.

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

2. Сведение задачи решения ПСЛН к стандартной задаче линейного программирования

Определение 4. Пусть задана некая линейная функция

J (x ) = £c,x,

i=i

на множестве U = {x е Rn: Ax > b}.

где Uе Zn, v е Z, называется неотрицательная кусочно-линейная функция

Fu,v( x ) =

0,

если неравенство выполнено,

v-Ux, в противном случае.

Замечание 7. Из определения 6 следует, что Ри ^ (х) = 0, тогда и только тогда, когда х - решение неравенства (3).

Определение 8. Невязкой системы линейных неравенств вида (1) называется функция

FA,b (X) = £ FA„bl (X).

Замечание 9. Как и невязка линейного неравенства, невязка ПСЛН, вообще говоря, не является линейной функцией. Однако в алгоритме Кармаркара по существу используется линейная целевая функция (ц.ф.).

Введем в рассмотрение функцию д>(А): Кт ^ К", заданную следующим образом:

где

g(A) = y = (yv ... , yn),

y i = Z at, i.

Традиционно, например, в алгоритме Балаша, невязка СЛН для решения задачи ЛП, используется в качестве ц.ф. ЗЛП. В алгоритме Кармаркара линейная ц.ф. по существу используется для вычисления очередного состояния алгоритма, поэтому применение невязок из алгоритмов Ба-лаша и Хачияна (невязка в алгоритме Хачияна получается заменой суммирования на взятие максимума в определении 8) не представляется возможным. Поэтому в настоящей работе в качестве ц.ф. алгоритма Кармаркара используется линейная функция д(А)Тх. В качестве возможных вариантов ц.ф. в дальнейших исследованиях могут быть рассмотрены функции взятия среднего значения или взвешенная сумма.

=1

t=1

Алгоритм А1. Преобразование задачи решения

ПСЛН к СЗЛП Вход: А е Ж , Ь е Жт.

т т, п'

0. Инициализация переменных

А' е Ж + ; Ь е Жт+п; с е Жп.

т + п, п' '

А' ^ 0; Ь ^ (-1); с ^ 0. (покоординатная инициализация константами).

A

^ A,

т.е. добавление к матрице A неравенств исходной системы. В левой части использовано обозначение для подматрицы матрицы A, образованной элементами на пересечении строк с номерами 1...m и столбцов с номерами 1...л

b'(1...m) ^ b.

1. Релаксация исходной задачи.

Заключается в ослаблении требований булевости к переменным ПСЛН, т.е. 0 < x < 1. Ограничение x > 0 является требованием алгоритма Кармаркара. Для учета ограничения x < 1 дополним систему n неравенствами вида: x. < 1, i = 1, 2 ... , n, или, что то же самое, неравенствами

-x > -1. (4)

Псевдокод для добавления этих неравенств выглядит следующим образом:

A'(i, i - m) ^ (-1), i = m + 1, ... , m + n.

2. Вычисление коэффициентов линейной целевой функции.

Запишем выражение с = g(A') в виде псевдокода для j = 1, ... , n,

для i = 1, ... , m + n, с. ^ с. + A'..

" j j j

Выход: A', b', c.

3. Сведение стандартной задачи линейного программирования к форме Кармаркара

Определение 10. Формой Кармаркара задачи ЛП будем называть задачу ЛП, если она имеет вид

Ax = 0,

cTx ^ min, при ограничениях I ^x! = 1,

x > 0,

где x - вектор с действительными координатами (xv ... , xn). Коэффициенты вектора с = (сг,..., cn) - целые.

Заметим, что в оригинальной статье Кармаркара [1] изложение процесса сведения содержит ошибки и отличается определенной краткостью изложения, что несколько затрудняет понимание. Так, например, на стр. 386 неверно описано введение искусственной переменной, в частности допущены ошибки в записи коэффициентов при этой переменной в системе уравнений.

Сформулируем план действий по преобразованию СЗЛП к ЗЛП в форме Кармаркара.

1. Рассмотрим двойственную к СЗЛП (2) задачу

bTu ^ max;

A1 u < c, u > 0.

Маняев Г.О., Шурупов А.Н.

2. Комбинируем прямую и двойственную задачи

Ax > b, ATu < c, cT x - bT u = 0, x > 0, u > 0.

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

3. Введем вспомогательные переменные для перехода от неравенств к равенствам в системах ограничений

Ax - y = b, ATu +v = c, cT x - bT u = 0, x > 0, v> 0, y > 0, u > 0.

4. Введем фиктивную переменную Л, чтобы получить внутреннюю допустимую начальную точку. Пусть x0, y0, v0, u0 -строго внутренние точки соответствующих неотрицательных ортантов размерностей n, m, n, m. Рассмотрим следующую задачу

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

Х^ min;

Ax -y + (b - Ax0 + y0 )Х = b, AT u+v + (c - AT u0 +v0 )x = c, cTx - bTu + (-cTx0 - bTu0) Х = 0, x>0, u>0, y >0, v>0, Х>0.

Заметим, что x = x0, y = y0, v = v0, u = u0; Л = 1 - строго внутреннее допустимое решение, которое можно выбрать в качестве начальной (стартовой) точки. Минимальное значение Л равно 0, если и только если задача в п. 3 допустима.

5. Для удобства дальнейшего описания сделаем замену обозначений и запишем задачу из п. 4 в виде

z > 0,

где m2 = m + n + 1; n2 = 2m + 2n + 1;

(b - Ax0 + y0 )mxl A 0 mxn mxm Em xm 0

¿2 = (c - u0 +v0 )„X1 0 AT nxn nxm 0 Enx

(-cTXo - bTUo ) CT b>T c1xn °1xm 0 0

где гТ = (Л, х, и, у, V) и с2Т = (1, 0, 0, 0, 0) - векторы размера п2 а Ь2Т = (Ь, с, 0) имеет размер т2.

6. Отображение неотрицательного ортанта в симплекс. Пусть Р+={еК"2\z>о} -неотрицательный ортант,

z'e К" +1| Z > 0, £ z' = iL

A2 z

Обозначим через а = (1, х0, у0, v0, и0) некоторую строго внутреннюю точку Р+. Зададим Т: Р+ ^ Д следующим образом. Пусть г' = Т(г). Тогда г'= (,...,г'Пг + ^ и

z-t ai

1+1;

V ai

, i = 1,..., n2;

••2

zn2 +1 = 1 -Z z'r

Заметим, что отображение Т обладает следующими свойствами:

• Т биективно. Обратное отображение Т _1 (г') задается следующим образом:

Zi =—;-L-, i = 1,..., П2

Алгоритм А2. Преобразование СЗЛП к форме Кармаркара

Вход: п е N - число переменных, т е N - число неравенств, А е Ът , Ь е Ът, с е Ъ" - исходная СЗЛП. Выход:

4 6 2 тг, Пг+с'2£ 2"2+

где т2 = т + п + 1, п2 = 2т + 2п + 1.

1. Инициализация переменных х0, у0, v0, и0 - внутренние точки положительных ортантов; а0 е Ъп2 А е Ът

Ь2 е Ът2, с2 е Ъ"2

2. Вычисление допустимой стартовой точки и пря-модвойственной задачи

а0 ^ (1, х0, у0, V,, и0) - внутренняя точка положительного ортанта;

Ь2Т ^ (Ь, с, 0), с2Т ^ (1, 0, 0, 0, 0);

Тотображает точку а в центр симплекса

(Ь - ^ + у0 )тх1

A mx n 0mx m Em xm 0

0nx n AT nx m 0 E

cT c1x n bT 1xm 0 0

где I - вектор из единиц.

Выражая переменные г. через г' в системе из п. 5, получаем

A'2z' = 0,

П2

I z! = 1

i=i

Z > 0.

где А'2=(А2&а (а!.....а„г) - ь2).

Завершает приведение СЗЛП к форме Кармаркара преобразование целевой функции с2Тг в с2'Тг', где (с2'). = (с2) а.,

для ' = 1, . , n2, и +1=0.

Замечание 11. Если применение алгоритма Кармаркара к этой задаче даст решение с нулевым значением с2'Тг', то обратное отображение Т_1 даст оптимальное решение исходной задачи. В случае получения решения с положительным значением целевой функции исходная задача не имеет конечного оптимума, т.е. либо она недопустима, либо не ограничена.

Теперь выразим приведенный выше план действий в виде алгоритма А2. При этом как алгоритм А1, так и алгоритм А2 (и последующие) трактуются как функции с некоторыми абстрактными входами и выходами. Абстрактность означает, что алгоритмы описывается в применении к некоторым самостоятельным задачам с указанием размеров обрабатываемых входных и выходных объектов. Эти размеры по сути и представляют собой входные и выходные параметры алгоритмов. Для совместного (последовательного) использования этих алгоритмов, в частности, в алгоритме Кармаркара требуется настроить параметры, т.е. задать размеры именно тех конкретных систем (и других объектов), которые участвуют в работе алгоритма Кар-маркара.

3. Формирование матрицы однородной системы уравнений

(А2), ^(А)и< ' =1.....т2, 1 = 1.....п2-

(А),, „2+ 1 ^~(Ь2 ), ' = 1.....™2.

4. Формирование целевой функции формы Кармаркара

(с2 ) ^{С2 ); К ) , 1 = 1.....П2;

(с'2) „^ 0.

V 2 п2 +1

Конец алгоритма А2.

4. Алгоритм Кармаркара для решения ПСЛН

Алгоритм Кармаркара (или метод внутренней точки) опубликован в 1984 [1]. Он имеет полиномиальную сложность. Этот алгоритм в идейном плане близок к алгоритму эллипсоидов и применяется к задачам линейного программирования, приведенным к некоторой специальной форме. Кармаркар предложил свой алгоритм в качестве замены алгоритма эллипсоидов, поскольку последний имеет проигрыш по времени работы по отношению к алгоритму Кар-маркара порядка 0(п25). Ниже приводится описание алгоритма Кармаркара для решения ПСЛН (алгоритм А3), однако прежде чем формулировать сам алгоритм, дадим его план действий.

Этапы алгоритма Кармаркара

для решения ПСЛН

Вход: ПСЛН с т неравенствами и п переменными.

Выход: решение ПСЛН или символ «±».

Алгоритм вырабатывает последовательность точек х(0), х(1), ..., х', ... пространства поиска в результате выполнения следующих шагов.

1. С помощью алгоритма А1 преобразовать задачу решения ПСЛН в СЗЛП.

2. С помощью алгоритма А2 преобразовать СЗЛП в форму Кармаркара.

z

z

n + 1

A2 ^

1

a

о

n2 +1

Маняев Г.О., Шурупов А.Н.

3. Задать стартовую точку.

x(0) ^ а

0

(центр симплекса в пространстве размерности 2(m + 2n + 1)), i ^ 0.

4. Вычислить очередную точку последовательности

i ^ i + 1, x(' > ^ Ф (x(' - 1)).

5. Проверить допустимость полученного результата. Если не выполняется условие допустимости x(,), то завершить алгоритм и вернуть А.

6. Проверить оптимальность. Если не выполняется условие оптимальности x('', то перейти на шаг 4. Ниже приводится оценка сверху числа шагов алгоритма до нахождения оптимального решения.

7. Преобразование полученного решения в решение ПСЛН.

Пусть z е R"2 + 1 - решение задачи ЛП в форме Кармаркара, полученное в результате работы алгоритма Кармаркара, а z' = z (2, ... , n + 1) - подвектор этого решения размерности n, где n - число неизвестных исходной СЗЛП. Тогда решением исходной СЗЛП является вектор x е Rn, такой что

z'i(a о )j . , xj <---, j = 1,..., n.

zn2 +1

Переход к булевому решению исходной ПСЛН заключается в применении к вектору x функции tob.

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

Алгоритм A3. Алгоритм Кармаркара для ПСЛН (этапы 4-6)

Вход: n, m е N, A е Zm n, c е Zn - задача ЛП в форме Кармаркара; a - текущая точка из Rn; a0 - допустимая стартовая точка из P+ с Rn. Напомним, что здесь m - число строк матрицы A - представляет собой абстрактный параметр. Это число строк выражается через параметры исходной ПСЛН (1) как m + 2n + 1. В качестве допустимой стартовой точки выбран центр симплекса.

Выход: z е Zn или символ А.

1. Применим1 преобразование ф к а.

1.1. Зададим проектирующее преобразование T(x), отображающее входную точку a в a0. Пусть D = diag (о1, ... , an) - диагональная матрица. Тогда преобразование

1.2.2. Нормируем результат

1.2.3. Сделаем шаг длиной аг в направлении -сы и вычислим результат (здесь 1

- радиус наибольшей впи-

л/^-1) санной сферы)

а ^ 0,25;

Ь ^ а0 - (а • г• с«). 1.3. Применим к Ь' обратное к проективному преобразование

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

b ^

Db'

I TDb'

Далее используем Ь в алгоритме в качестве новой точки.

2. Проверка допустимости2. Ожидаем улучшения значения потенциальной функции на величину, не меньшую, чем б на каждом шаге. Значение параметра б зависит от выбора параметра а в п. 1.2.3, который выбирается произвольно из интервала (0, 1), и как вариант для а выбрано значение 1/4. Значение параметра б [1, с. 384] определяется как

s а о = а---

2

(n -1)1 1 -

n -1

Таким образом, действия алгоритма сводятся к проверке

iff (b) > f (a) - б then закончить работу и вернуть А.

3. Проверка оптимальности3. Эта проверка проводится периодически, а именно только тогда, когда пройдет заданное время с момента последней проверки. В [1] доказывается, что за k = O (n(q + ln n)) шагов алгоритм Кармаркара находит такое решение, что

cT x >

cT x(0)

< 2-q.

T ( x ) =

I TD-1x'

1.2. Оптимизация ц.ф. clTx, где c' в симплекс сфере B (a0, ar). 1.2.1. Пусть

Dc, на вписанной

B ^

AD

IT

Тогда Кег В с Вычислим ортогональную проекцию вектора йс на ядро линейного оператора В:

-(e - BT (BBt г1)

Dc.

Соответствует этапу 4.

if (cTb < 2-q cTa0) then перейти в п. 4; a ^ b;

перейти в п. 1.

Замечание 12. Параметр q задает степень приближения полученного в результате работы алгоритма Кармаркара к истинному решению. Чем больше q, тем большее число итераций алгоритма потребуется для нахождения ответа (в случае его существования). В силу того, что после релаксации наша задача решается в кубе [0, 1]n, а затем округляется в вершины этого куба, достаточно выбрать q таким, чтобы точность вычислений достигала трех-четырех знаков после запятой.

2 Соответствует этапу 5.

3 Соответствует этапу 6.

c

p

cN <

1

n

а

D-1x

5. Сравнение надежностей решения ПСЛН алгоритмами Кармаркара, имитации отжига, Балаша и БИО

Для оценки надежности описанного выше способа (использующего эвристические приемы) применения алгоритма внутренней точки к решению ПСЛН проведены экспериментальные исследования. План эксперимента в точности совпадает с таковым из работы [2], что позволяет провести сравнительный анализ надежности алгоритма Кармаркара с другими, ранее примененными эвристическими алгоритмами. Для алгоритма Кармаркара используются значения параметров а = 0,25, q = 5, все координаты векторов x0, y0, v0, u0 выбраны равными 2. Напомним, что план эксперимента предполагает применение алгоритма к 9600 случайным совместным ПСЛН, которые разбиваются на 12 серий по 800 систем в зависимости от сочетания трех параметров. Один из этих параметров ограничивает максимальный абсолютный вес коэффициентов, остальные подробно описаны в [2]. В каждой серии системы делятся на 8 подсерий по 100 систем в каждой. Подсерия определяется числом переменных (30 или 60) и числом неравенств, которое выражается через число переменных с помощью мультипликативного фактора со значениями 1, 2, 3, 10. Смысл рассмотрения двух выбранных вариантов числа переменных заключается в том, что число переменных равное 30 позволяет перебрать все булевы вектора этой размерности, следовательно, при увеличении числа шагов эвристического алгоритма доля опробованных векторов может составить заметную долю всего пространства поиска. Для 60-ти переменных перебрать за приемлемое время на персональном компьютере сколько-нибудь заметную часть пространства поиска не представляется возможным.

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

Фактор

MAX SUM

SA Balas

Номер серии 17% 57%

26% 10%

В первой строке подтаблицы приведены усредненные значения надежности алгоритма БИО, который использует операцию взятия максимума (в первом столбце) или суммирования (во втором столбце). Надежность алгоритма БИО с использованием операции взятия максимума выделена зеленым цветом. Во второй строке подтаблицы приведены надежности алгоритмов имитации отжига и Балаша, соответственно. Лучшее значение надежности из четырех клеток в подтаблице выделено красным цветом.

Использование суммирования при вычислении невязки дало выигрыш алгоритма БИО только в 4 сериях из 12-ти по отношению к этому же алгоритму, но с использованием максимума. Однако, средний выигрыш по этим четырем сериям составил 35%, в то время как средний выигрыш невязки с использованием максимума равен всего 8%. В целом средняя надежность алгоритма БИО в варианте с суммированием равна 85%, что превышает на 6% надежность этого же алгоритма с использованием максимума и на 11% - надежность алгоритма имитации отжига. Выигрыш по отношению к алгоритму Балаша составляет 23%. По изложенным выше соображениям, а также с целью придания большей наглядности алгоритм Кармаркара сравнивается ниже только с алгоритмом БИО, который вычисляет невязку системы как сумму невязок отдельных неравенств. Результаты этого сравнения по сериям и факторам приведены в табл. 2.

Средняя надежность алгоритма Кармаркара превосходит надежность алгоритма БИО на 2%, что может считаться статистической погрешностью, и по этому показателю оба алгоритма не имеют явных преимуществ друг перед другом. Однако только в двух сериях (№ 7 и № 8) алгоритм Кармаркара проигрывает БИО со средним проигрышем 73%. В остальных 10-ти сериях алгоритм Кармаркара выигрывает у БИО со средним значением выигрыша 16% (при этом средняя надежность по 10-ти сериям равна 99%). Такое контрастное поведение алгоритма Кармаркара не характерно для других рассмотренных в [2, 3] алгоритмов, для которых надежность ни по одной подсерии не падала ниже 50%.

Алгоритм Кармаркара демонстрирует относительную независимость надежности решения от размера системы, в то время как другие эвристические алгоритмы более чувствительны к этому показателю, хотя для переопределенных систем (с фактором 10) все алгоритмы успешно справляются почти со всеми системами.

По результатам работы [2] можно убедиться, что разные эвристические алгоритмы по-разному добиваются успеха. Так таблица корреляции успехов из [2] показывает, что 22% всех систем не решили оба алгоритма (имитации отжига и Балаша), однако, алгоритм отжига решил 15% от общего числа систем, которые не решил алгоритм Балаша. Аналогично, алгоритм Балаш решил 2% систем, с которыми не справился алгоритм имитации отжига. Экспериментальный анализ алгоритма Кармаркара позволил выявить две труднорешае-мые им серии систем.

В табл. 3 приводятся сведения о суммарном покрытии в смысле решения систем линейных неравенств обоими алгоритмами (БИО и Кармаркара). Для наглядности приведены результаты как для варианта алгоритма БИО с суммированием (БИО MAX), так и для варианта со взятием суммы (БИО SUM) при вычислении невязки. Легко видеть, что в каждой серии есть задачи, которые представляют трудности для каждого алгоритма. Так в 1-й и 2-й сериях ни одним алгоритмом не решены одни и те же 4 системы. В то же время суммарное покрытие для алгоритмов Кармаркара и БИО SUM составило 98,9%. Серии с номерами 7 и 8 оказались трудны для алгоритма Кармаркара, БИО MAX справился с ними более чем в два раза эффективнее, а БИО SUM решил практически все системы из этих серий (доля нерешенных 0,7%). С другой стороны, по 3, 4, 5, и 6 сериям алгоритм Кармаркара решил все 609 систем, с которыми не справился алгоритм БИО SUM, и вообще показал на этих сериях 100%-ю надежность.

Маняев Г.О., Шурупов А.Н.

Таблица 1

Сравнение усредненных значений надежностей алгоритмов имитации отжига (SA), Балаша (Balas) и БИО

по сериям и в зависимости от размера системы

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

1 2 3 10 Итого

MAX SUM MAX SUM MAX SUM MAX SUM MAX SUM

Серия SA Balas SA Balas SA Balas SA Balas SA Balas

1 17% 57% 29% 96% 45% 100% 52% 100% 36% 88%

26% 10% 97% 47% 100% 87% 100% 100% 81% 61%

2 42%% 48% 54% 78% 67% 92% 100% 96% 66% 78%

13°% 12% 22% 33% 43% 64% 100% 100% 44% 52%

3 59%% 33% 100% 93% 100% 100% 100% 100% 90% 82%

2% 3% 36% 54% 86% 91% 100% 100% 56% 62%

4 55% 36% 100% 91% 100% 100% 100% 100% 89% 82%

23% 6% 96% 54% 100% 92% 100% 100% 80% 63%

5 58% 33% 100% 94% 100% 100% 100% 100% 90% 82%

25% 4% 98% 58% 100% 94% 100% 100% 81% 64%

6 56% 26% 100% 91% 100% 100% 100% 100% 89% 79%

20% 3% 97% 57% 100% 91% 100% 100% 79% 63%

7 100% 100% 64% 100% 49% 99% 20% 100% 58% 100%

100% 10% 79% 79% 56% 50% 100% 89% 84% 57%

8 99% 100% 57% 99% 49% 97% 63% 100% 67% 99%

99% 98% 62% 56% 55% 30% 100% 99% 79% 71%

9 61% 41% 100% 95% 100% 100% 100% 100% 90% 84%

33% 5% 98% 58% 100% 96% 100% 100% 83% 65%

10 59% 42% 100% 94% 100% 100% 100% 100% 90% 84%

35% 5% 96% 61% 100% 94% 100% 100% 83% 65%

11 59% 34% 100% 91% 100% 99% 100% 100% 90% 81%

1% 4% 48% 58% 80% 90% 100% 100% 57% 63%

12 60% 34% 100% 93% 100% 100% 100% 100% 90% 82%

26% 4% 98% 58% 100% 90% 100% 100% 81% 63%

Итого 60% 49% 84% 93% 84% 99% 86% 100% 79% 85%

33% 13% 77% 56% 85% 81% 100% 99% 74% 62%

Таблица 2

Сравнение усредненных значений надежностей алгоритмов Кармаркара и БИО по сериям и в зависимости от размера системы

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

1 2 3 10 Итого

БИО KAR БИО KAR БИО KAR БИО KAR БИО KAR

1 57% 99% 96% 100% 100% 100% 100% 100% 88% 100%

2 48% 99% 78% 100% 92% 100% 96% 100% 78% 100%

3 33°% 100% 93% 100% 100% 100% 100% 100% 82% 100%

4 36% 100% 91% 100% 100% 100% 100% 100% 82% 100%

5 33% 100% 94% 100% 100% 100% 100% 100% 82% 100%

6 26% 100% 91% 100% 100% 100% 100% 100% 79% 100%

7 100% 17% 100% 7% 99% 6% 100% 80% 100% 28%

8 100% 4% 99% 1% 97% 1% 100% 96% 99% 26%

9 41% 71% 95% 100% 100% 100% 100% 100% 84% 93%

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

10 42% 75% 94% 100% 100% 100% 100% 100% 84% 94%

11 34% 99% 91% 99% 99% 100% 100% 100% 81% 100%

12 34% 99% 93% 100% 100% 100% 100% 100% 82% 100%

Итого 49% 80% 93% 84% 99% 84% 100% 98% 85% 86%

Таблица 3

Суммарное покрытие СЛН алгоритмами БИО и Кармаркара

Серия Количество не решенных задач

Kармаркар ^рмаркар и БИО MAX ^рмаркар и БИО SUM

% шт. % % шт.

1 0,4% 3 0,4% 3 0,4% 3

2 0,1% 1 0,1% 1 0,1% 1

3, 4, 5, 6 0 0 0

7 72,6% 581 25,0% 200 0,4% 3

8 74,6% 597 23,8% 190 1,0% 8

9 7,4% 59 5,0% 40 6,0% 48

10 6,4% 51 4,8% 38 5,8% 46

11 0,2% 2 0 0,1% 1

12 1,1% 9 0,1% 1 0

Итого 13,6% 1303 4,9% 473 1,1% 110

Маняев Г.О., Шурупов А.Н.

Заключение

Проведенное исследование показало, что алгоритм Кармаркара (метод внутренней точки) может быть применен к задаче решения псевдобулевых систем линейных неравенств в модифицированном виде, так как оригинальный алгоритм не рассчитан на решение дискретных задач. Модификация характеризуется высокой средней надежностью решения ПСЛН - 86%. Аналогичные показатели имеет и другой ранее опубликованный эвристический алгоритм БИО с невязкой на основе суммирования, сочетающий в своем поведении алгоритмы Балаша и имитации отжига. Детальный анализ выявляет, что как для модификации алгоритма Кармаркара так и для алгоритма БИО находятся псевдобулевы системы линейных неравенств, которые один алгоритм

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

Литература

1. Karmarkar N. A new polynomial-time algorithm for linear programming // Combinatorica. 1984. № 4. Pp. 373-395.

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

3. Анашкина Н.В., Шурупов А.Н. Применение алгоритмов локального поиска к решению систем псевдобулевых линейных неравенств. // Прикладная дискретная математика. Приложение. 2015. № 8. С. 136-138.

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

5. Никонов В.Г. Пороговые представления булевых функций // Обозрение прикл. промышл. матем. Сер.: «Дискрет. матем.». 1994. Т. 1. № 3. С. 402-457.

6. Черникова Н.В. Алгоритм для нахождения общей формулы неотрицательных решений системы линейных неравенств // Ж. вычисл. матем. и матем. физики. 1965. 5. № 2. С. 334-337.

7. ХачиянЛ.Г. Избранные труды. М.: МЦНМО, 2009.

8. Бурделев А.В., Никонов В.Г., Лапиков И.И. Распознавание параметров узла защиты информации, реализованного пороговой k-значной функцией // Труды СПИИРАН. 2016. Вып. 46. C. 108-127.

Referens

1. Karmarkar N. A new polynomial-time algorithm for linear programming // Combinatorica. 1984. № 4. Pp. 373-395.

2. Anashkina N.V., Shurupov A.N. Experimental comparison of simulated annealing and Balas algorithms for solving linear inequalities systems // Applied Discrete Mathematics. 2014. № 7. Pp. 151-153.

3. Anashkina N.V., Shurupov A.N. Solving linear inequalities systems // Applied Discrete Mathematics. 2015. № 8. Pp. 136-138.

4. Balakin G.V., Nikonov V.G. On methods of Boolean equations reduction to systems of threshold relations // Obozrenie prikladnoy pro-miushlennoy matematiki. Ser.: Dickret. Matem. 1994. Vol. 1. № 3. C. 389-401.

5. Nikonov V.G. Threshold representations of Boolean functions // Obozrenie prikladnoy promiushlennoy matematiki. Ser.: Dickret. Matem. 1994. Vol. 1. № 3. C. 402-457.

6. Chernikova N.V. Algorithm for deriving general formula for nonnegative solutions of linear equations system // J. of Comp. Math. and Math. Phisics. 1965. 5. № 2. Pp. 334-337.

7. Hachiyan L.G. Selected works. Moscow: MCPME, 2009.

8. Burdelev A.V., Nikonov V.G., Lapikov I.I. Recognition of parameters of information security device, implemented by k-valued threshold function // Works of SPIIRAN. 2016. Vol. 46. Pp. 108-127.

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