![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Экономика и Финансы
Экономико-математическое моделирование
Задача динамического программирования |
Курсовая работа по теории оптимального управления экономическими системами. Тема : Задача динамического программирования. I.Основные понятия и обозначения. Динамическое программирование – это математический метод поиска оптимального управления, специально приспособленный к многошаговым процессам. Рассмотрим пример такого процесса. Пусть планируется деятельность группы предприятий на лет. Здесь шагом является один год. В начале 1-го года на развитие предприятий выделяются средства, которые должны быть как-то распределены между этими предприятиями. В процессе их функционирования выделенные средства частично расходуются. Каждое предприятие за год приносит некоторый доход, зависящий от вложенных средств. В начале года имеющиеся средства могут перераспределяться между предприятиями : каждому из них выделяется какая-то доля средств. Ставится вопрос : как в начале каждого года распределять имеющиеся средства между предприятиями, чтобы суммарный доход от всех предприятий за лет был максимальным? Перед нами типичная задача динамического программирования, в которой рассматривается управляемый процесс – функционирование группы предприятий. Управление процессом состоит в распределении (и перераспределении) средств. Управляющим воздействием (УВ) является выделене каких-то средств каждому из предприятий в начале года. УВ на каждом шаге должно выбираться с учетом всех его последствий в будущем. УВ должно быть дальновидным, с учетом перспективы. Нет смысла выбирать на рассматриваемом шаге наилучшее УВ, если в дальнейшем это помешает получить наилучшие результаты других шагов. УВ на каждом шаге надо выбирать “c заглядыванием в будущее”, иначе возможны серьезные ошибки. Действительно, предположим, что в рассмотренной группе предприятий одни заняты выпуском предметов потребления, а другие производят для этого машины. Причем целью является получение за лет максимального объема выпуска предметов потребления. Пусть планируются капиталовложения на первый год. Исходя их узких интересов данного шага (года), мы должны были бы все средства вложить в производство предметов потребления, пустить имеющиеся машины на полную мощность и добиться к концу года максимального объема продукции. Но правильным ли будет такое решение в целом? Очевидно, нет. Имея в виду будущее, необходимо выделить какую-то долю средств и на производство машин. При этом объем продукции за первый год, естественно, снизится, зато будут созданы условия, позволяющие увеличивать ее производство в последующие годы. В формализме решения задач методом динамического программирования будут использоваться следующие обозначения: – число шагов. – вектор,описывающий состояние системы на k-м шаге. – начальное состояние, т. е. cостояние на 1-м шаге. – конечное состояние, т. е. cостояние на последнем шаге. Xk – область допустимых состояний на k-ом шаге. – вектор УВ на k-ом шаге, обеспечивающий переход системы из состояния xk-1 в состояние xk. Uk –область допустимых УВ на k-ом шаге. Wk – величина выигрыша, полученного в результате реализации k-го шага. S – общий выигрыш за шагов. – вектор оптимальной стратегии управления или ОУВ за шагов.
Sk 1() – максимальный выигрыш, получаемый при переходе из любого состояния в конечное состояниепри оптимальной стратегии управления начиная с (k 1)-го шага. S1() – максимальный выигрыш, получаемый за шагов при переходе системы из начального состоянияв конечноепри реализации оптимальной стратегии управления . Очевидно, что S = S1(), если–фиксировано. Метод динамического программирования опирается на условие отсутствия последействия и условие аддитивности целевой функции. Условие отсутствия последействия. Состояние , в которое перешла система за один k-й шаг, зависит от состоянияи выбранного УВи не зависит от того, каким образом система пришла в состояние , то есть Аналогично, величина выигрыша Wk зависит от состоянияи выбранного УВ , то есть Условие аддитивности целевой функции. Общий выигрыш за шагов вычисляется по формуле Определение. Оптимальной стратегией управленияназывается совокупность УВ , то есть , в результате реализации которых система за шагов переходит из начального состоянияв конечноеи при этом общий выигрыш S принимает наибольшее значение. Условие отсутствия последействия позволяет сформулировать принцип оптимальности Белмана. Принцип оптимальности. Каково бы ни было допустимое состояние системыперед очередным i-м шагом, надо выбрать допустимое УВна этом шаге так, чтобы выигрыш Wi на i-м шаге плюс оптимальный выигрыш на всех последующих шагах был максимальным. В качестве примера постановки задачи оптимального управления продолжим рассмотрение задачи управления финансированием группы предприятий. Пусть в начале i-го года группе предприятийвыделяются соответственно средства:совокупность этих значений можно считать управлением на i-м шаге, то есть . Управлениепроцессом в целом представляет собой совокупность всех шаговых управлений, то есть . Управление может быть хорошим или плохим, эффективным или неэффективным. Эффективность управления оценивается показателем S. Возникает вопрос: как выбрать шаговые управления, чтобы величина S обратилась в максимум ? Поставленная задача является задачей оптимального управления, а управление, при котором показатель S достигает максимума, называется оптимальным. Оптимальное управлениемногошаговым процессом состоит из совокупности оптимальных шаговых управлений: Таким образом, перед нами стоит задача: определить оптимальное управление на каждом шаге(i=1,2,. ) и, значит, оптимальное управление всем процессом . II. Идеи метода динамического программирования Мы отметили, что планируя многошаговый процесс, необходимо выбирать УВ на каждом шаге с учетом его будущих последствий на еще предстоящих шагах. Однако, из этого правила есть исключение. Среди всех шагов существует один, который может планироваться без "заглядыва-ния в будущее". Какой это шаг? Очевидно, последний — после него других шагов нет. Этот шаг, единственный из всех, можно планировать так, чтобы он как таковой принес наибольшую выгоду. Спланировав оптимально этот последний шаг, можно к нему пристраивать предпоследний, к предпоследнему — предпредпоследний и т.д. Поэтому процесс динамического программирования на 1-м этапе разворачивается от конца к началу, то есть раньше всех планируется последний, -й шаг.
А как его спланировать, если мы не знаем, чем кончился предпоследний? Очевидно, нужно сделать все возможные предположения о том, чем кончился предпоследний, ( — 1)-й шаг, и для каждого из них найти такое управление, при котором выигрыш (доход) на последнем шаге был бы максимален. Решив эту задачу, мы найдем условно оптимальное управление (УОУ) на -м шаге, т.е. управление, которое надо применить, если ( — 1)-й шаг закончился определенным образом. Предположим, что эта процедура выполнена, то есть для каждого исхода ( — 1)-го шага мы знаем УОУ на -м шаге и соответствующий ему условно оптимальный выигрыш (УОВ). Теперь мы можем оптимизировать управление на предпоследнем, ( — 1)-м шаге. Сделаем все возможные предположения о том, чем кончился предпредпоследпий, то есть ( — 2)-й шаг, и для каждого из этих предположений найдем такое управление на ( — 1)-м шаге, чтобы выигрыш за последние два шага (из которых последний уже оптимизирован) был максимален. Далее оптимизируется управ чение на ( — 2)-м шаге, и т.д. Одним словом, на каждом шаге ищется такое управление, которое обеспечивает оптимальное продолжение процесса относительно достигнутого в данный момент состояния. Этот принцип выбора управления , называется принципом оптимальности. Само управление, обеспечивающее оптимальное продолжение процесса относительно заданного состояния, называется УОУ на данном шаге. Теперь предположим, что УОУ на каждом шаге нам известно: мы знаем, что делать дальше, в каком бы состоянии ни был процесс к началу каждого шага. Тогда мы можем найти уже не "условное", а дейсгвительно оптимальное управление на каждом шаге. Действительно, пусть нам известно начальное состояние процесса. Теперь мы уже знаем, что делать на первом шаге: надо применить УОУ, найденное для первого шага и начального сосюяния. В результате этого управления после первого шага система перейдет в другое состояние; но для этого состояния мы знаем УОУ и г д. Таким образом, мы найдем оптимальное управление процессом, приводящее к максимально возможному выигрышу. Таким образом, в процессе оптимизации управления методом динамического программирования многошаговый процесс "проходится" дважды: — первый раз — от конца к началу, в результате чего находятся УОУ на каждом шаге и оптимальный выигрыш (тоже условный) на всех шагах,начиная с данного и до конца процесса; — второй раз — от начала к концу, в результате чего находятся оптимальные управления на всех шагах процесса. Можно сказать, что процедура построения оптимального управления методом динамического программирования распадается на две стадии: предварительную и окончательную. На предварительной стадии для каждого шага определяется УОУ, зависящее от состояния системы (достигнутого в результате предыдущих шагов), и условно оптимальный выигрыш на всех оставшихся шагах, начиная с данного, также зависящий от состояния. На окончательной стадии определяется (безусловное) оптимальное управление для каждого шага. Предварительная (условная) оптимизация производится по шагам в обратном порядке: от последнего шага к первому; окончательная (безусловная) оптимизация — также по шагам, но в естественном порядке: от первого шага к последнему.
Возможность отладки на ЦВМ программ, заданных на алгоритмических языках, должна быть заложена либо в самих трансляторах, либо обеспечена с помощью самостоятельных отладочных программ. Система средств программирования ЦВМ третьего поколения, как правило, основывается на модульном принципе. Модулями называются массивы информации, заданные на алгоритмическом языке вычислительной системы или на входном языке программирования. Массивы, заданные на входных языках программирования, должны содержать информацию, необходимую для их преобразования в модули. Программу, собирающую программы из модулей, иногда называют «композером». В составе операционной системы иногда предусматривают библиотеку модулей (на языке исполнительной системы). Новые модули, составленные в процессе программирования, могут быть включены в состав библиотеки модулей с помощью соответствующей программы из числа средств поддержания системы М. о. В раздел «приложения» системы М. о. входят программы решения конкретных задач, например таких, как транспортная задача, задача решения системы линейных уравнений, распределительная задача линейного программирования, задача выравнивания динамических рядов и пр
3. Теория графов и её применение
9. Понятие и задачи таможенного оформления, порядок производства
10. Следственный осмотр: основные понятия, задачи принципы и виды следственного осмотра
11. Основные вопросы и задачи изучения истории русского языка до XVIII в.
12. Общая постановка проблемы перекрестных эффектов
13. Система автоматизированного управления: основные проблемы и задачи
14. Понятие и задачи уголовного процесса
15. Основные различия между статическим (квазистатическим) и динамическим нагружением материалов
16. Физическое совершенство как основное понятие теории физической культуры
17. Основные проблемы и задачи планирования
18. Понятия и задачи уголовного процесса
19. Понятие, предмет, задачи и функции российского уголовного права
20. Порядок и методы составления отчета о движении денег, аудит и анализ его основных показателей
21. Основные пути решения проблем в области информатизации
26. Основные понятия и законы теории цепей
27. Основы теории и основные понятия процесса хроматографического разделения
28. Общая характеристика, классификация и оценка основных средств
29. Постановка и основные свойства транспортной задачи
30. Решение задачи методами линейного, целочисленного, нелинейного и динамического программирования.
31. Обучение общим методам решения задач
32. Решение задач линейного программирования симплекс методом
33. Симплекс метод решения задачи линейного программирования
34. Решение задачи линейного программирования симплексным методом
35. Решение задачи линейного программирования симплекс-методом
36. Решения задач линейного программирования геометрическим методом
41. Метод последовательных уступок (Теория принятия решений)
42. Решение оптимизационной задачи линейного программирования
43. Решение задач линейного программирования
44. Решение задач линейной оптимизации симплекс – методом
45. Метод Алексея Юрьевича Виноградова для решения краевых задач
46. Решение задач на построение сечений в многогранниках методом следов
47. Задачи и методы теории знания
49. Динамическое программирование (задача о загрузке)
50. Методы решения некорректно поставленных задач
51. Решение задачи Дирихле для уравнения Лапласа методом сеток
52. Обучение решению математических задач с помощью графов
53. Решение задач транспортного типа методом потенциалов
57. Использование языка программирования Visual Basic для решения математических задач
59. Примеры решения задач по программированию
60. Решение задач линейного программирования
62. Решение прикладных задач методом дихотомии
63. Решение транспортной задачи линейного программирования в среде MS Excel
64. Средства языка программирования Паскаль для решения математических задач
65. Динамическое программирование, алгоритмы на графах
66. Задачи и примеры их решения по теории вероятности
67. Математические методы в теории принятия решений
68. Решение задач по курсу теории вероятности и математической статистики
69. Методы решения краевых задач, в том числе "жестких" краевых задач
74. Применение методов экономической статистики при решении задач
75. Использование линейного программирования для решения задач оптимизации
77. Решение задач симплекс-методом
78. Творческие задачи и методы их решений
79. Методы решения транспортных задач
80. Применение линейного программирования для решения экономических задач (оптимизация прибыли)
81. Решение задач по курсу "семейное право"
82. Решение дифференциальных уравнений 1 порядка методом Эйлера
83. Обучение начальных курсов методам программирования на языке Turbo Pascal
84. Применение методов линейного программирования в военном деле. Симплекс-метод
85. Билеты, решения и методичка по Информатике (2.0)
89. Решение систем дифференциальных уравнений методом Рунге-Куты 4 порядка
91. Решение нелинейного уравнения методом касательных
92. СИНГУЛЯРНОЕ РАЗЛОЖЕНИЕ В ЛИНЕЙНОЙ ЗАДАЧЕ МЕТОДА НАИМЕНЬШИХ КВАДРАТОВ
93. Приближенный метод решения интегралов. Метод прямоугольников (правых, средних, левых)
94. Задача остовных деревьев в k–связном графе
95. Решение задач на построение сечений многогранников
96. Решение дифференциальных уравнений 1 порядка методом Эйлера
97. Итерационные методы решения систем линейных уравнений с неединственными коэффициентами
98. Несколько способов решения одной геометрической задачи
99. Продвинутые методы Ганемана. LМ-потенции: теория и практика