|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Динамическое программирование
Динамическое программирование – метод оптимизации, приспособленный к операциям, в которых процесс принятия решения может быть разбит на этапы (шаги). Такие операции называются многошаговыми. Начало развития динамического программирования относится к 50-м годам ХХ в. и связано с именем Ричарда Эрнеста Беллмана. Если модели линейного программирования можно использовать в экономике для принятия крупномасштабных плановых решений в сложных ситуациях, то модели динамического программирования применяются при решении задач значительно меньшего масштаба, например, при разработке правил управления запасами; при распределении инвестиционных ресурсов между альтернативными проектами; при составлении календарных планов текущего и капитального ремонта сложного оборудования и его замены и т.п. Общая постановка задачи динамического программирования. Рассматривается управляемый процесс, например, процесс распределения средств между предприятиями, использования ресурсов в течение ряда лет, замены оборудования и т.п. В результате управления система (объект управления) Обозначим через Пусть
Таким образом, получаем последовательность состояний
Пусть показатель эффективности
а эффективность всего рассматриваемого многошагового процесса следующей аддитивной функцией: Тогда задача пошаговой оптимизации (задача динамического программирования) формулируется следующим образом: определить такое допустимое управление Задача динамического программирования обладает следующими особенностями: 1. Задача оптимизации интерпретируется как 2. Целевая функция равна сумме целевых функций каждого шага. 3. Выбор управления на 4. Состояние 5. На каждом шаге управление Принцип оптимальности впервые был сформулирован Ричардом Эрнестом Беллманом в 1953 г. (в трактовке Е.С. Вентцель): «Каково бы ни было состояние системы в результате какого-либо числа шагов, на ближайшем шаге нужно выбирать управление таким образом, чтобы оно в совокупности с оптимальным управлением на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, включая данный.» Р.Э. Беллманом были сформулированы и условия, при которых принцип верен. Основное требование – процесс управления должен быть без обратной связи, т.е. управление на данном шаге не должно оказывать влияния на предшествующие шаги. Рассмотрим общую задачу динамического программирования, приведенную выше. На каждом шаге кроме последнего для любого состояния системы На последнем шаге исходя из состояния системы Рассмотрим последний
Согласно принципу оптимальности, Обозначим через
Максимизация ведется по всем допустимым управлениям Решение Решив одномерную задачу локальной оптимизации по уравнению (3.2.2), определим для всех возможных состояний Рассмотрим двухшаговую задачу: присоединим к Для любых состояний
Согласно принципу оптимальности Беллмана для любых
Соответствующее управление Аналогично определяются условные оптимумы целевой функции при оптимальном управлении на (
Управление Уравнения (3.2.2) и (3.2.5) называют рекуррентными уравнения Беллмана (обратная схема). Процесс решения данных уравнений называют условной оптимизацией. В результате условной оптимизации получаются две последовательности:
Используя данные последовательности, можно найти решение задачи динамического программирования при данных В результате получаем оптимальное решение задачи динамического программирования: Аналогично рассуждая, можно выстроить и прямую схему условной оптимизации:
Оптимальное решение задачи в данном случае находится по следующей схеме: Таким образом, построение модели динамического программирования и решение задачи на ее основе в общем виде можно представить в виде следующих этапов: 1. Выбирают способ деления процесса управления на шаги. 2. Определяют параметры состояния 3. Вводят целевые функции 4. Записывают в соответствии с обратной или прямой схемой рекуррентные уравнения Беллмана и после выполнения условной оптимизации получают две последовательности: { 5. Определяют оптимальное значение целевой функции
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.009 сек.) |