Структурно-эквивалентные функции в задачах дискретной оптимизации

УДК 65.012

атематические проблемы управления

СТРУКТУРНО-ЭКВИВАЛЕНТНЫЕ ФУНКЦИИ В ЗАДАЧАХ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ

В. Н. Бурков

(1) Институт проблем управления им. В. А. Трапезникова РАН, г. Москва;

(2) Вологодский государственный педагогический университет

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

ВВЕДЕНИЕ. ОСНОВНЫЕ ПОНЯТИЯ

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

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

Пример 1. Рассмотрим функцию четырех переменных 2

/

Ее сетевое представление приведено на рис. 1, где

2

У1 = ХХХ2 + X1 ,

У2 = У\Х3,

Уз = ^

у4 = Х3Х4,

У5 = У2 + У3 + У4.

На рис. 2 приведено другое сетевое представление функции (1), где

У1 = Х1Х2Х3,

2

У2 = Х1 Хр

У3 = Х1 +

У4 = ^

У5 = У1 + У2 + у4.

Рис. 2. Вариант сетевого представления функции

Определение. Функции /(х) и ф(х) называются структурно-эквивалентными (с-эквивалентными), если существуют сетевые представления этих функций такие, что соответствующие сетевые структуры совпадают.

Пример 2. Рассмотрим функцию

ф(х) = (хх + х2)х3(х1 + х4) + х3х4.

Нетрудно показать, что одно из сетевых представлений этой функции имеет вид, представленный на рис. 1. ♦

1. МЕТОД СЕТЕВОГО ПРОГРАММИРОВАНИЯ

Рассмотрим следующую задачу дискретной оптимизации: определить вектор х є X, обеспечивающий

тах /

х є X

при ограничении

ф(х) т 6. Далее будем предполагать, что

х = П X,

где X — дискретное множество чисел.

Заметим, что в виде (4) несложно представить и систему неравенств:

Обозначив

фу.(х) < 6, і = 1, т .

ф(х) = тах ф/х), у у

получаем ограничение (4).

Пусть функции /(х) и ф(х) в задаче (3), (4) являются с-эквивалентными. Построим их общее сетевое представление. Пусть далее целевая функция / — монотонная функция обобщенных переменных У (без ограничения общности можно принять, что / — возрастающая функция у). Аналогично примем, что функция ф также является возрастающей функцией у. В сетевом представлении выделим вершины нулевого уровня, которым со-

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

У = /

при ограничении

II = ф(.(х) < р,

где р принимает все допустимые значения.

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

Теорема 1. Величина ук(Ь) является верхней оценкой для исходной задачи (3), (4).

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

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

Пример 3. Рассмотрим задачу (3), (4) с функцией /(х), определяемой выражением (1) и функцией ф(х), определяемой выражением (2). Примем х( = (1; 3) для всех

/ = 1, 4 . Пусть Ь = 30.

1 шаг. Решаем задачу максимизации

при ограничении

__ і £

у1 = х1х2 + х 1

*і = хі + х2 т Рі,

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

Таблица 1

6 18

4 12

2 2

*і Уі

2 шаг. Решаем задачу максимизации У2 = УЛ

при ограничении

*2 = < Р2.

Решение приведено в табл. 2.

Таблица 2

при ограничении

*5 = г2 *3 < /V

18 54

12 36

6 18

4 12

2 2

*2 У2

3 шаг. Решаем задачу максимизации У3 = х1х4

при ограничении

г3 = х1 + х4 < р4. Решение приведено в табл. 3.

Таблица 3

6 9

4 3

2 1

*3 Уз

4 шаг. Решаем задачу максимизации

У4 = Х3Х4

при ограничении

г4 = х3х4 < р4. Решение приведено в табл. 4.

Таблица 4

9 9

3 3

1 1

*4 У4

5 шаг. Решаем задачу максимизации У5 = У2 + Уз

Решение приведено в табл. 5.

В правой части табл. 5 оставлены только Парето-оп-тимальные варианты.

Таблица 5

9 / /6 11 / /12 21 / /24 — —

4 3 5 / / 8 15 / /16 21 / /24 —

/2 3 /* / 4 13 / /8 19 /" /12 37 / /24

У3А/ /^2 2 / /2 12 / /^ 18 / /6 36 / /12

24 37

12 19

8 13

4 3

*5 У 5

6 шаг. Решаем задачу максимизации Уб = У4 + У 5

при ограничении

*б = *4 + *5 < 30.

Решение приведено в табл. 6.

В табл. 6 находим клетку с максимальным верхним числом Уб = 40. Согласно теореме 1, это число является оценкой сверху для решения исходной задачи. Для определения оптимального решения оценочной задачи применяем метод «обратного хода». Из табл. 6 определяем

У4 = 3, г4 = 3, у5 = 37, г5 = 24.

Из левой части табл. 5 определяем

У2 = 36, г2 = 12, У3 = 1, г3 = 2.

Из левой части табл. 4 определяем два возможных варианта:

1) х^) = 1, х^) = 3;

2) Х^) = 3, Х,^) = 1.

Из левой части табл. 3 определяем х1(У3) = 1, х4(У3) = 1.

Из левой части табл. 2 определяем

х,^) = 3, У = 12, *1 = 4.

И, наконец, из левой части табл. 1 определяем

*1^) = 3, х^) = 1.

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

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

Разобьем множество всех решений исходной задачи на два подмножества. В первом подмножестве х1 = 1, а во втором х1 = 3.

Оценка первого подмножества. Полагаем х1 = 1 в функциях /(х) и ф(х) и применяем описанный ранее алгоритм. Далее приведена результирующая табл. 7 значений *б и уб.

Максимальное верхнее число уб =16 определяет верхнюю оценку первого подмножества, ^(х1 = 1) = 16.

Оценка второго подмножества. В табл. 8 приведены значения *б и уб.

Верхняя оценка для второго подмножества ^(х1 = 3) = = 24. Выбираем второе подмножество.

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

Первое решение: х1 = 3, х2 = 1, хз(у2) = 1, хз(у4) = 3, х4(уз) = 1, х4(у4) = 3 не является допустимым для исходной задачи, поскольку хз(у2) * хз(у4) и х4(уз) * х4(у4).

Второе решение: х1 = 3, х2 = 1, хз(у2) = хз(у4) = 1, *4(Уз) = *4(У4) = 3 является допустимым для исходной задачи и, следовательно, является оптимальным.

Итак, получено оптимальное решение:

х1 = 3, х2 = 1, хз = 1, х4 = 3 со значением целевой функции, равным 24. ♦

2. ДРЕВОВИДНАЯ СТРУКТУРА СЕТЕВОГО ПРЕДСТАВЛЕНИЯ

Для ряда задач существуют сетевые представления, в которых сеть является деревом. В этом случае при ре-

Рис. 3. Сетевое представление функций

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

Пример 4. Пусть х. = {1; 3} для всех / = 1, 3 ,

/

ф

Представим функцию /(х) в виде /(х) = х2(х1 + 2хз).

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

У1 = х1 + 2хз; *1 = х1хз;

У2 = у1х2; *2 = *1 + 2х2.

Подставляя в функцию (6) минимальное значение х2 = 1, получаем ограничение *1 < 8. Решение задачи приведено в табл. 9 и 10.

(Ур zi) =

Максимальное верхнее число в клетках табл. 10 определяет оптимальное решение х1 = 1, х2 = 3, хз = 3, со значением целевой функции 21. ♦

3. СЕТЕВЫЕ ПРЕДСТАВЛЕНИЯ АДДИТИВНЫХ ФУНКЦИЙ

Рассмотрим случай, когда функция

П

/

I = 1

где х. е X.

Теорема 2. Аддитивная функция с-эквивалентна любой функции того же числа переменных.

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

вершины сети, / = 1, п . Для каждого значения х. е X. определим поток величины /(х.) из вершины х. в конечную вершину сетевого представления. В силу условий «пото-ковости» величина потока в конечной вершине равна /(х.) для любого сетевого представления. Теорема доказана. ♦

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

Пусть переменная х. принимает т. значений х.,

j = 1, т. Обозначим 5.. — поток величины с.. = /(х.) из

/ I/ 'Л /

вершины х. в конечную вершину, 5 = {5./} — совокупность всех потоков (их число равно М = X т.), Д5) —

/

оценка сверху величины (7), полученная методом сетевого программирования при сетевом представлении, определяемом совокупностью потоков 5. Естественно поставить задачу определения такой совокупности потоков 5, для которой оценка сверху минимальна. Эту задачу назовем двойственной к исходной. Сформулируем ее.

Двойственная задача. Определить совокупность потоков 5, для которой оценка Д5) минимальна.

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

В качестве примера рассмотрим задачу назначения: максимизировать функцию

п

/(х) = х с.

/ = 1

при ограничениях х. = {0; 1}; /, j = 1, п ,

X х. < 1, / = 1, п;

у

X х. < 1, 3 = 1, п.

/

Рассмотрим сетевое представление системы ограничений, приведенное на рис. 4 для случая п = 2. Вершина У. соответствует /-у ограничению (8), а вершина — 7-му ограничению (9). Конечная вершина соответствует опе-

у 1 (У2 Zl Z2

*11 ) ( *12 ) [ *21 ) ( *22

Рис. 4. Сетевое представление системы ограничений

рации взятия максимума, что позволяет свести все ограничения к одному:

max maxI x- maxI x

ij\ m 1

j i

Если x.. = 0, то с.. x.. = 0, и поток из соответствующей

y У У

вершины равен нулю. Если x. = 1, то поток равен с.. Представим с.. в виде с.. = uy + vy, где u7 1 0 и vy 1 0 — по-

У У У У У У

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

W = I иу Ху j

при ограничении

I Ху m 1.

j

Решение очевидно:

Fmax(u/) = max uy.

j

В вершинах zy решаются задачи: максимизировать

ф/У = z Vy Xy

i

при ограничении

I Xy m 1.

i

Решение также очевидно:

°max(Vy) = max Vy.

Двойственная задача: минимизировать

I max uy + I max vy.

i j j 1

при ограничениях

u y + v y = cy ^ j ^ .

Заметим, что в оптимальном решении можно положить

u У = u . — max u y.

У j У

Обозначим

г = тах |_0; тах (сг-- — иг)1

В этом случае задача (10), (11) сводится к следующей: минимизировать сумму

Е «,• + Е

I У

при ограничениях м 1 0, V, 1 0,

«,• + V,. 1 Су, г, j = 1, и .

Это обычная двойственная задача для задачи назначения.

4. ПРИМЕР РЕШЕНИЯ ДВОЙСТВЕННОЙ ЗАДАЧИ

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

3

Е /(х X

/ = 1

где каждое х принимает два значения — 4 или 6, при ограничении

ф(х) = х\ + х1 х2хз + х^ < 200.

Значения Дхг.) при х;. = 4 и 6, і = 1, 3 приведены в табл. 11.

Таблица 11

X і

1 2 3

4 12 8 16

6 18 15 24

Сетевое представление функции ф(х) приведено на рис. 5.

Примем, что потоки по дугам (хр у) и (хр у2) из вершины х1 равны 6 при х1 = 4 и 9 при х1 = 6, а потоки по дугам (х3, у) и (х3, у3) из вершины х3 равны 8 при х3 = 4 и 12 при х3 = 6 (т. е. делим соответствующее значение целевой функции пополам).

1 шаг. Решаем задачу оптимизации в вершине (у, ^): максимизировать выражение 6хп + 9 х12 + 8 х21 + 15х22 +

Рис. 5. Сетевое представление функции

+ 8х31 + 12х32 при ограничениях х, = {0; 1}; г = 1, 2, 3; У = 1, 2;

(4х11 + 6х12) (4х21 + 6х22) (4х31 + 6х32) < р,

Х11 + х12 = 1, х21 + хц 1,

х31 + х32 = 1.

Максимальное значение р легко получить, если подставить в функцию (12) минимальные значения х\ = 16

и х3 = 16. Получаем р = 168. Теперь задачу можно решить простым перебором. Получаем табл. 12 оптимальных решений.

Таблица 12

Уі 22 29 33

*1 64 96 144

Яр *2, Х3 4; 4; 4 4; 6; 4 4; 6; 6

2 шаг. Решаем задачу, соответствующую вершине (у2, г2). Решение приведено в табл. 13.

Таблица 13

(у2, г2) =

6 3 9 \ ^ 0 ° \ 38 ^^^132 42 ^^^180

6 6 28 80 2 5 3 0 6 9 3

хі 22 ^^64 6 9 9 2 33 ^\44

3 шаг. Решаем задачу оптимизации, соответствующую вершине (у3, £3). Решение приведено в табл. 14.

Таблица 14

V

Оптимальному решению соответствует клетка с максимальным верхним числом. Это клетка (у3, г3) = (51; 196). Двигаясь от конца к началу, определяем оптимальное решение оценочной задачи. Имеем:

1) х3(у3) = 6; (у2, г2) = (39, 160);

2) х^) = 4; (У1, 21) = (33, 144);

3) х^) = 4; х2(у1) = 6; х^) = 6.

Поскольку значения х1 = 4; х2 = 6; х3 = 6 одинаковы во всех случаях, полученное допустимое решение является оптимальным. Однако это не всегда так. Пусть, например, Ь = 170. В этом случае оптимальному решению оценочной задачи соответствует клетка (у3, 23) = (50; 168). Двигаясь с конца, определяем оптимальные значения переменных оценочной задачи:

1) х3(у3) = 6; (у2, г2) = (38, 132);

2) х^) = 6; (У1, 21) = (29, 96);

3) х^) = 4; х2 = 6; х3^) = 4.

В данном случае х3(у1) ф х3(у3). Для улучшения оценки изменим потоки по дугам. Очевидно, что целесообразно уменьшить потоки по дугам (х1, у2) и (х3, у3) с тем, чтобы верхняя оценка уменьшилась. Примем

^2(х1, у2) = 6; ^2(х3, у3) = 9;

^2(х1, у1) = 12; ^2(х3, у1) = 15.

Решаем оценочную задачу.

1 шаг. Решаем задачу оптимизации в вершине (у1, 21) — табл. 15.

Таблица l5

Уі 22 29 29

Zj б4 9б 9б

x1, x2, x3 4; 4; 4 4; б; 4 4; 4; б

2 шаг. Решаем задачу оптимизации в вершине (у2, г2) — табл. 16.

Таблица 16

б Зб 28 1OO 35 "Y32

б ^іб 28 8O 35 112

xi Vzi 22 б4 29 9б

3 шаг. Решаем задачу оптимизации в вершине (y3, z3) — табл. 17.

Таблица l7

9 Зб 37 ""пб 44 148

8 1б Зб 9б 43 128

x3 У2А2 28 8O 35 ''Л2

Значение оценки F = 44. Двигаясь с конца, определяем решение оценочной задачи:

1) х3(у3) = 6; (у2, г2) = (35, 112);

2) х^) = 4; (ур 21) = (29, 96);

3) х^) = 4; х2 = 4; х^) = 6.

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

ЗАКЛЮЧЕНИЕ

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

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

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

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

ЛИТЕРАТУРА

1. Бурков В. Н, Буркова И. В., Овчинникова Т. И. Метод сетевого программирования // Проблемы управления. — 2005. — № 3. — С. 23—29.

2. Бурков В. Н., Буркова И. В. Метод дихотомического программирования. — Теория активных систем // Тр. между-нар. науч.-практ. конф. (17—19 ноября 2003 г. Москва, Россия). — М.: ИПУ РАН, 2003. — Т. 1 — С. 25—26.

3. Бурков В. Н., Буркова И. В. Задачи дихотомической оптимизации // Материалы междунар. науч.-техн. конф. «Системные проблемы качества, математического моделирования, информационных и электронных технологий». — М.: Радио и связь, 2003. — С. 23—28.

8 (0742) 334-90-51;

e-mail: irbur27@mai'l.ru

Статья представлена к публикации членом редколлегии

А.Д. Цвиркуном.