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

1. Основные понятия

1.1. Модель динамического программирования

1.2. Принцип оптимальности. Уравнение Беллмана

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

2.1 Постановка задачи

2.2 Двумерная модель распределения ресурсов

2.3 Дискретная динамическая модель оптимального распределения ресурсов

2.4 Учет последействия в задачах оптимального распределения ресурсов

Заключение

Список используемых источников

Приложение 1. Листинг программы для решения задачи оптимального распределения ресурсов с заданными параметрами. Результаты работы программы

Введение

На протяжении всей своей истории люди при необходимости принимать решения прибегали к сложным ритуалам. Они устраивали торжественные церемонии, приносили в жертву животных, гадали по звездам и следили за полетом птиц. Они полагались на народные приметы и старались следовать примитивным правилам, облегчающим им трудную задачу принятия решений. В настоящее время для принятия решения используют новый и, по-видимому, более научный «ритуал», основанный на применении электронно-вычислительной машины. Без современных технических средств человеческий ум, вероятно, не может учесть многочисленные и разнообразные факторы, с которыми сталкиваются при управлении предприятием, конструировании ракеты или регулировании движения транспорта. Существующие в настоящее время многочисленные математические методы оптимизации уже достаточно развиты, что позволяет эффективно использовать возможности цифровых и гибридных вычислительных машин. Одним из этих методов является математическое программирование, включающее в себя как частный случай динамическое программирование.

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

Динамическое программирование – метод оптимизации, приспособленный к операциям, в которых процесс принятия решений может быть разбит на отдельные этапы (шаги). Такие операции называются многошаговыми.

Как раздел математического программирования, динамическое программирование (ДП) начало развиваться в 50-х годах XX в. благодаря работам Р. Беллмана и его сотрудников. Впервые этим методом решались задачи оптимального управления запасами, затем класс задач значительно расширился. Как практический метод оптимизации, метод динамического программирования стал возможен лишь при использовании современной вычислительной техники.

В основе метода динамического программирования лежит принцип оптимальности, сформулированный Беллманом. Этот принцип и идея включения конкретной задачи оптимизации в семейство аналогичных многошаговых задач приводят к рекуррентным соотношениям - функциональным уравнениям - относительно оптимального значения целевой функции. Их решение позволяет последовательно получить оптимальное управление для исходной задачи оптимизации.

1. Основные понятия

1.1 Модель динамического программирования

Дадим общее описание модели динамического программирования.

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

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

Рисунок 1

Состояние

системы после k-го шага ( k = 1,2 …,n ) характеризуется параметрами , ,…, которые называются фазовыми координатами. Состояние можно изобразить точкой s-мерного пространства называемого фазовым пространством. Последовательное преобразование системы (по шагам) достигается с помощью некоторых мероприятий , ,…, , которые составляют управление системой , где - управление на k -м шаге, переводящее систему из состояния в состояние (рис. 1). Управление на k -ом шаге заключается в выборе значений определенных управляющих переменных .

Предполагаем впредь, что состояние системы в конце k-го шага зависит только от предшествующего состояния системы

и управления на данном шаге (рис. 1). Такое свойство получило название отсутствия последействия. Обозначим эту зависимость в виде , (1.1)

Равенства (1.1) получили название уравнений состояний. Функции

полагаем заданными.

Варьируя управление U , получим различную «эффективность» процесса , которую будем оценивать количественно целевой функцией Z , зависящей от начального состояния системы

и от выбранного управления U : . (1.2)

Показатель эффективности k-го шага процесса управления, который зависит от состояния

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

Если свойство аддитивности целевой функции Z не выполняется, то этого иногда можно добиться некоторыми преобразованиями функции. Например, если Z- мультипликативная функция, заданная в виде

, то можно рассмотреть функцию , которая является аддитивной.

Обычно условиями процесса на управление на каждом шаге

накладываются некоторые ограничения. Управления, удовлетворяющие этим ограничениям называются допустимыми .

Задачу пошаговой оптимизации можно сформулировать так: определить совокупность допустимых управлении

Лабораторная работа

Информатика, кибернетика и программирование

Средства X выделенные kому предприятию приносит в конце года прибыль. Функции заданы таблично: X f1X f2X f3X f4X 1 8 6 3 4 2 10 9 4 6 3 11 11 7 8 4 12 13 11 13 5 18 15 18 16 Определить какое количество средств нужно выделить каждому предприятию чтобы суммарная прибыль равная сумме прибылей полученных от каждого предприятия была наибольшей. Пусть количество средств выделенных kому предприятию. Уравнения на м шаге удовлетворяют условию: либо kому предприятию ничего не выделяем: либо не больше того что...

Лабораторная работа 4_2. Решение задачи о распределении ресурсов методом динамического программирования.

Цель работы – изучить возможности табличного процессора MS Excel для решения задачи распределения ограниченных ресурсов методом динамического программирования.

Краткие теоретические сведения

Построение модели динамического программирования (ДП) и применение метода ДП для решения задачи сводится к следующему:

  1. выбирают способ деления процесса управления на шаги;
  2. определяют параметры состояния и переменные управления X k на каждом шаге;
  3. записывают уравнения состояний;
  4. вводят целевые функции k -ого шага и суммарную целевую функцию;
  5. вводят в рассмотрение условные максимумы (минимумы) и условное оптимальное управление на k -ом шаге: .
  6. Записывают основные для вычислительной схемы ДП уравнения Беллмана для и по правилу:
  1. Решают последовательно уравнения Беллмана (условная оптимизация) и получают две последовательности функций и.
  2. После выполнения условной оптимизации получают оптимальное решение для конкретного состояния:

а) и

б) по цепочке оптимальное управление (решение) .

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

Условие задачи . Планируется деятельность четырех промышленных предприятий на очередной год. Начальные средства: у.е. Размеры вложения в каждое предприятие кратны 1 условной единице. Средства X , выделенные k

f 1 (X)

f 2 (X)

f 3 (X)

f 4 (X)

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

Решение. Пусть - количество средств, выделенных k -ому предприятию. Суммарная прибыль равна. Переменные X удовлетворяют ограничениям: . Требуется найти переменные, удовлетворяющие данным ограничениям и обращающие в максимум функцию Z .

Схема решения задачи методом ДП имеет следующий вид: процесс решения распределения средств можно рассматривать как 4-шаговый, номер шага совпадает с номером предприятия; выбор переменных – уравнения на 1, 2, 3, 4 шагах соответственно; - конечное состояние процесса распределения – равно нулю, т.к. все средства должны быть вложены в производство, =0 .

Уравнения состояний и схему распределения можно представить в виде:

Здесь - параметр состояния – количество средств, оставшихся после k -ого шага, т.е. средства, которые остается распределить между оставшимися (4- k ) предприятиями.

Введем в рассмотрение функцию - условно оптимальную прибыль, полученную от -го, (k +1 )-го, …, 4-го предприятий, если между ними распределялись оптимальным образом средства). Уравнения на -м шаге удовлетворяют условию: (либо k -ому предприятию ничего не выделяем: , либо не больше того, что имеем к k -ому шагу:).

Уравнения Беллмана имеют вид:

Решение уравнений осуществляется путем последовательной оптимизации каждого шага.

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

3 шаг . Делаем предположения относительно остатка средств к 3-ему шагу: может принимать значения 0,1,2,3,4,5 (=0, если все средства отданы 1-ому и 2-ому предприятиям и т.д.). В зависимости от этого выбираем и сравниваем для разных при фиксированных значениях значения суммы. Для каждого максимальное из этих значений есть - условная оптимальная прибыль, полученная при оптимальном распределении средств между 3-м и 4-м предприятиями. Полученные значения для приведены в таблице в графах 5 и 6 соответственно.

S k-1

k =3

k =2

k =1

f 3 (X 3 )+

f 2 (X 2 )+

f 1 (X 1 )+

0+4=4

3+0=3

0+4=4

6+0=6

0+6=6

8+0=8

0+6=6

3+4=7

4+0=4

0+7=7

6+4=10

9+0=9

0+10=10

8+6=14

10+0=10

0+8=8

3+6=9

4+4=8

7+0=7

0+9=9

6+7=13

9+4=13

11+0=11

0+13=13

8+10=18

10+6=16

11+0=11

0+13=13

3+8=11

4+6=10

7+4=11

11+0=11

0+13=13

6+9=15

9+7=16

11+4=15

13+0=13

0+16=16

8+13=21

10+10=20

11+6=17

12+0=12

0+16=16

3+13=16

4+8=12

7+6=13

11+4=15

18+0=18

0+18=18

6+13=19

9+9=18

11+7=18

13+4=17

15+0=15

0+19=19

8+16=24

10+13=23

11+10=21

12+6=18

18+0=18

2 шаг k =2. Для всех возможных значений значения и находятся в столбцах 8 и 9 соответственно; первые слагаемые в столбце 7 – значения взяты из условия, вторые слагаемые взяты из столбца 5 при.

1 шаг . Условная оптимизация проведена в таблице при k =1 для.

Если, то=5; прибыль, полученная от четырех предприятий при условии, что =5 средств между оставшимися тремя предприятиями будут распределены оптимально, равна.

Если, то=4; суммарная прибыль при условии, что =4 средств между оставшимися тремя предприятиями будут распределены оптимально, равна.

Аналогично, при, и;

При, и;

При, и;

Сравнивая полученные значения, получим при.

Вычисляя, получим, а по таблице в столбце 9 находим. Далее находим, а в столбце 6 . Наконец, и. Оптимальное решение.

Ответ. Максимум суммарной прибыли равен 24 у.е. при условии, что 1-ому предприятию выделена 1 у.е.; 2-ому предприятию выделено 2 у.е.; 3-ому предприятию - 1 у.е.; 4-ому предприятию - 1 у.е.

Реализация задачи в MS Excel

  1. Ввод исходных данных в таблицу показан на Рис.1.

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

2. Порядок заполнения ячеек таблицы:

1). В ячейку E 15 введем формулу ИНДЕКС($B$3:$F$8;ПОИСКПОЗ($C15;$B$3:$B$8);G$12+1) и скопируем формулу в диапазоне ячеек с E 15 до E 35.

2). В ячейку F 15 введем формулу

ИНДЕКС($B$3:$F$8;ПОИСКПОЗ($D15;$B$3:$B$8);5) и скопируем формулу в диапазон ячеек с F 15 до F 35.

3). В ячейку G 15 введем формулу E 15+ F 15 и скопируем формулу в диапазон: G 15 - G 35.

4). Находим максимальное значение для каждого состояния от 0 до 5, для этого в ячейку H 15 введем формулу МАКС(G15); после ввода формулы в ячейку H 16 необходимо изменить диапазон с G 16 на G 16: G 17 и т.д. по всему столбику до ячейки H 30 (Рис.2а).

3. Находим значение управления, которому соответствует максимальное значение функции, для этого в ячейку I 15 введем формулу ИНДЕКС($ C 15: G 15;ПОИСКПОЗ(H 15; G 15;0);1), скопируем формулу в ячейку I 16 и увеличим диапазон, в результате в ячейке I 16 получим: ИНДЕКС($ C 16: G 17;ПОИСКПОЗ(H 16; G 16: G 17;0);1). Далее скопируем формулу в ячейки I 18, I 21, I 25, I 30 , постепенно увеличивая диапазон (Рис.2б)

Рис.2а. Вид рабочего листа с формулами, k =3.

Рис.2б (правая часть рабочего листа с формулами, k =3

В результате получим:

Рис. 3 . Результат выполнения первого шага (k =3).

4. Выделяем диапазон E 15: I 35, выполняем команду Копировать J 15 и выполняем команду Вставить .

5. Изменим формулу функции. В ячейки K 15, K 16, K 18, K 21, K 25, K 30 введем соответственно максимальные значения предыдущего шага, находящиеся в ячейках H 15, H 16, H 18, H 21, H 25, H 30. В остальные ячейки поместим значения, стоящие в этом же столбце и соответствующие предыдущим S k . :

В ячейку K 17 копируем значения ячейки К15;

в ячейки К19 и К20 – значения К16 и К17;

в К22:К24 – значения К18:К20;

в К26:К29 – значения К21:К24;

в К31:К35 – значения К25:К29;

В результате получим:

Рис.4. Результат выполнения второго шага (k =2).

6. Выделяем диапазон ячеек J 15: N 35, выполняем команду Копировать , устанавливаем курсор в ячейку O 15, выполняем команду Вставить . В результате получаем заполненную таблицу с решением для k =1 (Рис.5)

7. Объясним полученные результаты: при. Вычисляя, получим, а по таблице в столбце 12 находим. Далее определяем, а из столбца 6 . Наконец, и. Таким образом, оптимальное значение, а значение функции 24 у.е., что согласуется с данными, полученными вручную.

Рис.6. Результат выполнения третьего шага (k =1).

Контрольные упражнения. Варианты.

1. Планируется деятельность четырех промышленных предприятий на очередной год. Начальные средства у.е. Размеры вложения в каждое предприятие кратны 1 у.е. Средства X , выделенные k -ому предприятию (), приносит в конце года прибыль. Функции заданы таблично:

f 1 (X)

f 2 (X)

f 3 (X)

f 4 (X)

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

2. Планируется деятельность трех промышленных предприятий на очередной год. Начальные средства: у.е. Размеры вложения в каждое предприятие кратны 1 у.е. Средства X , выделенные k -ому предприятию (), приносит в конце года прибыль. Функции заданы таблично:

f 1 (X)

f 2 (X)

f 3 (X)

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


А также другие работы, которые могут Вас заинтересовать

58796. Geographical Outlook 977.5 KB
By the end of the lesson you should be able to recognize and understand new words and word combinations in the text, to read and understand the gist and details despite the natural difficulties.
58797. Інформація та інформаційні процеси. Обчислювальна система 128 KB
Загальна характеристика теми. Правила техніки безпеки в кабінеті ПЕОМ. Інформатика. Поняття інформації. Інформація і шум. Інформаційні процеси. Інформація й повідомлення.
58798. Операційні системи 126 KB
Робочий стіл. Основні об’єкти Windows. Виділення об’єкта. Операції, властивості та основні команди для роботи з об’єктами. Контекстне меню об’єкта. Ярлики та їх призначення.
58799. Основи роботи з дисками 144.5 KB
Загальна характеристика теми. Форматування диска. Діагностика та дефрагментація дисків. Відновлення інформації на диску. Правила записування та зчитування інформації з дискет.
58800. Текстовий редактор 190 KB
Системи опрацювання текстiв i їх основнi функцiї. Завантаження текстового редактора. Iнтерфейс редактора. Інформаційний рядок. Режими екрана, використання вікон.
58801. Графічний редактор 708 KB
Загальна характеристика теми. Машинна графiка. Графiчний екран. Система опрацювання графiчної інформації. Вказiвки малювання графiчних примiтивiв при роботi з редактором. Типи графічних файлів.
58802. Електронні таблиці 280.5 KB
Навчальна. Охарактеризувати нову тему, висвітлити її роль в курсі інформатики. Ввести поняття електронна таблиця. Ознайомити учнів з програмами опрацювання ЕТ, правилами введення та редагування інформації в ЕТ, способами форматування ЕТ.
58803. Системи управління базами даних (СУБД) 156.5 KB
Бази даних. Фактографічні й документальні БД. Iєрархiчна, мережева, реляцiйна модель бази даних. Основнi елементи та об’єкти бази даних: поле, запис, файл. СУБД.

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

Данный раздел представлен следующими калькуляторами:

  1. . Распределении инвестиций между предприятиями П 1 , П 2 ,..., П n . Инвестируемая сумма E усл. ден. ед.
  2. Задача распределения ресурсов . Планируется работа двух предприятий на n лет. Начальные ресурсы равны s 0 .
  3. Складская задача : составить оптимальную программу выпуска продукции X , которая минимизирует суммарные издержки предприятия.
  4. Задача о рюкзаке (решение задачи о загрузке транспортного средства).

Задача распределения инвестиций

В задачах данного типа заданы сумма инвестиций (или сумма для распределения) и таблица планируемой прибыли. Если сумма для распределения явно не задана, то ее можно найти из таблицы - она равна максимальному значению x i (последняя строчка таблицы).

Таблицы могут иметь разный вид.
Таблица 1 - Первый вариант таблицы исходных данных

x

f 1 (x )

f 2 (x )

f 3 (x )

5 *


* - здесь значение 5 - максимальное значение (сумма для распределения).

Таблица 2 - Второй вариант таблицы исходных данных

x

f 1 (x )

f 2 (x )

f 3 (x )

Пример задачи.
Для двух предприятий выделено A единиц средств. Как распределить все средства в течение 4 лет, чтобы доход был наибольшим, если известно, что доход от x единиц средств, вложенных в первое предприятие, равен f 1 (х), а доход от y единиц средств, вложенных во второе предприятие, равен f 2 (y). Остаток средств к концу года составляет g 1 (x) для первого предприятия и g 2 (y) для второго предприятия. Задачу решить методом динамического программирования.

При вводе данных первую нулевую строку можно не заполнять.

В сервисе Задача распределения инвестиций используется метод обратной прогонки.

Метод прогонки

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

В сервисе Метод прогонки необходимо также выбрать метод решения: процедура прямой или обратной прогонки.

Задача замены оборудования

Цель решения - определить на каких шагах алгоритма (в какие годы) необходимо заменить оборудование. Для этого вводятся Период эксплуатации (в годах) и Стоимость нового оборудования . После этого необходимо заполнить таблицу дохода r(t) и остаточной стоимости S(t).
Задача замены оборудования

Планирование производственной линии

Задача последовательной обработки на двух машинах N различных деталей, если известно время A i и B i обработки i -й детали на соответствующих машинах. Требуется найти порядок обработки, минимизирующий время простоя второй машины и тем самым сокращающий общее время обработки деталей.

План урока

Учебная дисциплина МАТЕМАТИЧЕСКИЕ МЕТОДЫ И МОДЕЛИ В ЭКОНОМИКЕ

Тема урока Решение различных практических задач ДП с применением математических методов.

Цели урока

    Развить навык решения задач динамического программирования.

    Развитие качества ума, внимания, умений учебного труда студентов.

    Воспитание дисциплинированности, целеустремленности студентов.

Оснащение урока конспект лекций, В.П.Агальцов «Математические методы в программировании».

Ход урока:

    Организационный момент:

проверка отсутствующих, заполнение журнала.

    Актуализация опорных знаний : ответы на контрольные вопросы

    Какие задачи называются многошаговыми?

    При помощи какого математического аппарата решаются многошаговые задачи?

    Что такое оптимальное управление u*?

    Каков алгоритм метода последовательных приближений в два круга?

    Приведите примеры задач оптимального распределения ресурсов.

    Изучение нового материала:

Классические задачи динамического программирования

  • Задача о наибольшей общей подпоследовательности: даны две последовательности, требуется найти самую длинную общую подпоследовательность.

  • Задача поиска наибольшей увеличивающейся подпоследовательности: дана последовательность, требуется найти самую длинную возрастающую подпоследовательность.

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

  • Задача о вычислении чисел Фибоначчи

  • Задача о порядке перемножения матриц: даны матрицы, …, требуется минимизировать количество скалярных операций для их перемножения.

  • Задача о выборе траектории

  • Задача последовательного принятия решения

  • Задача об использовании рабочей силы

  • Задача управления запасами

  • Задача о ранце: из неограниченного множества предметов со свойствами «стоимость» и «вес» требуется отобрать некое число предметов таким образом, чтобы получить максимальную суммарную стоимость при ограниченном суммарном весе.

  • Алгоритм Флойда - Уоршелла: найти кратчайшие расстояния между всеми вершинами взвешенного ориентированного графа.

  • Алгоритм Беллмана - Форда: найти кратчайший путь во взвешенном графе между двумя заданными вершинами.

  • Максимальное независимое множество вершин в дереве: дано дерево, найти максимальное множество вершин, никакие две из которых не связаны ребром.

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

Капитал 40 млн.руб. инвестор должен вложить в четыре инвестиционных проекта так, чтобы получить максимальный доход. Доходность проектов дана в таблице (вложения кратны 8 млн. руб.)

u

Прибыль от внедрения

f4 (u )

f3 (u )

f2 (u )

f1 (u )

55

39

120

115

10 0

120

135

134

14 0

145

158

147

Решение:

Это задача динамического программирования. Решение состоит из двух этапов. На первом этапе (от конца к началу) ищем условное оптимальное решение, на втором (от начала к концу) – ищем оптимальное решение задачи.

1 этап.

Распределяем капитал между четырьмя проектами и считаем получаемую прибыль L (i ), i = 8,16,24,32,40.

1 шаг : Денежные средства вкладываются в четвертый проект.

L (8)=55

L (16)=58

L (24)=90

L (32)=100

L (40)=140

2 шаг : Денежные средства вкладываются в четвертый и третий проекты.

u

Прибыль от внедрения

1 шаг

f3 (u )

55

39

10 0

120

14 0

145

3 шаг : Денежные средства вкладываются в четвертый, третий (2 шаг) и второй проекты.

u

Прибыль от внедрения

2 шаг

f 2(u )

94

108

120

135

135

175

158

175

134

214

147

2 этап:

На четвертом шаге выбираем максимальное из полученных значений прибыли L (40)=214.

И возвращаясь в обратном порядке от таблицы к таблице (от 4 шага к 1) выбираем такие значения доходов, при которых и получено значение 214.

Максимальный доход 214 млн. руб. от вложенных средств может быть получен при следующем распределении средств:

1 проект – 0 млн. руб.

2 проект – 24 млн. руб.

3 проект – 8 млн. руб.

4 проект – 8 млн. руб.

    Закрепление нового материала:

5. Подведение итогов урока: выводы, оценки, домашнее задание:

(2) п.5.1

Ср12: формирование и усвоение содержания теоретического материала

Подпись преподавателя

Краткая теория

Динамическое программирование (иначе - динамическое планирование) - это метод нахождения оптимальных решений в задачах с многошаговой (многоэтапной) структурой. Многие экономические процессы расчленяются на шаги естественным образом. Это все процессы планирования и управления, развиваемые во времени. Естественным шагом в них может быть год, квартал, месяц, декада, неделя, день и т. д. Однако метод динамического программирования может использоваться при решении задач, где время вообще не фигурирует; разделение на шаги в таких задачах вводится искусственно. Поэтому «динамика» задач динамического программирования заключается в методе решения.

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

Типичные особенности многошаговых задач.

1. Рассматривается система, состояние которой на каждом шаге определяется вектором . Дальнейшее изменение ее состояния зависит только от данного состояния и не зависит от того, каким путем система пришла в него. Такие процессы называются процессами без последействия.

2. На каждом шаге выбирается одно решение , под действием которого система переходит из предыдущего состояния в новое . Это новое состояние является функцией состояния на начало интервала и принятого в начале интервала решения т. е.

3. Действие на каждом шаге связано с определенным выигрышем (доходом, прибылью) или потерей (издержками), которые зависят от состояния на начало шага (этапа) и принятого решения.

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

5. Требуется найти такое допустимое управление для каждого шага , чтобы получить экстремальное значение функции цели за все шагов.

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

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

Можно сформулировать следующие принципы, лежащие в основе динамического программирования: принцип оптимальности и принцип погружения.

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

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

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

Дадим математическую формулировку принципа оптимальности для задач с аддитивным критерием оптимальности (сепарабельная функция цели). Для простоты будем считать, что начальное и конечное состояния системы заданы. Обозначим через значение функции цели на первом этапе при начальном состоянии системы и при управлении , через -соответствующее значение функции цели только на втором этапе, …., через - на этапе, …, через - на -м этапе. Очевидно, что

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

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

соответственно условно-оптимальные значения функции цели на последнем этапе, двух последних и т.д., на последних и т.д., на всех этапах.

Начинаем с последнего этапа. Пусть - возможные состояния системы на начало -го этапа. Находим:

Для двух последних этапов получаем:

Аналогично:

…………………….

…………………….

Выражение (5) представляет собой математическую запись принципа оптимальности. Выражение (4) - общая форма записи условно-оптимального значения функции цели для оставшихся этапов. Выражения (1)-(5) называются функциональными уравнениями Беллмана. Отчетливо просматривается их рекуррентный (возвратный) характер, т.е. для нахождения оптимального управления на шагах нужно знать условно-оптимальное управление на предшествующих этапах и т.д. Поэтому функциональные уравнения часто называются рекуррентными (возвратными) соотношениями Беллмана.

Пример решения задачи

Условие задачи

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

Требуется найти оптимальное решение распределения кредита между предприятиями, чтобы общий прирост выпуска продукции на производственном объединении был максимальным.

Выделяемые средства , млн.ден.ед. Предприятие №1 №2 №3 №4 Прирост выпуска продукции на предприятиях млн.ден.ед. 20 10 12 11 16 40 31 24 36 37 60 42 36 45 46 80 62 52 60 63 100 76 74 77 80

Решение задачи

Если сроки со сдачей контрольной работы поджимают, на сайте всегда можно заказать cрочное решение задач по методам оптимальных решений .

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

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

Выделяемые средства 0 0 0 0 0 20 10 12 11 16 40 31 24 36 37 60 42 36 45 46 80 62 52 60 63 100 76 74 77 80

Шаг 1

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

Шаг 2

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

Шаг 3

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

Шаг 4

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

0 0 0 0 0 20 10 12 12 16 40 31 31 36 37 60 42 43 48 52 80 62 62 67 73 100 76 76 79 85

Ответ

Оптимальный план распределения между 4 предприятиями 100 единиц ресурса:

0 20 40 40

При этом суммарный прирост продукции достигнет максимальной величины, равной 85.

Средняя стоимость решения контрольной работы 700 - 1200 рублей (но не менее 300 руб. за весь заказ). На цену сильно влияет срочность решения (от суток до нескольких часов). Стоимость онлайн-помощи на экзамене/зачете - от 1000 руб. за решение билета.

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

Примеры близких по теме задач

Основная модель управления запасами
На примере решения задачи рассмотрена основная модель управления запасами (модель Уилсона). Вычислены такие показатели модели как оптимальный размер партии заказа, годовые затраты на хранение, интервал между поставками и точка размещения заказа.

Задача квадратичного программирования
Приведен образец решения задачи квадратичного выпуклого программирования графическим методом.

Игры в смешанных стратегиях
Содержит изложенные в краткой и доступной форме теоретические сведения о матричной игре без седловой точки и способе сведения такой задачи к задаче линейного программирования, для отыскания ее решения в смешанных стратегиях. Приведен пример решения задачи.