УДК 519.857

Об одном подходе к решению задачи оптимального распределения ресурса большой размерности с помощью динамического программирования

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

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

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

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

Такая задача обычно состоит в максимизации или минимизации нелинейной целевой функции.

Для решения такой задачи с успехом используется метод динамического программирования, основы которого разработаны Р. Беллманом.

НЕ нашли? Не то? Что вы ищете?

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

В данной работе предлагается подход для решения одномер­ной дискретной задачи распределения ресурса, который основан на многократном использовании метода Беллмана каждый раз с но­вым по величине или знаку шагом дискретизации распределяемого ресурса. В настоящее время существуют работы 3, 4 и др., в которых рассматривается возможность декомпозиции системы на "быструю" и "медленную" подсистемы с двукратным использованием метода Беллмана. Такой подход использует меньший объем вычисле­ний, приводит к нахождению квазиоптимального решения. Разбиение оптимизируемой системы на множество подсистем с динамически из­меняющейся дискретизацией распределяемых ресурсов и с движением процесса оптимизации «вперед» и «назад», предлагаемое в данной работе, дает больший выигрыш в объеме вычислений и позволяет получить строго оптимальное решение.

Постановка задачи. Будем искать целочисленное решение cледующей задачи:

(1)

(2)

- целые, (3)

где - вогнутые непрерывные скалярные функции.

Схема метода. Решением задачи (1)-(3) с шагом K будем считать такое решение, при котором xi принимает значения, кратные K , для всех i = , где К > 0 и целое. Способ выбора K будет рассмотрен ниже.

Идея предлагаемого подхода состоит в нахождении сначала приближенного решения задачи (1)-(3) с грубым шагом K. Исходя из него с шагом 1 находится решение x” некоторой вспомогатель­ной задачи, для которого справедливо

(4)

где - компонента оптимального решения исходной задачи.

Затем, используя решение как опорное, находится опти­мальное решение .

Решение задачи (1)-(3) разобьем на 2 этапа.

1 этап. Найдем решение задачи (1)-(3) с шагом K. Будем считать для простоты, что M кратно K.

2 этап. На этом этапе решаются вспомогательные задачи с шагом I.

1) (5)

(6)

(7)

Решение задачи (5)-(7) обозначим через .

Положим .

2) (8)

(9)

(10)

Все три вспомогательные задачи решаются последовательно по схеме Беллмана.

Решение задачи (8)-(10) обозначим через , тогда ре­шение задачи (1)-(3) с шагом 1 имеет вид:

(11)

Ниже будет показано, что вектор x” обладает свойством (4) и, как следствие из этого, что вектор x*, вычисленный:по формуле (11), является оптимальным в задаче (1)-(3).

Заметим, что если функция f(x) вогнута, то для любых x1 < x2 и > 0 выполняется условие

(11’)

Причем, если здесь имеет место равенство, то функция f(x) линейна на отрезке с угловым коэффициентом

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

Лемма 1. Если и компоненты оптимального решения исходной задачи (1)-(3), причем , то справедливо неравен­ство

(12)

где

- целое число, удовлетворяющее условию

.

Доказательство. От противного. Пусть справедливо неравенство:

Тогда

(13)

Добавив к правой и левой частям неравенства (13) остальные члены суммы (1) на оптимальном решении, получим противоречие с опти­мальностью в задаче (1)-(3):

Нетрудно видеть, что если в (12) имеет место равенство, то решение задачи (1)-(3) является неединственным.

Лемма 2. Существует решение x* задачи (1)-(3) с шагом 1, для которого одновременно не выполняются два неравенства:

и

для некоторых , где , - компоненты решения задачи (1)-(3) с шагом K.

Доказательство. Предположим, что в множестве оптимальных решений задачи (1)-(3) с шагом 1 существует решение , для которого выполняется

и (14)

(в противном случае утверждение леммы очевидно).

Из леммы 1 при следует, что

(15)

Используя (14), (15) и (11’), получим:

(16)

Оценивая (16), видим, что возможны два случая:

1.  ,

2.  . (17)

Рассмотрим оба варианта подробнее.

1. Из следует

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

Следовательно, вариант 1 невозможен.

2. Из равенства

согласно (11’), следует, что функция линейна на отрезке с угловым коэффициентом

.

Аналогично, из равенства

следует, что

В силу равенства (17)

.

Пусть

.

Тогда

, (18)

(19)

В сипу линейности функций на отрезках , с одним и тем же угловым коэффициентом, из (18) и (19) следует, что решение как и яв­ляется оптимальным в задаче (1)-(3) и для него выполняется

или .

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

Следствие. Пусть

0, если ,

, если ,

тогда

.

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

и в сипу определения

.

Тогда, так как

найдется номер такой, что

.

Теорема 1. В результате решения задачи (5)-(7) получим та­кое решение , для которого найдется хотя бы одно опти­мальное решение задачи (1)-(3) с шагом I, удовлетворяющее усло­вию

(20)

Доказательство. Предположим, что в множестве решений зада­чи (1)-(3) с шагом 1 найдется такое решение , для которого выполняется , где . Тогда обяза­тельно найдется такое , для которого выпол­няется .

Из (11) и леммы 2 следует, что

.

Далее доказательство аналогично доказательству леммы 2, когда получим два варианта:

1.

2.

Рассматривая вариант 1, приходим к выводу, что он невозможен, так как противоречит оптимальности в задаче (5)-(7). Рассматривал вариант 2, найдем другое решение задачи (1)-(3) с ша­гом 1, для которого (20) выполняется.

Следствие. Пусть - решение задачи (8)-(10), тогда - решение задачи (1)-(3).

Доказательство. Пусть

;

.

Нетрудно видеть, что для любых , удовлетворяющих условиям (9)-(10),

.

Отсюда следует, что множество . Так как по теореме 1 вектор , то . Но это и означает, что если - решение задачи (8)-(10), то - решение задачи (1)-(3).

Известно2, стр.368, что количество просматриваемых ва­риантов при решении задачи (1)-(3) по схеме Беллмана равно

.

При достаточно больших N и M можно пользоваться приближенной оценкой

(21)

При решении задачи предлагаемым методом в два этапа количество просматриваемых вариантов можно оценить:

.

Взяв производную и приравняв ее к нулю, подучим значение K, при котором величина минимальна:

.

При данном значении K

. (22)

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

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

Этап 1. Решается задача (1)-(3) с шагом K1 .

Получаем решение , оптимальное с шагом K1.

Этап 2. а) Решается задача (5)-(7) с шагом K2 при .

Получаем решение .

б) Решается задача (8)-(10) с шагом K2 при .

Получаем решение , оптимальное с шагом K2.

Этап 3. а) Решается задача (5)-(7) с шагом K3 при .

Получаем решение .

б) Решается задача (8)-(10) с шагом K3 при .

Получаем решение , оптимальное с шагом K3.

* * *

Этап n-1. а) Решается задача (5)-(7) с шагом Kn-1 при .

Получаем решение .

б).Решается задача (8)-(10) с шагом Kn-1 при .

Получаем решение , оптимальное с шагом Kn-1.

Этап n. а) Решается задача (5)-(7) с шагом 1 при .

Получаем решение .

б) Решается задача (8)-(10) с шагом 1 при .

Получаем решение , оптимальное с шагом 1.

Пользуясь (21) и определением челночного хода, получим количест­во рассматриваемых вариантов при решении задачи (1)-(3) методом челночного хода:

,

где для ,

для ,

для .

- количество вариантов, рассматриваемых на i-м этапе.

Взяв производные и npиpaвняв их к нулю, получим систему из уравнений, решение которой выглядит следующим образом:

,

.

Полученные значения шагов дискретизации являются оптимальными при решении задачи (1)-(3) методом челночного хода в n этапов.

Подставив значения в (23), нетрудно получить следующее соотношение

. (25)

Из (23) и (25) следует

. (26)

Формула (26) отражает количество просматриваемых вариантов опти­мизи­руемой системы при оптимальных значениях , по­лученных из (24).

Для нахождения оптимального количества этапов при проведе­нии метода челночного хода возьмем производную и приравняем ее к нулю. Получим:

.

Необходимо учесть, что к n и предъявляется тре­бование целочис­ленности. Поэтому на практике оптимальное значе­ние n* количества этапов равно значению целой части или , в зависимости от количества вычислений, которое оценивается из (26). Значения берутся как ближайшие целые к полученным из (23).

Кроме того, значение K может быть не кратно M. Поэтому в реальной двухэтапной задаче уравнение (2) примет вид:

,

где и кратны K.

Уравнение (9) также изменится:

.

Для метода челночного хода можно доказать теорему, аналогичную теореме 1, т. е. показать, что для любого i - го этапа и вектор , полученный в результате решения задачи (8)-(10), будет являться решением задачи (1)-(3) с шагом Ki, а вектор , полученный в результате решения задачи (8)-(10) на n - м этапе, будет решением задачи (1)-(3) с шагом 1.

Исходя из всего вышесказанного, количество просматриваемых вариантов в двухэтапной задаче будет несколько отличаться от (22), но отличие на практике является незначительным. В многоэтапной задаче уравнение (2) примет вид:

,

где и кратны K1. А уравнения (6) и (9) для i - го этапа будут иметь вид соответственно:

и ,

где и кратны K.

В многоэтапной задаче количество просматриваемых вариантов также незначительно отличается от (26).

Пример. N = 100, M = Количество вычислений по схеме Беллмана

.

Используя челночный ход: n* = 13; .

Выигрыш предложенного метода по сравнению со схемой Беллмана составит

.

Результаты практической реализации челночного хода подтвер­дили теоретические расчеты. В таблице 1 приведены сводные резуль­таты сравнения классического метода Беллмана с предложенным мето­дом челночного хода.

Таблица 1

Способ применения динамического программирования

Время решения

N = 3

M = 10

N = 10

M = 102

N = 10

M = 103

N = 10

M = 104

N = 102

M = 103

N = 102

M = 104

N = 102

M = 105

Классический

20 сек.

1,3 мин.

2,3 час.

220 * час.

22 * час.

2,2*103 * час.

2,2*105 * час.

Челночный

4 сек.

13 сек.

19 сек

27 сек.

2 час.

4 час.

6 час.

Однотипные прикладные задачи решены на одной и той же ЭВМ типа IBM 390 по одной программе. Результаты, получен­ные классическим и челночным способом, полностью совпадают. Время решения, обозначенное * получено расчетным путем, так как решить такую задачу не представлялось возможным из-за недостатка ресурса времени ЭВМ.

Примечания.

1 / Численные методы решения экстремальных задач. - М.: Наука, 1980.

2 Хедди Дж. / Нелинейное и. динамическое программирова­ние. - М.: Мир, 1967.

3 Dynamic programming using singular petrurbations. Krikorian K. V., Leondes N. T. “Journal of optimization Theory and Applications.”, 1982, 38, №2, 221-230.

4 Chow Joe H., Kokotovic Petar V. A two stage Lyapunov - Bellman feeddback design of a class of nonlinear systems. “Proc. 19th IEEE Conf. and Contr. incl. sump. Adapt. Process., Albuquerque, N. M., 1980. Vol. 2.“ New York, N. Y., 1980, .