Начальная

Windows Commander

Far
WinNavigator
Frigate
Norton Commander
WinNC
Dos Navigator
Servant Salamander
Turbo Browser

Winamp, Skins, Plugins
Необходимые Утилиты
Текстовые редакторы
Юмор

File managers and best utilites

Динамическое программирование — реферат. Динамическое программирование реферат


Реферат – Динамическое программирование

Содержание

Введение 21 Предмет динамического программирования 32 Постановка задачи динамического программирования 53 Принцип оптимальности и математическое описание динамического процесса управления 74 Оптимальное распределение ресурсов 95 Выбор оптимальной стратегии обновления оборудования 11Заключение 14Список используемой литературы 15

Введение

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

1 Предмет динамического программирования

Динамическое программирование представляет собой математический аппарат, который подходит к решению некоторого класса задач путем их разложения на части, небольшие и менее сложные задачи. При этом отличительной особенностью является решение задач по этапам, через фиксированные интервалы, промежутки времени, что и определило появление термина динамическое программирование. Следует заметить, что методы динамического программирования успешно применяются и при решении задач, в которых фактор времени не учитывается. В целом математический аппарат можно представить как пошаговое или поэтапное программирование. Решение задач методами динамического программирования проводится на основе сформулированного Р. Э. Беллманом принципа оптимальности: оптимальное поведение обладает тем свойством, что каким бы ни было первоначальное состояние системы и первоначальное решение, последующее решение должно определять оптимальное поведение относительно состояния, полученного в результате первоначального решения.Из этого следует, что планирование каждого шага должно проводиться с учетом общей выгоды, получаемой по завершении всего процесса, что и позволяет оптимизировать конечный результат по выбранному критерию.Таким образом, динамическое программирование в широком смысле представляет собой оптимальное управление процессом, посредством изменения управляемых параметров на каждом шаге, и, следовательно, воздействуя на ход процесса, изменяя на каждом шаге состояние системы.В целом динамическое программирование представляет собой стройную теорию для восприятия и достаточно простую для применения в коммерческой деятельности при решении как линейных, так и нелинейных задач.Динамическое программирование является одним из разделов оптимального программирования. Для него характерны специфические методы и приемы, применительные к операциям, в которых процесс принятия решения разбит на этапы (шаги). Методами динамического программирования решаются вариантные оптимизационные задачи с заданными критериями оптимальности, с определенными связями между переменными и целевой функцией, выраженными системой уравнений или неравенств. При этом, как и в задачах, решаемых методами линейного программирования, ограничения могут быть даны в виде равенств или неравенств. Однако если в задачах линейного программирования зависимости между критериальной функцией и переменными обязательно линейны, то в задачах динамического программирования эти зависимости могут иметь еще и нелинейный характер. Динамическое программирование можно использовать как для решения задач, связанных с динамикой процесса или системы, так и для статических задач, связанных, например, с распределением ресурсов. Это значительно расширяет область применения динамического программирования для решения задач управления. А возможность упрощения процесса решения, которая достигается за счет ограничения области и количества, исследуемых при переходе к очередному этапу вариантов, увеличивает достоинства этого комплекса методов.

refbox.org

Реферат: Динамическое программирование

Курсовая работа по теории оптимального управления экономическими системами.

Тема : Задача динамического программирования.

 

I.Основные понятия и обозначения.

 

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

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

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

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

УВ на каждом шаге должно выбираться с учетом всех его последствий в будущем. УВ должно быть дальновидным, с учетом перспективы. Нет смысла выбирать на рассматриваемом шаге наилучшее УВ, если в дальнейшем это помешает получить наилучшие результаты других шагов. УВ на каждом шаге надо выбирать “c заглядыванием в будущее”, иначе возможны серьезные ошибки.

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

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

N – число шагов.

– вектор,описывающий состояние системы на k-м шаге.

– начальное состояние, т. е. cостояние на 1-м шаге.

– конечное состояние, т. е. cостояние на последнем шаге.

Xk – область допустимых состояний на k-ом шаге.

– вектор УВ на k-ом шаге, обеспечивающий переход системы из состояния xk-1 в состояние xk.

Uk –  область допустимых УВ на k-ом шаге.

Wk – величина выигрыша, полученного в результате реализации k-го шага.

S – общий выигрыш за N шагов.

 – вектор оптимальной стратегии управления или ОУВ за N шагов.

Sk+1() – максимальный выигрыш, получаемый при переходе из любого состояния в конечное состояние  при оптимальной стратегии управления начиная с (k+1)-го шага.

S1() – максимальный выигрыш, получаемый за N шагов при переходе системы из начального состояния  в конечное  при реализации оптимальной стратегии управления . Очевидно, что S = S1(), если  –фиксировано.

Метод динамического программирования опирается на условие отсутствия последействия и условие аддитивности целевой функции.

Условие отсутствия последействия. Состояние , в которое перешла система за один k-й шаг, зависит от состояния  и выбранного УВ  и не зависит от того, каким образом система пришла в состояние , то есть

 

Аналогично, величина выигрыша Wk зависит от состояния  и выбранного УВ , то есть

 

Условие аддитивности целевой функции. Общий выигрыш за N шагов вычисляется по формуле

 

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

Условие отсутствия последействия позволяет сформулировать принцип оптимальности Белмана.

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

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

Управление может быть хорошим или плохим, эффективным или неэффективным. Эффективность управления   оценивается показателем S. Возникает вопрос: как выбрать шаговые управления  , чтобы величина S обратилась в максимум ?

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

 

Таким образом, перед нами стоит задача: определить оптимальное управление на каждом шаге  (i=1,2,...N) и, значит, оптимальное управление всем процессом .

 

II. Идеи метода динамического программирования

Мы отметили, что планируя многошаговый процесс, необходимо выби­рать УВ на каждом шаге с учетом его будущих последствий на еще пред­стоящих шагах. Однако, из этого правила есть исключение. Среди всех шагов существует один, который может планироваться без "заглядыва-ния в будущее". Какой это шаг? Очевидно, последний — после него дру­гих шагов нет. Этот шаг, единственный из всех, можно планировать так, чтобы он как таковой принес наибольшую выгоду. Спланировав опти­мально этот последний шаг, можно к нему пристраивать предпоследний, к предпоследнему — предпредпоследний и т.д.

Поэтому процесс динамического программирования на 1-м этапе раз­ворачивается от конца к началу, то есть раньше всех планируется послед­ний,

N-й шаг. А как его спланировать, если мы не знаем, чем кончился предпоследний? Очевидно, нужно сделать все возможные предположе­ния о том, чем кончился предпоследний, (N — 1)-й шаг, и для каждого из них найти такое управление, при котором выигрыш (доход) на послед­нем шаге был бы максимален. Решив эту задачу, мы найдем условно оптимальное управление (УОУ) на N-м шаге, т.е. управление, которое надо применить, если (N — 1)-й шаг закончился определенным образом.

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

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

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

    Теперь предположим, что УОУ на каждом шаге нам известно: мы знаем, что делать дальше, в каком бы состоянии ни был процесс к началу каждого шага. Тогда мы можем найти уже не "условное", а дейсгвительно оптимальное управление на каждом шаге.                        |

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

Таким образом, в процессе оптимизации управления методом динами­ческого программирования многошаговый процесс "проходится" дважды:

— первый раз — от конца к началу, в результате чего находятся УОУ| на каждом шаге и оптимальный выигрыш (тоже условный) на всех шагах,  начиная с данного и до конца процесса;                           

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

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

методом динамического программирования распадается на две стадии:

предварительную и окончательную. На предварительной стадии для каждого шага определяется УОУ, зависящее от состояния системы (до­стигнутого в результате предыдущих шагов), и условно оптимальный вы­игрыш на всех оставшихся шагах, начиная с данного, также зависящий от состояния. На окончательной стадии определяется (безусловное) опти­мальное управление для каждого шага. Предварительная (условная) оптимизация производится по шагам в обратном порядке: от последне­го шага к первому; окончательная (безусловная) оптимизация — также по шагам, но в естественном порядке: от первого шага к последнему. Из двух стадий оптимизации несравненно более важной и трудоемкой является первая. После окончания первой стадии выполнение второй трудности не представляет: остается только "прочесть" рекомендации, уже заготовленные на первой стадии.

 

III.  Пример задачи динамического программирования

                  Выбор состава оборудования технологической линии.

Есть технологическая линия , то есть цепочка, последовательность операций.

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

i

1

2

3

j

1

2

1

2

1

2

10

8

4

5

8

9

12

8

4

6

9

9

 

20

18

6

8

10

12

 

Стоимость сырья

Расходы , связанные с использованием единицы оборудования j-го типа на i-ой операции

Производительности, соответственно, по выходу и входу  и  для  j-готипа оборудования, претендующего на i-ую операцию.

 

Решение:

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

N = 3 – число шагов.

 - Технологическая линия.

 
=  (0,0,0)

= (                   )

 – выбор оборудования для i-ой операции.

Ui – область допустимых УВ на i-м шаге.

т.е.

Wi – оценка минимальной себестоимости, полученная в результате реализации i-го шага.

S – функция общего выигрыша  т. е. минимальная себестоимость .

 

 
 

 

 

 
                         - вектор – функция, описывающая переход системы из состояния               в состояние    под действием УВ.

          

 - вектор УВ на i-ом шаге, обеспечивающий переход системы из состояния xi-1 в состояние xi , т.е. оптимальный выбор оборудования за N  шагов.

Si+1() – максимальный выигрыш ( в нашем случае минимальная себестоимость), получаемый при переходе из любого состояния в конечное состояние  при оптимальной стратегии управления начиная с (k+1)-го шага.

S1() – максимальный выигрыш, получаемый за N шагов при переходе системы из начального состояния  в конечное  при реализации оптимальной стратегии управления . Очевидно, что S = S1(), если = 0.

 

Запишем вектора допустимых значений

 

 

 

 

Запишем вектора допустимых управляющих воздействий

 

 

 

 

 
Запишем вектор – функцию, описывающую переход системы из состояния                   в состояние    под действием УВ.

 
 

 

 

 

 

 

 

 
Запишем основное функциональное уравнение

 

 
 

 

 

1) Обратный проход

 
Для  i=3

 

 

 

 

Учитывая то, что этот шаг у нас последний и следующей операции

 

 
уже не будет, а также то, что мы на обратном проходе, вместо функции

          возьмем стоимость сырья                    

 

при                                                                              =       

 

 

 

при                                                                              =                                                    

 

 
 

т. е.                                                          

 

Для   i=2

 
 

 

 

 

                                                                            

 

 

при                                                                                           =                                         

 

 

при                                                                                           = 

 

102,8

 
 

при                                                                                             =

 

 

при                                                                                            =

 

 
 

т. е.                         

 

 
Для  i=1

 

 

 

 

 

при                                                                                         =   

 

 

при                                                                                       =

 

 

 

 

 

125,3

 
при                                                                                         =

 

 

при                                                                                         ==

 

 

при                                                                                               =

 

 

при                                                                                                 =

 

 

при                                                                                                =

 

 

при                                                                                                   =

 

 
 

т. е.                                

 

2)  

 
Прямой проход

Учитывая то, что                                  и   = (0,0,0)  имеем

 
  i=1

 

 
 

 

 

 

 

 
 i=2

 

 
 

 

 

 
i=3

 

 
 

 

 

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

На  1-ую операцию назначим оборудование 2-го вида

На  2-ую операцию назначим оборудование 1-го вида

На  3-ью операцию назначим оборудование 2-го вида

Оценка минимальной себестоимости составит 105,5.

 

www.referatmix.ru

Реферат – Динамическое программирование

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

В основе метода динамического программирования лежит принцип оптимальности, впервые сформулированный в 1953 г. американским математиком Р. Э. Беллманом: каково бы ни было состояние системы в результате какого-либо числа шагов, на ближайшем шаге нужно выбирать управление так, чтобы оно в совокупности с оптимальным управлением на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, включая выигрыш на данном шаге. При решении задачи на каждом шаге выбирается управление, которое должно привести к оптимальному выигрышу. Если считать все шаги независимыми, тогда оптимальным управлением будет то управление, которое обеспечит максимальный выигрыш именно на данном шаге. Однако, например, при покупке новой техники взамен устаревшей на ее приобретение затрачиваются определенные средства, поэтому доход от ее эксплуатации в начале может быть небольшой, а в следующие годы новая техника будет приносить больший доход. И наоборот, если принято решение оставить старую технику для получения дохода в текущем году, то в дальнейшем это приведет к значительным убыткам. Пример демонстрирует факт: в многошаговых процессах управление на каждом конкретном шаге надо выбирать с учетом его будущих воздействий на весь процесс.Кроме того, при выборе управления на данном шаге следует учитывать возможные варианты состояния предыдущего шага. Например, при определении количества средств, вкладываемых в предприятие в i-м году, необходимо знать, сколько средств осталось в наличии к этому году и какой доход получен в предыдущем (i-1)-м году. Таким образом, при выборе шагового управления необходимо учитывать следующие требования: 1) возможные исходы предыдущего шага Sk-1;2) влияние управления хk на все оставшиеся до конца процесса шаги (n-k).В задачах динамического программирования первое требование учитывают, делая на каждом шаге условные предположения о возможных вариантах окончания предыдущего шага и проводя для каждого из вариантов условную оптимизацию. Выполнение второго требования обеспечивается тем, что в задачах условная оптимизация проводится от конца процесса к началу.Условная оптимизация. На первом этапе решения задачи, называемом условной оптимизацией, определяются функция Беллмана и оптимальные управления для всех возможных состояний на каждом шаге, начиная с последнего в соответствии с алгоритмом обратной прогонки. На последнем, n-м шаге, оптимальное управление – х*n определяется функцией Беллмана: F(S) = max {Wn (S, xn)}, в соответствии с которой максимум выбирается из всех возможных значений хn, причем хn∈Х.Дальнейшие вычисления производятся согласно рекуррентному соотношению, связывающему функцию Беллмана на каждом шаге с этой же функцией, но вычисленной на предыдущем шаге. В общем виде это уравнение имеет вид: Fn (S) = max {Wn (S, xn) + Fk+1 (S1(S, xk))}, xk∈Х.Этот максимум (или минимум) определяется по всем возможным для k и S значениям переменной управления X.Безусловная оптимизация. После того, как функция Беллмана и соответствующие оптимальные управления найдены для всех шагов с n-го по первый, осуществляется второй этап решения задачи, называемый безусловной оптимизацией. Пользуясь тем, что на первом шаге (k = 1) состояние системы известно – это ее начальное состояние So, можно найти оптимальный результат за все n шагов и оптимальное управление на первом шаге x1, которое этот результат доставляет. После применения этого управления система перейдет в другое состояние S1(S,х*1), зная которое, можно, пользуясь результатами условной оптимизации, найти оптимальное управление на втором шаге х*2, и так далее до последнего n-го шага. Вычислительную схему динамического программирования можно строить на сетевых моделях, а также по алгоритмам прямой прогонки (от начала) и обратной прогонки (от конца к началу). Рассмотрим примеры решения различных по своей природе задач, содержание которых требует выбора переменных состояния и управления.

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

Требуется распределить имеющиеся В единиц средств среди n предприятий, доход gi(xi) от которых, в зависимости от количества вложенных средств хi, определяется матрицей (n*n), приведенной в табл. 1, так, чтобы суммарный доход со всех предприятий был бы максимальным.Таблица 1x \ gi g1 g2 … gi … gnx1 g1(x1) g2(x1) … gi (x1) … gn (x1)x2 g1(x2) g2(x2) … gi (x2) … gn (x2)xi … … … gi(xi) … …xn g1(xn) g2(xn) … … … gn (xn)

Запишем математическую модель задачи.Определить X* = (х*1, х*2, …, х*i, …, х*n), удовлетворяющий условиям

и обеспечивающий максимум целевой функции F(X) = ∑xi gi ( xi ) → maxОчевидно, эта задача может быть решена простым перебором всех возможных вариантов распределения В единиц средств по n предприятиям, например на сетевой модели. Однако решим ее более эффективным методом, который заключается в замене сложной многовариантной задачи многократным решением простых задач с малым количеством исследуемых вариантов.

refbox.org

Реферат : Динамическое программирование (работа 2)

Курсовая работа по теории оптимального управления экономическими системами.

Тема : Задача динамического программирования.

I.Основные понятия и обозначения.

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

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

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

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

УВ на каждом шаге должно выбираться с учетом всех его последствий в будущем. УВ должно быть дальновидным, с учетом перспективы. Нет смысла выбирать на рассматриваемом шаге наилучшее УВ, если в дальнейшем это помешает получить наилучшие результаты других шагов. УВ на каждом шаге надо выбирать “c заглядыванием в будущее”, иначе возможны серьезные ошибки.

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

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

N – число шагов.

– вектор,описывающий состояние системы на k-м шаге.

– начальное состояние, т. е. cостояние на 1-м шаге.

– конечное состояние, т. е. cостояние на последнем шаге.

Xk – область допустимых состояний на k-ом шаге.

– вектор УВ на k-ом шаге, обеспечивающий переход системы из состояния xk-1 в состояние xk.

Uk – область допустимых УВ на k-ом шаге.

Wk – величина выигрыша, полученного в результате реализации k-го шага.

S – общий выигрыш за N шагов.

– вектор оптимальной стратегии управления или ОУВ за N шагов.

Sk+1( ) – максимальный выигрыш, получаемый при переходе из любого состояния в конечное состояние при оптимальной стратегии управления начиная с (k+1)-го шага.

S1( ) – максимальный выигрыш, получаемый за N шагов при переходе системы из начального состояния в конечное при реализации оптимальной стратегии управления . Очевидно, что S = S1( ), если –фиксировано.

Метод динамического программирования опирается на условие отсутствия последействия и условие аддитивности целевой функции.

Условие отсутствия последействия. Состояние , в которое перешла система за один k-й шаг, зависит от состояния и выбранного УВ и не зависит от того, каким образом система пришла в состояние , то есть

Аналогично, величина выигрыша Wk зависит от состояния и выбранного УВ , то есть

Условие аддитивности целевой функции. Общий выигрыш за N шагов вычисляется по формуле

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

Условие отсутствия последействия позволяет сформулировать принцип оптимальности Белмана.

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

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

Управление может быть хорошим или плохим, эффективным или неэффективным. Эффективность управления оценивается показателем S. Возникает вопрос: как выбрать шаговые управления , чтобы величина S обратилась в максимум ?

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

Таким образом, перед нами стоит задача: определить оптимальное управление на каждом шаге (i=1,2,...N) и, значит, оптимальное управление всем процессом .

II. Идеи метода динамического программирования

Мы отметили, что планируя многошаговый процесс, необходимо выби­рать УВ на каждом шаге с учетом его будущих последствий на еще пред­стоящих шагах. Однако, из этого правила есть исключение. Среди всех шагов существует один, который может планироваться без "заглядыва-ния в будущее". Какой это шаг? Очевидно, последний — после него дру­гих шагов нет. Этот шаг, единственный из всех, можно планировать так, чтобы он как таковой принес наибольшую выгоду. Спланировав опти­мально этот последний шаг, можно к нему пристраивать предпоследний, к предпоследнему — предпредпоследний и т.д.

Поэтому процесс динамического программирования на 1-м этапе раз­ворачивается от конца к началу, то есть раньше всех планируется послед­ний,

N-й шаг. А как его спланировать, если мы не знаем, чем кончился предпоследний? Очевидно, нужно сделать все возможные предположе­ния о том, чем кончился предпоследний, (N — 1)-й шаг, и для каждого из них найти такое управление, при котором выигрыш (доход) на послед­нем шаге был бы максимален. Решив эту задачу, мы найдем условно оптимальное управление (УОУ) на N-м шаге, т.е. управление, которое надо применить, если (N — 1)-й шаг закончился определенным образом.

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

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

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

Теперь предположим, что УОУ на каждом шаге нам известно: мы знаем, что делать дальше, в каком бы состоянии ни был процесс к началу каждого шага. Тогда мы можем найти уже не "условное", а дейсгвительно оптимальное управление на каждом шаге. |

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

Таким образом, в процессе оптимизации управления методом динами­ческого программирования многошаговый процесс "проходится" дважды:

— первый раз — от конца к началу, в результате чего находятся УОУ| на каждом шаге и оптимальный выигрыш (тоже условный) на всех шагах, начиная с данного и до конца процесса;

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

методом динамического программирования распадается на две стадии:

предварительную и окончательную. На предварительной стадии для каждого шага определяется УОУ, зависящее от состояния системы (до­стигнутого в результате предыдущих шагов), и условно оптимальный вы­игрыш на всех оставшихся шагах, начиная с данного, также зависящий от состояния. На окончательной стадии определяется (безусловное) опти­мальное управление для каждого шага. Предварительная (условная) оптимизация производится по шагам в обратном порядке: от последне­го шага к первому; окончательная (безусловная) оптимизация — также по шагам, но в естественном порядке: от первого шага к последнему. Из двух стадий оптимизации несравненно более важной и трудоемкой является первая. После окончания первой стадии выполнение второй трудности не представляет: остается только "прочесть" рекомендации, уже заготовленные на первой стадии.

III. Пример задачи динамического программирования

Выбор состава оборудования технологической линии.

Есть технологическая линия , то есть цепочка, последовательность операций.

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

Исходные данные для примера

i

1

2

3

j

1

2

1

2

1

2

10

8

4

5

8

9

12

8

4

6

9

9

20

18

6

8

10

12

Стоимость сырья

Расходы , связанные с использованием единицы оборудования j-го типа на i-ой операции

Производительности, соответственно, по выходу и входу и для j-готипа оборудования, претендующего на i-ую операцию.

Решение:

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

N = 3 – число шагов.

- Технологическая линия.

= (0,0,0)

= ( )

– выбор оборудования для i-ой операции.

Ui – область допустимых УВ на i-м шаге.

т.е.

Wi – оценка минимальной себестоимости, полученная в результате реализации i-го шага.

S – функция общего выигрыша т. е. минимальная себестоимость .

- вектор – функция, описывающая переход системы из состояния в состояние под действием УВ.

- вектор УВ на i-ом шаге, обеспечивающий переход системы из состояния xi-1 в состояние xi , т.е. оптимальный выбор оборудования за N шагов.

Si+1( ) – максимальный выигрыш ( в нашем случае минимальная себестоимость), получаемый при переходе из любого состояния в конечное состояние при оптимальной стратегии управления начиная с (k+1)-го шага.

S1( ) – максимальный выигрыш, получаемый за N шагов при переходе системы из начального состояния в конечное при реализации оптимальной стратегии управления . Очевидно, что S = S1( ), если = 0.

Запишем вектора допустимых значений

Запишем вектора допустимых управляющих воздействий

З апишем вектор – функцию, описывающую переход системы из состояния в состояние под действием УВ.

З апишем основное функциональное уравнение

1) Обратный проход

Д ля i=3

Учитывая то, что этот шаг у нас последний и следующей операции

у же не будет, а также то, что мы на обратном проходе, вместо функции

возьмем стоимость сырья

при =

при =

т. е.

Для i=2

115,2

при =

138,04

при =

102,8

при =

123,1

при =

т. е.

Д ля i=1

140,2

при =

125,3

при =

п

125,3

ри =

125,3

при ==

125,3

при =

125,3

при =

125,3

при =

125,3

при =

т. е.

  1. П рямой проход

Учитывая то, что и = (0,0,0) имеем

i=1

i=2

i =3

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

На 1-ую операцию назначим оборудование 2-го вида

На 2-ую операцию назначим оборудование 1-го вида

На 3-ью операцию назначим оборудование 2-го вида

Оценка минимальной себестоимости составит 105,5.

Раздел коллекции : Экономико-математическое моделирование

Автор : Родионов Д.А.

Контактные сведения : [email protected]

Наименования работы : Динамическое программирование

Вид работы : курсовая работа

Пожелания : -

topref.ru


Смотрите также

 

..:::Новинки:::..

Windows Commander 5.11 Свежая версия.

Новая версия
IrfanView 3.75 (рус)

Обновление текстового редактора TextEd, уже 1.75a

System mechanic 3.7f
Новая версия

Обновление плагинов для WC, смотрим :-)

Весь Winamp
Посетите новый сайт.

WinRaR 3.00
Релиз уже здесь

PowerDesk 4.0 free
Просто - напросто сильный upgrade проводника.

..:::Счетчики:::..

 

     

 

 

.