Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1376.pdf
Скачиваний:
16
Добавлен:
15.11.2022
Размер:
19.28 Mб
Скачать

Как видно из формул (9.36М9.39), на каждом шаге условной оптими­ зации как верхнего, так и нижнего уровня отыскивался максимум функции одной переменной. Такое упрощение решения явилось следствием деком­ позиции исходной задачи.

9.8.Многомерные задачи динамического программирования

Врассмотренных выше задачах вектор состояния S имел размерность 1 (или 0 в задаче о кратчайшем пути). Если размерность вектора S (число

параметров состояния) больше 1, то говорят, что задача многомерна в смысле динамического программирования. Многомерные задачи порож­ дают определенные проблемы при реализации вычислительной схемы ме­ тода ДП. Покажем на примерах, как возникают такие задачи и с чем при­ ходится сталкиваться при их решении.

Задача 1. Необходимо распределить два вида ресурсов в объеме X и Y соответственно между N производствами при известных функциях прибы­ ли Rjixj, у}, j = 1Д Здесь Xj, yj - количество ресурса 1-го и 2-го вида, по­ требляемоеу'-м производством.

Запишем модель задачи:

N

Z’ R j ( X j , y j ) ^ > i пах;

И

 

N

 

 

;=1

 

 

;=i

и »-

 

о 1Л

> :

 

(9.40)

(9.41)

(9.42)

(9.43)

Очевидно, что задача представима как Д-шаговая (по числу производств). Для принятия решения по распределению ресурсов нужно знать их количе­ ство и число производств, участвующих в распределении. При выделении ресурсов одному из производств изменяется объем ресурсов, направляе­ мых на остальные производства. Поэтому состояние характеризуется дву­ мя параметрами: количеством ресурса 1-го вида V и 2-го вида U (V^ X, U <Y). Введем последовательность функций:

f k{V,U) = max'£Rj(Xj,y j ),k = Щ

(9.44)

;=1

и рассмотрим к оставшихся производств (шагов), между которыми нужно распределить ресурсы в количестве V и U. Приняв решение о выделении к-му производству произвольного допустимого количества ресурсов хк и уь будем иметь прибыль от этого производства /?*(**, ук), а на остальные к - 1 шагов останется ресурсов V - JC* 1-го вида и U —ук 2-го вида. Следуя прин­

ципу оптимальности, распределим оставшиеся ресурсы оптимальным обра­ зом, что обеспечит максимальную прибыль от к — 1 производств, то есть f k - \ ( V - X k ,U - ук ). Прибыль же от всех к шагов составит

Ш х к , Ук) + f k - i ( V - X k , U - у к ) .

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

/ к< У ,и ) = ш х [ Ы х к,ук) + / ы ( У - х к, и - у к)], к >2. (9.45) ойукт

Задача 2. Распределению подлежит один вид ресурса, но в системе имеются ограничения, связанные с его использованием. Это могут быть ограничения на общий объем, вес, габариты, стоимость и др. Рассмотрим случай двух ограничений, согласно которым фактические значения учиты­ ваемых показателей использования ресурса не могут превышать величин А

и В. Тогда модель задачи можно представить в виде:

 

Z = £ Zf /) -> extr,

(9.46)

i=i

 

£ср;(*;)<Д,

(9-47)

i=l

 

Х\|/;(х,.)£В,

(9.48)

f=i

 

Vxj > 0,

(9.49)

где x t- количество ресурса, вьщеляемое /-му потребителю; Z,(x,) -

показа­

тель эффективности /-го потребителя; ф,(х,), vj/,(х,) - функции ограничивае­ мых показателей.

Для применения метода ДП необходимо, как всегда, определить пара­ метры состояния. Нетрудно видеть, что информация, достаточная для при­ нятия решения на текущем шаге, должна содержать значения ограничи­ вающих показателей. Они же непосредственно влияют на оптимальное значение эффективности системы. Кроме того, изменение ресурса на /-м шаге влечет изменение этих показателей к следующему шагу. Следова­ тельно, в процедуре ДП ограничивающие показатели а и Ь выступают в ка­ честве параметров состояния (а<А,Ьй В).

Определим функции последовательности как

к___

f k(a,b) = extr£ Z, (xt),k = l,N

(9.50)

i=i

 

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

f k(a,b)= extr [Zk (хк) + /*_,(а-ц>к(хк) , Ь - \ у к(хк))]. (9.51)

ф*(**)£«

Чi k ( x k ) < b

Проанализируем полученные выражения (9.45) и (9.51). При их выво­ де не возникло принципиальных затруднений. Хотя число распределяемых ресурсов разное, в обеих задачах функции последовательности зависят от двух параметров состояния. Нетрудно понять теперь, что размерность вектора состояния связана с числом ограничений, включающих в себя пе­ ременные всех шагов. Трудоемкость решения сравниваемых уравнений разная, так как различно число переменных, по которым ищется экстре­ мум. При нелинейных функциях ф* и у* может усложниться перебор до­ пустимых хкв (9.51). Однако эти различия не столь существенны, большее значение имеет одинаковая размерность вектора состояния.

Покажем на задаче 1, к чему приводит увеличение числа параметров состояния. Уравнение (9.45) решается для всех возможных состояний, чис­ ло которых зависит от шага дискретности и числа параметров состояния. Пусть тх иту - число возможных значений ресурсов X и Y соответственно, тогда число возможных состояний будет равно трпу. Для каждого из них в результирующей таблице решения уравнения (9.45) на к-м шаге должны быть представлены V, U, х к,* ук иfk(V,U). Для вещественного числа требу­ ется хотя бы 6 байт памяти, поэтому одна строка результирующей таблицы будет занимать не менее 30 байт. При тх = ту = 100 число возможных со­ стояний, а значит и число строк, составит 104. Следовательно, для запоми­ нания одной таблицы потребуется около 300 кбайт. Для эффективного рас­ чета нужно иметь в оперативной памяти две таблицы - к-ю и {к- 1)-ю. Вы­ нос этих таблиц во внешнюю память сделает метод ДП практически мало­ пригодным, так как затраты времени на решение задачи многократно уве­ личатся. Теперь нетрудно оценить, насколько будут возрастать требования к памяти с увеличением числа параметров состояния до 3; 4 и более.

Таким образом, при решении многомерных задач сталкиваемся с про­ блемой реализации вычислений по рекуррентным соотношениям. Сама идея метода ДП настолько привлекательна, что, обнаружив труднопреодо­ лимое препятствие применению метода в виде отмеченной проблемы, Веллман назвал ее “проклятием размерности".

Естественно, появилась необходимость найти пути решения возник­ шей проблемы. К предложенным средствам можно отнести использование множителей Лагранжа, аппроксимацию в области стратегий, принципиаль­ но иной способ решения рекуррентного уравнения, применение идей по­

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

9.9. Снижение размерности с помощью множителей Лагранжа

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

В задаче 1 состояние описывалось двумя параметрами, что обуслов­ лено наличием двух ограничений. Для уменьшения размерности на 1 дос­ таточно из модели (9.40)-(9.43) убрать одно из ограничений, что можно сделать, если удаляемое ограничение включить в критерий задачи с неоп­ ределенным множителем Лагранжа X. Тогда модель измененной задачи

примет вид:

 

 

Я =

- V L y j -> max,-

(9.52)

Н

У=1

 

N

= х,

(9.53)

S X;

\/xj,yj >0.

(9.54)

Как будет доказано ниже, задача (9.52М9.54) при определенных усло­ виях эквивалентна исходной задаче (9.40)-(9.43). Так как ограничения (9.53), (9.54) не связывают между собой переменные yj, то есть они стали независимыми, то справедлива следующая цепочка равенств:

_

N

 

N

 

шах R = max шах Y [Я, (х,, у -) - Ху, ] =шах У тах[Я. (х..у *)- Ху, ] =

I X j )

{ y j ) * - (

\ X J ) ^

y j

 

 

N

при X = const,

 

 

= max V h,(x,)

 

 

{XJ ] м

 

 

 

где

 

 

___

 

 

hj(Xj) = max[Rj(Xj,yj)-Xyj],

j = l,N

(9.55)

Функции hj{Xj) имеют смысл, если максимум в (9.55) достигается при ко­ нечных значениях у,-, что будет всегда, если

о при у, -> оо.

(9.56)

У)

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

Как видно из (9.55), вычисление функции А/л;) при фиксированном значении X, сводится к нахождению максимума функции одной перемен­ ной для всех возможных значений xj, что не вызывает особых затруднений (для дифференцируемых Rjixj^yj) максимум можно найти аналитически). При известных /г/хД; = 1Д задача (9.52Н9.54) сводится к следующей:

£ Л Д х ,)-м п ах ;

(9.57)

М

 

X * j = X - ,

(9.58)

Н

 

\/Xj > 0.

(9.59)

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

/*(У) = т а х £ / 1у(х Д

;=i

 

 

где V - параметр состояния, значения которого

не превосходят X. Для

функций/* справедливо рекуррентное соотношение

 

 

fk(V) = max[/i* (х*)+/ы(V-xk)),

(9.60)

в котором /(V ) = hi(V), х,* = V.

 

 

Вычисления по формуле (9.60) проводятся, как обычно, от /

к /«, за­

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

оптимизация, начиная

с V =X, которая дает значения х*. По последним из функций Л/(х7) опреде­

ляют значения д . Теперь следует вспомнить об условии (9.42), которое не

*

* *

вошло в измененную задачу. Если Ху^ = Y, то найденное решение

Xj, уд­

ивляется оптимальным решением задачи (9.40)-(9.43). В противном

случае

придется продолжить расчеты.

 

Нетрудно увидеть, что оптимальное решение измененной задачи зави­ сит от принятого значения множителя X. Поэтому при невыполнении ус­ ловия (9.42) нужно изменить значение X и повторить весь расчет, начиная с вычисления функций hficj). В данной задаче при изменении X можно воспользоваться очевидным свойством: с увеличением X будет монотонно

убывать Ху^-, и наоборот. В более сложных ситуациях можно воспользо­

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

Чтобы нагляднее представить весь расчет с использованием множи­ телей Лагранжа, приведем его алгоритм в виде блок-схемы (рис. 9.11). Как видно из алгоритма, функции f^ V ) и h/Xj), участвующие в расчете, зависят от одного параметра состояния, следовательно, поставленная цель достигнута.

Теперь покажем эквивалентность задач (9.40)-(9.43) и (9.52)-{9.54), понимая под этим совпадение решений. Следуя Веллману, доказательство проведем от противного. Имея оптимальное решение измененной задачи

х' , у*, предположим, что оптимальное решение исходной задачи иное,

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

I X (Xj, yj) >

(9.61)

j=i

»

 

Так как Х_ру= Упо условию исходной задачи, а Хуу= Упо алгоритму реше­

ния измененной задачи, то = Вычитание одной и той же вели­

чины, умноженной на X, из левой и правой частей выражения (9.61) не ме­ няет знак неравенства:

 

$ j ) - b '£ iy j >'EiRj(x*jty j ) - \ '£ ty j.

(9.62)

У = 1

j= \

j - \

]m\

 

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

неравенство (9.62), вытекающее из допущения существования разных решений, противоречит исходной посылке и потому такое допущение не­ верно, что доказывает совпадение решений исходной и измененной (эк­ вивалентной) задач.

Для задачи 2 применение метода множителей Лагранжа реализуется проще. Модель измененной задачи можно записать по аналогии с выше­ приведенным случаем:

Z =£ z ,•(*<)-*£V/(*i) -* extr>

Z<P/(*|) S A, Vx, > 0.

 

/=1

/=1

/=1

 

Для функций последовательности, определенных как

 

fk (я) = extr X [Z, (х,) - Х\|/,(х,)], к = 1,N,

 

 

W /=1

 

 

справедливо рекуррентное соотношение

 

 

f k(a,)=

extr [Zk(хк) - Х у к(хк) + f k_x(а - <рк(хк))].

(9.63)

 

Фt(xk)<a

 

 

Как видно, здесь нет дополнительных функций А, и вычисления можно проводить сразу по рекуррентной формуле (9.63), задавшись предвари­ тельно значением X. После нахождения решения проверяется условие

(9.48) - SVy(Xy) <В, и если оно не выполняется, то необходимо изменить

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

В общем случае, когда вектор состояния исходной задачи имеет раз­ мерность т, можно использовать q множителей Лагранжа (q < т), что по­ зволит снизить размерность вектора состояния измененной задачи до m-q. При этом выполнение исключенных из условий исходной задачи q ограничений может быть обеспечено управлением таким же числом мно­ жителей Лагранжа. Однако увеличение размерности вектора состояния и соответственно числа множителей Лагранжа ведет к более быстрому росту трудоемкости решения измененной задачи. Поэтому проблема “про­

клятия размерности” остается, ограничивая применение метода ДП зада­ чами с небольшим числом параметров состояния.

Несмотря на указанный недостаток, метод динамического программи­ рования находит широкое применение для решения многих задач исследо­ вания операций, в том числе задач распределения, замены, кратчайшего пути, упорядочения и др.

9.10. Задания для самостоятельной работы

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

Целесообразно придерживаться следующего порядка решения задачи:

1.Составить модель задачи.

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

3.Определить параметры состояния.

4.Составить уравнение состояния.

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

иматематическое представление.

6.Записать первую функцию последовательности и вывести рекур­ рентное соотношение с указанием переменных и области их изменения, по которым определяется экстремум в соотношении.

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

8.Используя результаты условной оптимизации, провести безуслов­ ную оптимизацию для всех заданных значений исходного состояния.

9.Записать оптимальное решение и все соответствующие ему показа­ тели, сделать выводы по результатам решения.

10.Осмыслить возможности метода при изменении исходных данных

задачи.

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

В большинстве вариантов задано не одно значение параметра, а диа­ пазон, например 50-60. Это означает, что нужно найти решения для значе­ ний этого параметра от 50 до 60.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]