Иллюстрация вычислительных процедур разбиения

-

МАТЕМАТИКА

УДК 519.854

В.И. Хохлюк

Институт математики им. С.Л. Соболева СО РАН

иллюстрация вычислительных процедур разбиения

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

СМЕШАННАЯ ЗАДАЧА, ЛИНЕЙНАЯ ЗАДАЧА, ОПТИМИЗАЦИЯ, ДВОЙСТВЕННОСТЬ, МНОГОГРАННЫЙ КОНУС, ГРАФИЧЕСКИЙ МЕТОД, ПРОЦЕДУРА РАЗБИЕНИЯ.

Введение

При численном решении практических смешанных задач оптимизации используются два основных подхода: метод ветвей и границ (частичный перебор) и метод секущих гиперплоскостей (представление дискретного множества системой линейных неравенств). Настоящая работа посвящена второму подходу.

Доказательства эквивалентности двух задач максимизации, а также теоремы и двух лемм представлены в работах [3 — 6]. Там же приведено описание двух итерационных вычислительных процедур разбиения.

В данной статье простейшая смешанная линейная задача максимизации (15) решена различными способами: графическим методом, трехшаговой процедурой, итерационными процедурами 1 и 2. Благодаря простейшей структуре предложенной задачи все вычисления выполняются очень просто и рекомендуются только как иллюстрация, дающая ключ к конструированию алгоритмов более высокого уровня сложности. Для машинных кодов, предназначенных для решения практических задач, разумеется, обычно необходимы алгоритмы

самой разной сложности. Это обстоятельство подразумевается и далее при описании всех решений простейших задач.

В этой статье, как и в предыдущей [4], используются общепринятые обозначения: N — множество всех натуральных чисел 12 3 •

Б" — множество всех "-векторов, каждая компонента которых равна либо нулю, либо единице, | Б" |= 2", я е N

Я" — множество всех "-векторов с действительными компонентами, я е N

Я + — множество всех "-векторов с неотрицательными действительными компонентами, " е N

Ъ" — множество всех "-векторов с целочисленными компонентами, " е N

Ъ" — множество всех "-векторов с неотрицательными целочисленными компонентами, " е N.

В частности, вектор-столбец записывается в строку без знака транспонирования. Вертикальная черта при записи задачи оптимизации с использованием фигурных скобок читается и понимается как «при условиях», а вертикальная черта в записи множества — как «для которых».

Постановка задачи

Рассмотрим смешанную линейную задачу максимизации:

тах{сх + ¿у | Ах + Ву < Ь, х > 0, х е Rр, у е Б с Rг, р е N, q е N1.

Если в задаче (1) Б — Bq (Б — Z+), то она называется смешанной двоичной (целочисленной) линейной задачей максимизации.

Здесь А — (тхр)-матрица, В — (m^q)-матрица; Ь — т-столбец; с и ¿—р- и q-строки соответственно. Все элементы матриц А, В, Ь, с и ¿ — целые числа.

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

Переменная, принимающая значения из некоторого дискретного множества, называется дискретной.

Примерами дискретных переменных могут служить:

двоичная переменная, принимающая либо значение 0, либо 1;

целочисленная переменная, принимающая значения из множества Z1;

неотрицательная целочисленная переменная, принимающая значения из множества Z+.

Задача, в которой присутствуют как непрерывные, так и дискретные переменные, называется смешанной. Простейшим примером такой задачи является смешанная двоичная линейная задача максимизации (1), в которой Б — Bq.

Определим следующие множества:

в Rт конус С — {и | иА > 0, и > 0};

в Rт многогранник Р — {и | иА > с, и > 0};

в Rт+1 конус С0 = {(и0, и) | -и0с + + иА > 0, (и0, и) > 0}.

Множества (2), (3), (4) связаны с задачей (1).

введем непрерывную переменную

х

принимающую действительные значения, и сформулируем новую смешанную линейную задачу максимизации:

тах{х0 | х0 - сх - ¿у < 0, Ах + Ву < Ь, х > 0, х е Rp, у е Б с Rq, р е N, q е

Базовые предпосылки для решения задачи

Утверждение. Задачи (1) и (5) эквивалентны в следующем смысле.

Вектор (х 0, х *, у *) есть оптимальное решение задачи (5) тогда и только тогда, когда х0* = сх * + ¿у * и вектор (х *, у *) является оптимальным решением задачи (1).

Доказательство утверждения представлено в работах [3, 4].

Каждой точке (и0, и) конуса С0 (4) сопоставим область в множестве R11+1, определенную как

{(х0, у) | и0х0 + иВу - и0¿у < иЬ, у е Б с Rq, q е ЭД.

Обозначим через О множество из Rq+1, определенное как

О — Р| {(х0, у) | и0х0 + иВу - u0¿y < иЬ,

у е Б с Rq, q е ЭД.

Множество О может быть пустым.

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

Н

О — Р| {(х0, у) | и0"х0 + иИВу - ^¿у < иИЬ,

И—1 (8) у е Б с Rq, q е Н е N.

Теорема о разбиении. Для смешанной задачи оптимизации (1) справедливы следующие утверждения.

1. Задача (1) недопустима тогда и только тогда, когда задача максимизации

тах{х0 |

недопустима, то есть тогда и только тогда, когда множество О пусто.

2. Задача (1) допустима, но не имеет оптимального решения тогда и только тогда, когда задача (9) допустима, но не имеет оптимального решения.

3. Если (х *, у *) — оптимальное решение задачи (1) и х0 — сх ' + ¿у*, то (,у*) — оптимальное решение задачи (9) и х* — оптимальное решение линейной задачи максимизации

шах{сх | Ах < Ь - Ву% х > 0}.

4. Если (х 0, у *) — оптимальное решение задачи (9), то задача (10) допустима и оптимальное значение целевой функции этой задачи равно х0 - йу*. Если х* — оптимальное решение задачи (10), то (х *, у *) — оптимальное решение задачи (1) с оптимальным значением х0* целевой функции.

Лемма 1. Если задача (9) допустима и множество Б является замкнутым и ограниченным, то переменная х0 не имеет верхней границы на множестве О тогда и только тогда, когда многогранник Р(3) пуст.

Пусть (( — некоторое конечное подмножество из конуса С0 (4), (( ^ 0, 2 с С0. Через О(0) обозначим множество из R4+1, определенное как

О(0) = П {(х0, у) | «0х0 + иВу - и{)йу < иЬ,

у е Б с Rг, V е N}.

Рассмотрим задачу максимизации

шах{х0 |

Если задача (12) недопустима, то и задача (9) недопустима, так как О с О((). С другой стороны, если вектор (х0*, у *) является оптимальным решением задачи (12), то нужно ответить на два вопроса: будет ли (х0*, у *) также оптимальным решением задачи (9) и, если нет, какое «лучшее» подмножество 0' из С0 может быть получено. Ответы на эти два вопроса даны в книге и статьях [3, 4, 6].

Условие оптимальности текущего решения формулируется в виде леммы 2. Выполнение условия оптимальности — это один из случаев завершения вычислительных процедур. В формулировке леммы 2 используется следующая линейная задача минимизации:

шт{«

Лемма 2. Если вектор (х^, у *) является оптимальным решением задачи (12), то он также будет оптимальным решением задачи (9) тогда и только тогда, когда

шт{и

Простые примеры решения смешанной задачи минимизации

рассмотрим простейшую конкретную смешанную целочисленную линейную задачу максимизации:

х,

у1

5 ^ шах 8 < 12,

х1 > 0, у е Z+.

Графический метод решения. На рис. 1

изображено допустимое множество задачи (15). Оно представляет собой два параллельных замкнутых отрезка: один с концами (0, 0) и (4, 0), а другой с концами (0, 1) и (4/3, 1) (эти отрезки на рис. 1 выделены жирными линиями). Выпуклая оболочка допустимого множества задачи (15) — это замкнутая область, ограниченная трапе-

Рис. 1. Геометрическое построение к задаче (15): вектор имеет координаты (1, 5); два параллельных горизонтальных отрезка допустимого множества выделены жирными линиями; выпуклая оболочка этого

множества заштрихована. Прямые I — IV — линии уровня целевой функции вида х1 + 5у1 = t , где t = 0 (I), 5(11), 19/3(111), 10(ГУ), прямая V - график функции 3х1 + 8у1 = 12. Оптимальное решение задачи — (4/3, 1), оптимальное значение — 19/3

цией с вершинами (0, 0), (0, 1), (4/3, 1), (4, 0) (она на рис. 1 заштрихована). Там же показаны четыре линии уровня целевой функции. Если перемещать линию уровня, проходящую через начало координат, параллельно самой себе в направлении вектора (1, 5), то она покидает (касается) выпуклую оболочку допустимых решений задачи (15) в точке (4/3, 1).

Таким образом, графическим методом найдены как оптимальное решение (4/3, 1), так и оптимальное значение, равное 19/3, задачи (15).

Теперь покажем, как графическим методом можно найти систему всех крайних целочисленных направлений конуса С0 (4) в задаче (15).

Начинаем с конуса, задаваемого неравенствами и0 > 0, и1 > 0, то есть совпадающего с неотрицательным квадрантом (этот конус выделен штриховкой на рис. 2, а). Очевидно, что одна из систем всех крайних направлений этого конуса представляет собой единичные векторы е0 = (1, 0) и е1 = (0, 1).

В задаче (15) имеется только одно основное линейное неравенство

-1 и0 + 3и1 > 0,

задающее конус С0 (выделен штриховкой на рис. 2, б). Прямая, задаваемая уравнением

-1 и0 + 3 и1 = 0,

разбивает плоскость на две полуплоскости.

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

(3, 1) = 3е0 + 1ер

где

3 = (-1, 3>(0, 1); 1 = | (-1, 3>(1, 0) |

(точкой обозначена операция скалярного умножения двух векторов).

В результате получаем систему всех крайних целочисленных направлений конуса С0 (4) в задаче (15), состоящую из векторов

Рис. 2. Графическое представление конусов, задаваемых неравенствами и0 > 0, их > 0 (а) и — 1и0 + 3их > 0 (б) (выделены штриховкой). Прямая I (отвечает уравнению _1и0 + 3и1 = 0) разбивает плоскость на две полуплоскости;

е0, е1 — единичные векторы

и1 =

при этом Н = 2 (см. определение (8)).

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

Трехшаговая процедура. Рассмотрим второй способ решения задачи.

Шаг 1. Находим систему всех крайних целочисленных направлений конуса С0 (4) в задаче (15).

Этот шаг уже выполнен выше (см. формулу (16)). Итак, эта система состоит из векторов и1 = (0, 1) и и2 = (3, 1); Н = 2. Выписываем конечную систему линейных неравенств (8), которая определяет множество О (оно определено формулой (7)):

х0 у1

0 8 < 12

3 —7 < 12

при этом у1 е Z+.

Шаг 2. Решаем смешанную задачу максимизации (9).

Для задачи (15) имеем следующую логическую цепь:

у1 = 0 влечет х0 < 4; у1 = 1 влечет х0 < 19/3.

оптимальное решение задачи есть вектор (х0*, у*) = (19/3, 1), а оптимальное значение — х0* = 19/3.

Шаг 3. Решаем линейную задачу минимизации (13).

Для (15) эта задача принимает вид

тт{и1(12 - 8 • 1) | и13 > 1, и1 > 0}, то есть

тт{и14 | и13 > 1, и1 > 0}.

Оптимальное решение задачи (17) есть (и*) = (1 / 3), а оптимальное значение равно 4/3.

Задача, двойственная к задаче (17), имеет вид

тах{1 х 1 | 3х1 < 4, х1 > 0}.

Оптимальное решение задачи (18) есть (х*) = (4/3), а оптимальное значение также равно 4/3.

Проверяем условие оптимальности (14). Для задачи (15) имеем

4/3 = 19/3 — 5-1.

Таким образом, условие оптимальности выполнено. Оптимальное решение задачи (15) есть (х*, у*) = (4/3,1), а оптимальное значение равно 19/3.

Итерационная процедура. В наших работах [3, 4] она была представлена как «итерационная процедура 1». Она может начинаться с произвольного конечного непустого подмножества 00, 0° с С0 (см. формулу (4)). Через V обозначаем счетчик итераций. Полагаем V = 0 [3, 4, 6].

итерационная процедура, используемая для решения задачи (15), начинает свою работу с множества

00 = {(0,0)} е С0 = = {(и0, и1) | -и01 + и13 > 0,(и0, и1) > 0}.

Итерация 0. Если множество О (0) (0 = 00 в определении (11)) является пустым, то процедура завершается: задача (1) недопустима.

Если и0 > 0 по крайней мере для одной точки (и0, и) е 0то переходим на шаг 1 итерации 1.

Если же и

0 для любой точки

(и0, и) е 0 , то полагаем х0 = +<», в качестве у0 выбираем у в произвольной точке (х0,у) е О(0°) (0 = 0° в (11)). Переходим на шаг 1 итерации 1.

Для задачи (15) и0 = 0 для любой точки (и0, и) е 0Полагаем х^ =у0 = 0. Переходим на шаг 1 итерации 1.

Итерация 1. Шаг 1. Решаем смешанную задачу максимизации

тах{х0 |

Если эта задача недопустима, то процедура завершается: задача (1) недопустима. Если (х00, у0) найдено как оптимальное решение задачи (19), то переходим на шаг 2 этой же итерации.

Легко показать, что для задачи (15) вектор (+<», 0) есть оптимальное решение задачи (19), а оптимальное значение выража-

ется как +<».

Шаг 2. Решаем линейную задачу минимизации

шт{и

Для (15) задача (20) имеет вид шт{и1(12 - 8 • 0) | и13 > 1, и > 0},

то есть

ш1п{и112 | и13 > 1, и > 0}.

Оптимальное решение последней задачи есть вектор (и°) = (1 / 3), а оптимальное значение равно 4.

Шаг 3 (реализуется один из пяти возможных случаев).

3.1. Если задача (20) недопустима, то задача (1) либо недопустима, либо не имеет конечного оптимального решения. с этой ситуацией можно столкнуться только на итерации 1.

3.2. Если задача (20) имеет конечное оптимальное решение и0 и

и°(Ь - Ву°) = х00 - йу0,

то процедура завершается. В этом случае если х0 есть оптимальное решение задачи, двойственной к задаче (20), то (х0, у0) есть оптимальное решение задачи (1) и х0 есть оптимальное значение целевой функции этой задачи.

3.3. Если

и°(Ь - Ву0) < х0 - йу0,

то формируем множество

00+1 = о0 ^ {(1,и0)},

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

3.4. Если значение целевой функции задачи (20) стремится к —да вдоль луча

{и | и = и0 + Ху° Д > 0},

где и0 — вершина многогранника Р (3), а V0 — направление крайнего луча конуса С (2), и если

и0(Ь - Ву°) > х0 - йу(21) то формируем множество

о0+1 = 00 ^ {(0,V0)}.

3.5. Если неравенство (21) не выполняется, то есть если

и°(Ь - Ву0) < х0 - йу0,

то формируем множество

00+1 = 00 и {(1,и0),(0,V0)}.

В случаях 3.4 и 3.5 увеличиваем нулевое значение счетчика итераций на единицу и переходим на шаг 1 итерации 2.

для задачи (15) имеет место случай 3.3, поскольку из шагов 1 и 2 этой же итерации следует неравенство

4 < — 5 • 0 = Формируем множество

00+1 = 00 и {(1,1/3)},

затем увеличиваем нулевое значение счетчика итераций V на единицу и переходим на шаг 1 итерации 2.

Вычисления итерации 1 полностью повторяются на итерациях 2, 3, ... соответственно для множеств 01,02,... В множествах 01,02,... присутствует элемент (0,0), но он не влияет на множества О(01),О(02),.... Поэтому при записи смешанной задачи максимизации этот элемент не учитывается. На итерациях 2, 3, ... приводятся результаты вычислений только для исходной конкретной смешанной задачи максимизации, в данном случае только для задачи (15).

Итерация 2. Шаг 1. Для (15) решаем смешанную задачу максимизации

шах{х0 | (х0, у1) е О(01)}. (22) Задача (22) принимает вид

шах{х0 11х0 + 3 • 8у - 1 • 5у1 < 3 • 12, у е Z+},

то есть

7

шах{х0 11 х0 - 3 у < 4, у1 е Z+}.

Оптимальное решение задачи (23) есть вектор (х^,у0) = (19/3, 1), а оптимальное значение равно 19/3.

Шаг 2. Для (15) решаем линейную задачу минимизации

шт{и

Задача (24) имеет вид

ттЦ(12 - 8 • 1) | и13 > 1, и1 > 0}, то есть

min{u:4 | иуЪ > 1, u > 0}.

Оптимальное решение задачи (25) есть вектор (uj) = (1 / 3), а оптимальное значение равно 4/3.

Шаг 3. Для задачи (15) имеет место случай 3.2, поскольку из шагов 1 и 2 этой же итерации следует равенство

4 / 3 = 19 / 3 - 5 • 1 = 4 / 3.

Рассмотрим линейную задачу максимизации

тах{1 х | 3х < 4, x > 0},

двойственную к задаче (25). Оптимальное решение задачи (26) есть вектор (x1) = (4/3), а оптимальное значение равно 4/3.

Таким образом, оптимальное решение задачи (15) есть вектор (4/3, 1), а оптималь-

ное значение равно 19/3. Итерационная процедура завершает свою работу.

Анализ алгоритма показывает, что при решении задачи (15) предложенной итерационной процедурой используется только одно из двух возможных крайних направлений, что дает существенную экономию времени вычисления.

Заключение

Итак, на конкретном примере простейшей смешанной задачи максимизации показаны возможности трех способов ее решения и их преимущества перед использующимися в имеющейся вычислительной практике. Важно отметить, что предложенную задачу легко решить с помощью другой итерационной процедуры (она описана в наших работах [3, 4] и названа там итерационной процедурой 2), использовав аналогию с итерационной процедурой, описанной в настоящей статье.

СПИСОК ЛИТЕРАТУРЫ

1. Хохлюк В.И. Параллельные алгоритмы целочисленной оптимизации: Монография. М.: Радио и связь, 1987. 224 с.

2. Хохлюк В.И. Крайние лучи заостренного конуса // Труды ИСА РАН. 2008. Т. 32(3). Динамика неоднородных систем. С. 231—241.

3. Хохлюк В.И. Методы дискретной оптимизации: Учеб. пособие. Ч. 1. Новосибирск: Изд-во Новосиб. гос. ун-та, 2013. 154 с.

4. Хохлюк В.И. Процедуры разбиения

смешанной задачи оптимизации // Научно-технические ведомости СПбГПУ. Физико-математические науки. 2013. № 2 (170). С. 181-190.

5. Ху Т. Целочисленное программирование и потоки в сетях: Пер. с англ. M.: Мир, 1974. 519 с.

6. Benders J.F. Partitioning procedures for solving mixed-variables programming problems // Numer. Math. 1962. Vol. 4. No. 3, pp. 238-252.

СВЕДЕНИЯ ОБ АВТОРЕ

ХОХЛЮК Виталий Иванович — доктор физико-математических наук, старший научный сотрудник института математики им. С.Л. Соболева СО РАН, доцент кафедры математической экономики Новосибирского государственного университета.

630090, Россия, г. Новосибирск, ул. Коптюга, 4 vit@academ.org

Khokhlyuk V.I. THE ILLUSTRATION OF THE CALCULATING PARTITIONING PROCEDURES.

The present article continues a series of papers devoted to the numerical solution of practical mixed optimization problems. Previously the partitioning theorem of the indicated mixed maximization problem was formulated and proved. In this article some methods for solving problems by partitioning, including the graphical method, a three-step procedure, and the iterative procedures 1 and 2, are shown by a specific example of the solution of the simplest mixed maximization problem. A feasible set of the problem and the convex hull of this set are graphically presented within the framework of solving the problem.

MIXED PROBLEM, LINEAR PROBLEM, OPTIMIZATION, DUALITY, POLYHEDRAL CONE, GRAPHICAL METHOD, PARTITIONING PROCEDURE.

REFERENCES

1. Khokhlyuk V.I. Parallel algorithms of integer optimization. Moscow, Radio i svyaz, 1987. 224 p.

2. Khokhlyuk V.I. Extreme races of a pointed cone. Proceedings of ISA RAS, 2008, Vol. 32

3. Khokhlyuk V.I. Discrete optimisation methods. Novosibirsk, Novosibirsk State University, 2013. 154 p.

4. Khokhlyuk V. I. Partitioning procedures for a mixed optimisation problem. St. Petersburg State Polytechnical University Journal : Physics and mathematics, 2013, No. 2

5. Hu T. Integer programming and network flows. Moscow, Mir, 1974. 519 p.

6. Benders J.F. Partitioning procedures for solving mixed-variables programming problems Numer. Math, 1962, Vol. 4, No. 3, pp. 238-252.

THE AUTHOR

KHOKHLYUK Vitaly I.

Sobolev Institute of Mathematics

4 Acad. Koptyug Ave., Novosibirsk, 630090, Russia

vit@academ.org

© Санкт-Петербургский государственный политехнический университет, 2014