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

МАТЕМАТИКА

УДК 519.854

В.И. Хохлюк

ПРОЦЕДУРЫ РАЗБИЕНИЯ СМЕШАННОЙ ЗАДАЧИ ОПТИМИЗАЦИИ

V.I. Khokhlyuk

Sobolev Institute of Mathematics, 4 Acad. Koptyug Ave., Novosibirsk, 630090, Russia.

PARTiTiONiNG PROCEDURES FOR A MiXED OPTiMiZATiON PROBLEM

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

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

Some partitioning theorem and two lemmas are proved for a mixed optimization problem. These are a theoretical background for calculating partitioning procedures which are detailed in this paper.

MIXED PROBLEM. INTEGER PROBLEM. OPTIMIZATION. DUALITY. POLYHEDRAL CONE. PARTITIONING PROCEDURES.

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

Сначала излагается постановка задачи и доказывается эквивалентность двух задач оптимизации. Затем формулируется и доказывается теорема о разбиении смешанной целочисленной задачи оптимизации. В доказательстве этой теоремы показывается, в какой формулировке используется теорема Минковского — Фаркаша. Также обсуждается возможное применение теоремы о разбиении при решении практических задач.

Дается доказательство двух лемм, в частности на основании леммы 2 формулируется критерий оптимальности.

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

Теорема о разбиении смешанной задачи оптимизации

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

тах{сх + Д^ + ЗД £ Ь х й 0, ^

х е Яр, у е S с , р е N д е N1.

Здесь Я — действительнозначная матрица т х р; Ь — т-столбец, с — р-строка,

состоящие из действительных чисел; /(у) — действительнозначная функция, которая может быть нелинейной; Ду) — вектор-столбец с действительнозначными компонентами (они также могут быть нелинейными). Функция /у) и вектор-столбец Ду) определены на произвольном множестве £ [1, 3, 4, 8].

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

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

целочисленная переменная, принимающая значения из множества 21; неотрицательная целочисленная переменная, принимающая значения из множества Т}+; двоичная переменная, принимающая либо значение 0, либо значение 1.

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

/(у) = йу, ^(у) = Ву, у е Ъ\.

Рассмотрим следующие множества: в Ят определим выпуклый многогранный конус

С = {и | иА > 0, и > 0}; в Ят — выпуклый многогранник

Р = {и | иА > с, и > 0}; в Ят+1 — выпуклый многогранный конус С0 = {(и0, и) | -и0с + иА > 0, (и0, и) > 0}.

Введем непрерывную переменную х0 и сформулируем новую смешанную задачу оптимизации:

тах{х0 | х0 - сх - /

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

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

Достаточность. Если допустимое решение (, х *, у *) задачи (2) не является оптимальным, то существует допустимое решение (х'0, х', у') задачи (2) с большим значением х '0 целевой функции, то есть

сх' + / ( у ') > х '0 > х0* = сх * + / (у *),

а это приводит к противоречию с тем, что (х *, у *) есть оптимальное решение задачи (1).

Необходимость.Если х* < сх + /(у*), то существует допустимое решение задачи (2) с большим значением целевой функции, например,

(х0* + (1/2)( сх * + / (у *) - х0*), х *, у *),

а это приводит к противоречию с тем, что вектор (х0, х *, у *) является оптимальным решением задачи (2).

Если же допустимое решение (х*,у*) задачи (1) не является оптимальным, то существует допустимое решение (х', у') задачи (1) с большим значением целевой функции, то есть

х '0 = сх' + / (у') > сх * + / (у *) = х*,

а это снова приводит к противоречию с тем, что вектор (, х*, у *) есть оптимальное решение задачи (2).

Утверждение, т. е. эквивалентность задач (1) и (2), доказано.

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

{(х0, у) | их0 + и¥(у) - и„/(у) < иЬ, у е £}.

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

& = п {(х0, у) | их0 + и¥(у) -

(«0 ,и )еС0

- и0/(у) < иЬ, у е £}.

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

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

Н

в = п {(*0, У) I моЧ + ыкВ(у) -

к=1

-ык/(у) < ы% у е Б}, Н е N.

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

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

тах{Хо|

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

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

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

тах{сх | Ах < Ь - В

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

Доказательство. Сначала сформулируем теорему Минковского — Фаркаша, а затем дадим формулировку этой же теоремы в используемых нами обозначениях. Дело в том, что теорема Минковского — Фаркаша имеет несколько эквивалентных формулировок [2], поэтому каждый раз требуется уточнение, какая именно формулировка имеется в виду.

Теорема Минковского — Фаркаша о совместности системы линейных неравенств ([2, с. 42]): система линейных неравенств

Ах < Ь, х > 0

совместна тогда и только тогда, когда для любой точки ы из конуса

С = {м | ыА > 0, ы > 0} выполняется неравенство ыЬ > 0.

Эта формулировка — суть аналог теоремы Кронекера — Капелли о совместности системы линейных уравнений.

Теорема Минковского — Фаркаша в требуемой нам формулировке. Пусть х'0 — произвольное число и у' — произвольная точка из множества Б.

Тогда система линейных неравенств

-сх < -х'0 + /(у'), Ах < Ь - В(у'), х>0

совместна тогда и только тогда, когда для любой точки (ы0, ы) из конуса

С0 = {(ы0, ы) | -ы0с + ыА > 0, (ы0, ы) > 0} выполняется неравенство

ы0(-х '0 + / (у')) + ы(Ь - В (у')) > 0.

Последнее неравенство в приведенной формулировке теоремы Минковского — Фаркаша и неравенство, определяющее множество в, эквивалентны, и оба выполняются для любой точки (ы, ы) е С0.

Из теоремы Минковского — Фаркаша (в последней формулировке) следует, что система линейных неравенств

-сх < -х'0 + /(у'), Ах < Ь - В(у'), х>0

совместна тогда и только тогда, когда ы0 х'0 + ыВ(у') - ы0/(у') < ыЬ

для любой точки (ы, ы) е С0.

Следовательно, если вектор ((0, х', у') — допустимое решение задачи (2), то ((0, у') — допустимое решение задачи (4). Наоборот, если вектор ((0, у') является допустимым решением задачи (4), то существует вектор х' е Я + такой, что ((0, х', у') — допустимое решение задачи (2).

Из этого следует доказательство утверж-

дений 1 и 2 теоремы, так как задачи (1) и (2) эквивалентны.

Более того, отсюда также следует, что если вектор (х *, у *) является оптимальным решением задачи (1) и х* = сх * + / (у*), то (х0*, у *) — оптимальное решение задачи (4).

Наконец, если вектор

задачи (1) (у * зафиксировано), отсюда сле-

*

дует, что х — оптимальное решение задачи (5).

Теорема доказана.

Данная теорема о разбиении смешанной задачи оптимизации не налагает каких-либо дополнительных условий на функцию /(у), вектор-функцию Д(у) и на множество £, на котором определены /(у) и Д(у).

На практике, однако, /(у), Ду) и £ должны иметь такие свойства, чтобы задача (4) могла бы быть решена существующими методами. Другими словами, необходимо каждый раз анализировать, недопустима задача (4) или допустима, не находя при этом оптимального решения или находя ее оптимальное решение, если такое существует.

Если эти условия выполняются, то теорема о разбиении утверждает, что задача (1) может быть решена двухшаговой процедурой. Первый шаг включает решение задачи (4) и приводит к заключению, что задача (1) недопустима либо что она допустима, без нахождения оптимального решения, или к оптимальному значению целевой функции задачи (1) и к оптимальному вектору у * из £. В последнем случае требуется второй шаг: вычисление оптимального вектора х* е Я +, который находится решением линейной задачи оптимизации (5).

Решение задачи (4) можно рассмотреть более детально. Даже если процедура пригодна для решения задач такого типа, то прямое решение задачи (4) требует предварительного вычисления системы неравенств, определяющей множество О. Согласно выражению (3), теоретически это возможно осуществить, если найти все крайние направления конуса С0, но сделать

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

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

Две леммы

В этом разделе делаем следующие предположения:

множество £ является замкнутым и ограниченным;

функция /(у) и компоненты столбца Ду) — непрерывные функции на некотором множестве £ с Я4, содержащем £.

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

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

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

Достаточность. По предположению существует хотя бы одна точка (х'0, у') е О. Если многогранник Р пуст, то и0 = 0 для любой точки (и0, и) е С0. Следовательно, множество О имеет вид

О = П {(х0, у) | иД(у) < иЬ, у е £}.

иеС

Отсюда следует, что (х0, у') е О для любого значения х0.

Необходимость. Если многогранник Р не пуст, то существует, по крайней мере, одна точка (1, и') е С0. Следовательно, для

любого допустимого решения (х0, у) задачи (4), учитывая условия, наложенные на /(у), Т(у) и Б, имеем:

х0 < тах{ы 'Ь - ы'Т(у) + /(у)} < +<».

уеБ

Лемма 1 доказана.

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

в(0) = п {(х0, у) | ых0 + ыТ(у) -

(ы0 ,ы )е0

-ы0/(у) < ыЬ, у е Б}.

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

тах{х0 |

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

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

т1п{ы

Доказательство. Поскольку максимальное значение переменной х0 на множестве в(0) предполагается конечным, из рассуждений, аналогичных приведенным при доказательстве леммы 1, следует, что множество 0 содержит по крайней мере одну точку (ы0, ы), для которой ы0 > 0. Следовательно, многогранник Р не пуст, то есть линейная задача оптимизации

тт{ы

допустима.

Заметим сначала, что оптимальное решение (х0*, у *) задачи (6) является также оптимальным решением задачи (4) тогда и только тогда, когда (х0, у *) е в . Это очевидно. Поскольку в с в(0), имеем:

тах{х0 | х, у) е в(0)} > > тах{х0 | (х0, у) е в}.

По определению множества в точка (х 0, у *) принадлежит в тогда и только тогда, когда

ы0(-х0 + / (у *)) + ы(Ь - Т (у *)) > 0

для любой точки (ы, ы) е С0. Это выполняется тогда и только тогда, когда ы(Ь - Т (у *)) > 0 для любой точки ы е Си

ы

для любой точки и е Р, то есть тогда и только тогда, когда

т1п{ы

Из теоремы двойственности следует, что линейная задача оптимизации

тах{сх | Ах < Ь - Т

*

имеет конечное оптимальное решение х , для которого

сх* = тт{ы

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

сх * + / (у *) < тах{х0 | х, у) е в} < ^ < тах{х0 | х, у) е в(0)} = х*.

Наконец, приняв во внимание выражения (9), (11) и (12), заменим неравенство (9) на равенство (7). Лемма 2 доказана.

Если линейная задача оптимизации (8) имеет конечное оптимальное решение, то по крайней мере одна из вершин многогранника Р содержится в множестве оптимальных решений. Хорошо известно, что в этом случае симплекс-метод приводит к оптимальной вершине ы* многогранника Р. Согласно лемме 2, если

ы' (Ь - Т (у *)) = х0 - / (у *),

то оптимальное решение (, у*) задачи

(4) найдено. Кроме того, симплекс-метод

*

дает в то же время оптимальное решение х двойственной линейной задачи оптимизации (10), а из теоремы следует, что (х*, у") — оптимальное решение задачи (1). Если

ы-

то точка

к ( . 0

Если линейная задача оптимизации (8) не имеет конечного оптимального решения, то симплекс-метод приводит к вершине и многогранника Р и к направляющему вектору V одного из его крайних лучей, которое дает крайнее направление одного из крайних лучей конуса С0, так что значение целевой функции и(Ь - Д (у *)) стремится к -да вдоль луча

{и | и = и + XV, X > 0}. Кроме того, имеем неравенство V(Ь - Д (у *)) < 0,

из которого следует, что точка (0, V) из С0 не принадлежит ( . В этом случае формируем новое подмножество С из С0 добавлением точки (0, V) к ((.

В любом случае пусть (х'0, у') будет оптимальным решением задачи оптимизации

тах{х0 | (х0, у) е О(()}.

Тогда в первом случае имеем

~и(Ь - Д(у ')) > х'0 - /(У '), а во втором случае —

у(Ь - Д(У)) > 0.

Отсюда, учитывая неравенства (13) и (14), получаем, что

(х ' 0, У ') * (х0, у *).

К тому же, поскольку С з ( , имеем О((') с О((). Следовательно,

х 0

< х*

В случае если линейная задача оптимизации (8) не имеет конечного решения, то может случиться, что вышеупомянутая вершина и удовлетворяет неравенству (13). Тогда обе точки (1, и) и (0, V) не принадлежат С и новое подмножество С из С0 может быть получено добавлением обеих точек к С. Также важно отметить, что система ограничений для множества О((') получается добавлением к системе ограни-

чений для С) либо неравенства

уД(у) < уЪ , либо двух неравенств:

уД (у) < уЪ , х 0 + иД (у) - / (у) < иЬ.

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

Вычислительная процедура 1

Процедура начинается с данного конечного подмножества ( с С0. Обозначим через V счетчик итераций. Присваиваем V значение 0 [1].

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

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

Если же и0 = 0 для любой точки (и0, и) е 00, то полагаем х0 = ; в качестве у0 выбираем у в произвольной точке (х0, у) е О(q°) и переходим на шаг 2 итерации 1.

Итерация V. Шаг 1. Если v-я итерация выполнена, то решаем задачу оптимизации

тах{х0 |

Если задача (15) недопустима, то процедура завершается: задача (1) недопустима.

Если (, уу) найдено как оптимальное решение задачи (8), то переходим на шаг 2 этой итерации.

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

тт{и

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

Если задача (16) имеет конечное оптимальное решение и" и

и4

то процедура завершается. В этом случае, если х" есть оптимальное решение задачи,

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

ы *

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

0"+1 = 0^ {

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

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

{ы | ы = ыу + Хуу > 0},

где ы" — вершина многогранника Р, V — направление крайнего луча конуса С, то для

ы"

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

0 = 0 ^ {

Однако если неравенство (20) не выполняется, то есть если

ы"

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

0= 0^ {

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

Данная процедура завершается за конечное число итераций одним из трех результатов:

задача (1) недопустима; задача (1) допустима, но не имеет оптимального решения;

оптимальное решение задачи (1) получено.

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

на; и, согласно доказанной выше теореме, процедура остановится после следующей итерации.

Правила завершения процедуры обоснованы следующим образом.

1. в(0У) з в и пункт 1 теоремы: задача (1) недопустима.

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

3. Лемма 2 и пункт 4 теоремы: оптимальное решение задачи (1) получено.

Поскольку в(0У) з в(0У+1) зв, последовательность {х0} не возрастает и

тах{х0 |

для любого V > 0.

Если задача (16) имеет оптимальное решение ыу, то двойственная к ней задача

тах{сх | Ах < Ь - Т

имеет оптимальное решение ху, для которого выполняется равенство

ыу (Ь - Т(у*)) = сх\

Поскольку (ху, у) — допустимое решение задачи (1), то из пункта 3 теоремы следует:

ы - (Ь - Т (у *)) + / )у -) < < тах{х0 | (х0, у) е в}.

Таким образом, в конце каждой итерации имеем верхнюю и нижнюю границы для максимального значения х0 на множестве в, а также для максимального значения целевой функции задачи (1):

тах{ык(Ь - Т(ук)) + /(ук)} <

Здесь

< тах{х0 | (х0, у) е в} < х0.

ык (Ь - Т(ук)) = -о

если задача (16) на к-й итерации не имеет конечного оптимального решения; иначе это оптимальное значение целевой функции этой задачи.

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

из Ят+1, которое всегда принадлежит конусу имеем соотношение

С0. Затем переходим на шаг 2 итерации 1. При этом х0 = , а у0 е £ — произвольная точка.

Модификация вычислительной процедуры 1

Часто на практике намного удобнее решать задачу

тах{сх | Ах < Ь - Д

двойственную к задаче (16), чем саму эту задачу. В этом разделе описан эффективный способ получения полной информации для представления вычислительной процедуры 1 с помощью решения задачи (29) вместо задачи (16) [1].

Сначала заметим, что задача (29) может быть недопустима, так как у задачи (16) может быть бесконечное оптимальное решение. Чтобы избежать «недопустимости», заменим выпуклый многогранник Р на ограниченный выпуклый многогранник

Р

Здесь через е обозначен вектор-столбец, все компоненты которого равны единице, а число М настолько велико, что все вершины многогранника Р (если он не пустой) содержатся в области

{и | ие < М, и > 0}.

Тогда задача (29) заменяется задачей тах{сх - М10 | Ах - е^0 < Ь - Д (у "),

х > 0, ¿0 > 0},

которая всегда допустима.

Если число М достаточно большое (см. далее), то справедливы следующие утверждения:

задача (16) недопустима тогда и только тогда, когда задача (32) имеет бесконечное оптимальное решение;

если (ху, z)) есть оптимальное решение, найденное для задачи (32), и = 0 , то (х", У") есть допустимое решение задачи (1).

Для оптимального решения и" (М), найденного в то же время для двойственной задачи

тт{и(Ь - Д(у")) | иА > с,

ие < М, и > 0},

и

Так как и"(М) также является допустимым решением задачи (16), то из равенства (34) и теоремы двойственности для линейной задачи оптимизации следует, что оно также является оптимальным решением задачи (16). Тогда, опираясь на лемму 2 и теорему, находим, что (х", у") есть оптимальное решение задачи (1) тогда и только тогда, когда

сх /

Если = 0, но соотношение (7) не выполняется, или если > 0, то рассмотрим оптимальное решение и"(М) более подробно.

Хорошо известно, что компоненты и"(М) равны компонентам «а-строки» (известной также как «(¿. — с)-строка») в оптимальной симплекс-таблице, соответствующим исходным слабым переменным. Из определения ^-строки следует, что это линейная вектор-функция от М, то есть

а у

где а2,у > 0 (другими словами, число М предполагается по возможности малым, см. далее).

Отсюда следует, что и"(М) — также линейная вектор-функция от М:

и "

Векторы а1" и а следовательно и векторы и1" и и2", получены заменой целевой функции сх — М^ в оптимальной симплекс-таблице на сх и —^ соответственно и затем пересчетом ^-строки. Будем обращаться к а1" и а2'" как к М-компонентам ^-строки; аналогично, и1" и и2" — суть М-компоненты оптимального решения двойственной задачи. Для любой заданной оптимальной симплекс-таблицы М-компоненты не зависят от М.

Благодаря конструкции многогранника Р(М), любая вершина Р есть вершина из Р(М). Более того, как было доказано, любая вершина из Р(М) имеет вид

и

где и — вершина из Р; V есть либо нуль,

либо направляющий вектор крайнего луча из С; Х — некоторое неотрицательное число. _

Обратно, если V есть такой направляющий вектор, то_найдется, по крайней мере, одна вершина ы из Р такая, что

~ М - ие-

ы(М) = ы + —=-V

уе

есть вершина из Р(М). Следовательно, вершина (37) из Р(М) может быть записана в виде

ыV

где ыу — вершина из Р, V — направление крайнего луча из С.

Единственная проблема состоит в вычислении ы" и V"' из М-компонент ы1у и ы2 у из ыу(М).

Очевидно, что

V = ы Если ы2'V = 0, то

и если ы2у ф 0, то ыу есть такая точка на луче

{ы | ы = ы1'" + Хы2'\Х> 0},

которая также принадлежит Р и соответствует наименьшему значению М, для которого вышеизложенное справедливо.

Общеизвестным свойством й-строки оптимальной симплекс-таблицы задачи (32) является то, что это минимальное значение М (Мт1п), для которого

й\ы) = й^ + Мй^ > 0.

Следовательно,

Г й?

=тах &

По теореме двойственности также имеем соотношение

ыУ (Ь - Т (у -)) = сх - - Мт;п

В итоге получаем следующую модификацию вычислительной процедуры 1.

Вычислительная процедура 2. Эта процедура также начинается с данного конечного подмножества 00 с С0. Более того, подхо-

дящее значение М должно быть известно (см. далее). Обозначаем через V счетчик итераций. Присваиваем V значение 0.

Итерация 0. Эта итерация такая же, как в процедуре 1.

Итерация V. Шаг 1. Этот шаг такой же, как в процедуре 1.

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

тах{сх - М10 | Ах - е£0 < Ь - Т(уу), х > 0, £0 > 0}.

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

Если задача (45) имеет конечное оптимальное решение (ху, ^), то имеют место два случая:

1. Если ^0 = 0 и

сху + / (у") = х0,

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

2. Если ^0 = 0 , но

сху + / (у") < х0,

илиесли ^0 > 0 ,тоопределимМ-компоненты й1^ и й^ й-строки в оптимальной симплекс-таблице и М-компоненты ы1у и ы2у оптимального решения двойственной задачи.

Если ы2'" = 0, то пусть

ы

0.

Если ы2у ф 0, то вычислим

Г йу

= ^х Г-

й > 01

и пусть

ыу = ы1 + М^ы2

V = ы

Тогда, если

схМт1п£0 < х0- /(у-), то формируем множество

04+1 = 0 ^ {(1, ы -), (0, V -)},

и если

мV = Ы1'V

м1'V и V

V

схМт1П> х0 - /(У"), то формируем множество

0 = 0 "и {

Наконец, заменяем счетчик итераций " на " + 1 и выполняем шаг 1 итерации

В заключение следует отметить, что подробности о теореме и двух леммах можно найти, например, в работах [1, 8]. Следует обратить внимание читателя на то, что в

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

Для численного решения специальной линейной задачи оптимизации, которая возникает в вычислительных процедурах 1 и 2, можно использовать прямой метод, детально описанный в работах [5 — 7].

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

1. Benders, J.F. Partitioning procedures for solving mixed-variables programming problems [Text]/ J.F. Benders // Numer. Math. - 1962. - Vol. 4. -№ 3. - P. 238-252.

2. Зоркальцев, В.И. Системы линейных неравенств [Текст]: Учеб. пос. /В.И. Зоркальцев, М.А. Киселева. - Иркутск: ИГУ, 2007. - 99 с.

3. Ларин, Р.М. Методы оптимизации. Примеры и задачи [Текст]: Учеб. пос. / Р.М. Ларин,

A.В. Плясунов, А.В. Пяткин. - Новосибирск: НГУ, 2003. - 74 с.

4. Хохлюк, В.И. Параллельные алгоритмы целочисленной оптимизации [Текст] /

B.И. Хохлюк. -М.: Радио и связь, 1987. -224 с.

5. Хохлюк, В.И. Прямой метод целочис-

ленной оптимизации [Текст] / В.И. Хохлюк.

- Новосибирск: Препринт СО РАН; ИМ, 2002.

- № 106. - 39 с.

6. Хохлюк, В.И. Процедура прямого метода для системы неравенств [Текст] / В.И. Хохлюк // Труды ИСА РАН. Динамика неоднородных систем. - 2008. - Т. 32(2). - С. 198-206.

7. Хохлюк, В.И. Процедура прямого метода для системы уравнений [Текст] / В.И. Хохлюк // Труды ИСА РАН. Динамика неоднородных систем. - 2008. - Т. 32 (2). - С. 207-215.

8. Ху, Т. Целочисленное программирование и потоки в сетях [Текст] /Т. Ху: Пер. с англ.

- М.: Мир, 1974. - 519 с.

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

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