Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
25-30.docx
Скачиваний:
38
Добавлен:
24.09.2019
Размер:
592.46 Кб
Скачать

Смотри приложение вопрос 27.

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

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

все функции  вогнуты по переменным ;

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

 .

Тогда общее выражение для функции затрат будет иметь вид

(7.4.6)

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

 , .                          (7.4.7)

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

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

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

 .                              (7.4.8)

Условие (7.4.8) эквивалентно следующей паре условий:

                         (7.4.9)

Поясним смысл условий (7.4.8), (7.4.9). Заказ на изготовление (поставку) новой партии  не поступает, если в начале периода  имелся ненулевой запас ( ), и наоборот, если в начале периода  запас , то делается заказ на поставку . Отсюда следует, что  = 0, или  = , или  =  и т.д., то есть оптимальный размер заказа равен спросу за целое число периодов.

Предположим, что . Тогда решаем задачу (7.4.6) в прямом направлении. Пусть  - минимальные затраты за  периодов, если запас на начало ( )-го периода равен . Основное рекурентне соотношение ДП для этой задачи имеет вид

        (7.4.10)

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

 , .

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

Поэтому

              (7.4.11)

Аналогично

     (7.4.12)

Выписав выражения, аналогичные (7.4.12), для , , .,  и подставив их в (7.4.12), (7.4.11), получим в результате

 .                              (7.4.13)

Здесь

      (7.4.14)

где  - затраты за  периодов при условии, что последний заказ сделан в начале периода .

28. Постановка задачи динамического программирования (дп). Рекуррентные уравнения Беллмана (обратное и прямое), метод Беллмана.

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

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

Предположим, что интересующий нас процесс можно разбить на N шагов, а действия, совершаемые на i-ом шаге, характеризуются совокупностью показателей   . Состояние процесса к началу этого шага имеет характеристику в виде набора параметров   . Обычно предпринимаемые действия не являются полностью произвольными, а зависят от состояния   , которое возникло перед i-ым шагом, т.е.  . Очевидно, результирующее значение критерия Z, получаемое в конце процесса, будет определяться теми   , которые были приняты, т.е.   . Возникает вопрос: Как выбрать   , чтобы величина Z приняла экстремальное значение? Ответ можно получить, рассматривая Z как функцию переменных   и находя экстремум z одним из известных способов, однако этот путь не всегда прост (особенно при большом числе переменных).  Появляется идея провести оптимизацию поэтапно, анализируя последовательно каждый шаг процесса в поисках наилучших вариантов его продолжения. Эта идея лежит в основе метода динамического программирования, реализующего принцип последовательной оптимизации. Следовательно, важным условием применимости рассматриваемого метода является возможность разбиения процесса принятия решений на ряд однотипных шагов или этапов, каждый из которых планируется отдельно, но с учетом результатов, полученных на других шагах.

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

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

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

Рекуррентные уравнения Беллмана (обратное и прямое), метод Беллмана.

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

     Так, если система в начале k-го шага находится в состоянии   и мы выбираем  произвольное  управление    ,  то  она  придет   в  новое   состоя-

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

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

.

       Назовем величину   условным максимумом. Если мы теперь выберем на k-м шаге некоторое произвольное управление  , то система придет в состояние   (рис. 16.2). Согласно принципу оптимальности, необходимо выбирать управление   так, чтобы оно в совокупности с оптимальным управлением на последующих шагах (начиная с  -го) приводило бы к общему показателю эффективности на   шагах, начиная с k-го и до конца. Это положение в аналитической форме можно записать в виде следующего соотношения:

,    (16.4)

получившего название основного функционального уравнения динамического программирования, или основного рекуррентного уравнения Беллмана.

Рисунок 16.2.

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

.

Решая уравнение (16.4) для определения условного максимума показателя эффективности за   шагов, начиная с k-го, мы определяем соответствующее оптимальное управление  , при котором этот максимум достигается. Это управление также зависит от  ; будем обозначать его через   и называть условным оптимальным управлением на k-м шаге. Основное значение уравнения (16.4), в котором реализована идея динамического программирования, заключается в том, что решение исходной задачи определения максимума функции (16.3) n переменных   сводится к решению последовательности n задач, задаваемых соотношениями (16.4), каждое из которых является задачей максимизации функции одной переменной  .

В результате последовательного решения n частных задач на условный максимум определяют две последовательности функций:   – условные максимумы и соответствующие им   – условные оптимальные управления. Указанные последовательности функций в дискретных задачах получают в табличной форме, а в непрерывных моделях – аналитически. После выполнения первого этапа (условной оптимизациии) приступают ко второму этапу – безусловной оптимизации.

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

,

а затем – искомое безусловное оптимальное управление по цепочке

                       .     (16.5)

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

,

откуда находят  , а затем по цепочке (16.5) – безусловное оптимальное управление.

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

Решить методом Беллмана задачуМакс должен решить)

Для трёх предприятий выделяются средства в объёме bo (млн. руб.). Каждое предприятие представляет на рассмотрение проекты, которые характеризуются величинами суммарных затрат (С) (млн. руб.) и доходов (R) (млн. руб.), связанных с реализацией каждого из проектов. Соответствующие данные (Cj, Rj, j=1,2,3) приведены в таблице. Включение проектов с нулевыми затратами позволяет возможность отказа от расширения предприятия. Найти оптимальное распределение инвестиций, максимизирующее доход от инвестиций в объёме bo, bo = 8 млн. руб.

Проект

Предприятие 1

Предприятие 2

Предприятие 3

 

C1

R1

C2

R2

C3

R3

1

3

5

3

4

0

0

2

4

6

4

5

2

3

3

-

-

5

8

3

5

4

-

-

-

-

6

9


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