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

Оптимизация решения о капиталовложениях в несколько объектов единовременно

Допустим, имеется возможность вложения средств С в группу из n предприятий на реконструкцию и модернизацию оборудования. Известен возможный прирост продукции на каждом предприятии в зависимости от выделенных ему средств ri(x); практическое занятие. решение задач динамического программирования - student2.ru .

Необходимо таким образом распределить инвестиции С между предприятиями, чтобы общий прирост выпуска продукции на всех n предприятиях в сумме был максимальным.

Составим основное функциональное уравнение. Обозначим через f1 – максимально возможный прирост выпуска продукции на одном предприятии при различных значениях вкладываемых средств х. Каждому значению х отвечает определённый результат r1(x):

практическое занятие. решение задач динамического программирования - student2.ru

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

На следующем шаге - оптимальный эффект от вложения средств в два предприятия получаем максимизируя объём прироста продукции на втором предприятии r2(x) плюс оптимальный результат, полученный на предыдущем шаге:

практическое занятие. решение задач динамического программирования - student2.ru

где yn-2 – средства, вкладываемые в два предприятия;

х – средства, выделяемые второму предприятию;

(yn-2 – x) – средства, вкладываемые в первое предприятие.

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

практическое занятие. решение задач динамического программирования - student2.ru

Задача. Составить оптимальный план распределения капиталовложений между четырьмя предприятиями (проектами) в размере С = 100 млн. ден. ед.

Объём капиталовложений млн. ден. ед. Прирост выпуска продукции ri(xi) в зависимости от объёма капиталовложений, млн. ден. ед.
Проект 1 Проект 2 Проект 3 Проект 4

На первом этапе решения задачи динамического программирования, рассмотрим программу вложения средств в предприятие по шагам. На первом шаге максимизируем отдачу f1(C) от вложения средств x1 в одно (первое) предприятие:

практическое занятие. решение задач динамического программирования - student2.ru

Отдача от средств, вкладываемых в 1-ое предприятие

С \ х f1(C) x1

На втором шаге максимизируем отдачу f2(C) от вложения средств в два предприятия, из которых x2 вкладывается во второе предприятие, с учётом результата, полученного на предыдущем шаге:

практическое занятие. решение задач динамического программирования - student2.ru

Отдача от средств, вкладываемых во 2-ое предприятие и их остатков, вкладываемых в 1-ое предприятие

С \ х f2(C) x2
0+12 14+0
0+33 14+12 28+0
0+44 14+33 28+12 38+0
0+64 14+44 28+33 38+12 56+0
0+78 14+64 28+44 38+33 56+12 80+0

На третьем шаге максимизируем отдачу f3(C) от вложения средств в три предприятия, из которых x3 вкладывается в третье предприятие, с учётом результата, полученного на предыдущем шаге:

практическое занятие. решение задач динамического программирования - student2.ru

Отдача от средств, вкладываемых в 3-е предприятие и их остатков, вкладываемых в 1-ое и 2-ое предприятия

С \ х f3(C) x3
0+14 13+0
0+33 13+14 38+0
0+47 13+33 38+14 47+0
0+64 13+48 38+33 47+14 64+0
0+80 13+64 38+47 47+33 64+14 79+0

На четвёртом шаге максимизируем отдачу f4(C) от вложения средств в четыре предприятия, из которых x4 вкладывается в четвёртое предприятие, с учётом результата, полученного на предыдущем шаге:

практическое занятие. решение задач динамического программирования - student2.ru

Отдача от средств, вкладываемых в 4-ое предприятие и их остатков, вкладываемых в 1-ое, 2-ое и 3-е предприятия

С \ х f4(C) x4
0+14 18+0
0+38 18+14 39+0
0+52 18+38 39+14 48+0
0+71 18+52 39+38 48+14 65+0
0+85 18+71 39+52 48+38 65+14 82+0

На втором этапе решения задачи динамического программирования, проанализируем таблицы в обратном порядке. Максимальный прирост отдачи от вложения средств в размере 100 млн. ден. ед. на четырёх предприятиях составит 91 млн. ден. ед. (табл. 5). При этом в 4-ое предприятие следует вложить х4 = 40 млн. ден. ед. Остаток средств 100 – 40 = 60 млн. ден. ед. вкладывают в развитие 1-го, 2-го и 3-го предприятий. Из табл. 4 видно, что из этой суммы в 3-е предприятие следует вложить х3 = 40 млн. ден. ед. Остаток средств - 60 – 40 = 20 млн. ден. ед. вкладывают в развитие 1-го и 2-го предприятий. Из табл. 3 видно, что из этой суммы во 2-е предприятие следует вложить всю оставшуюся сумму х2 = 20 млн. ден. ед. Вложение средств в 1-ое предприятие нерентабельно.

f = 91, x1 = 0, x2 = 20, x3 = 40, x4 = 40.

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

Оптимизация решения о капиталовложениях в течение нескольких временных периодов

Задача 1. Допустим, имеется возможность финансирования двух проектов в объеме 100 ден. ед. (Z1=100 ден. ед). Если в 1-й проект вложить Х ден.ед., то доход от этого проекта будет определяться функцией f(X)=4X. Если во 2-й проект вложить Y ден.ед., то доход от этого проекта будет определяться функцией g(Y)=3Y. Уменьшение остатка средств после вложения в 1-й и 2-й проекты происходит в соответствии с законами: φ(X)=0,2Х (для первого проекта) и Ψ(Y)=0,6Y (для второго проекта).

Нужно распределить данные средства в течение 3 лет таким образом, чтобы общий доход за 3 года был максимальным.

Решение. Решаем задачу с конца.

1 шаг. Планируем распределение средств на 3-й год. Предположим, что общий остаток средств после второго года – к началу 3-го года равна Z3. Распределим их между проектами.

Если в 1-й проект вложить Х3 ден. ед., тогда во 2-й проект останется вложить Y3=Z3 – X3. Тогда доход за 3-й год от 1-го проекта составит f(X3)=4·X3, а от 2-го проекта g(Y3)=3(Z3 – X3).

Z3 1 проект 2 проект
вложения Х3 Y3=Z3 – X3
доход f(X3)=4 X3 g(Y3)=3(Z3 – X3).

Тогда суммарный доход за 3-й год составит

F3=4 X3 +3Z3 – 3X3 = X3 +3Z3

Необходимо найти максимум этой функции дохода при условии, что 0≤X3≤Z3. Уравнение F3= X3 +3Z3 линейно относительно X3. Значит, максимальное значение лежит на границах интервала.

практическое занятие. решение задач динамического программирования - student2.ru

Максимум достигается в точке X3 = Z3, т.е. для максимизации дохода необходимо в 3-м (последнем) году направить все оставшиеся средства на 1-й проект.

мах. доход F3*=4 Z3

2 шаг. Начало 2-го года планирования к началу 2-го года функционирования системы в нашем распоряжении средства в количестве Z2. (Остаток после 1-го года).

Если в 1-й проект вложить Х2 ден. ед., тогда во 2-й проект останется вложить Y2=Z2 – X2.

Z2 1 проект 2 проект
вложения Х2 Y2=Z2 – X2
доход f(X2)= 4 X2 g(Y2)=3Y2=3(Z2 – X2).

Тогда суммарный доход за 2 последние года составит

F2,3=4 X2 +3Z2 – 3X2 + 4Z3,

но Z3 – это остаток средств после 2-го года, который можно выразить через φ(X2)=0,2Х2 и Ψ(Y2)=0,6 Y2

Z3 = 0,2X2 + 0,6Y2 = 0,2 X2 + 0,6 (Z2 – X2) = 0,6 Z2 - 0,4 X2

F2,3=4 X2 +3Z2 – 3X2 + 4 (0,6 Z2 - 0,4 X2) = 5,4 Z2 - 0,6 X2

Найти максимум этой функции дохода при условии, что 0≤X2≤Z2.

практическое занятие. решение задач динамического программирования - student2.ru

Значит, в начале 2-го года все средства надо вложить в 1 проект, в результате максимальный доход F2,3*= 5,4 Z2

3 шаг. Начало 1-го года. К началу 1-го года в нашем распоряжении средства в количестве Z1.

1-й проект получает Х1 ден. ед., 2-й - Y1=Z1 – X1.

Z1 1 проект 2 проект
вложения Х1 Y1=Z1 – X1
доход f(X2)= 4 X1 g(Y1)=3Y1=3(Z1 – X1).

Cуммарный доход за 3 года составит

F1,2,3=4 X1 +3(Z1 – X1) + 5,4Z2,

но Z2 – это остаток средств после 1-го года

Z2 = 0,2X1 + 0,6Y1 = 0,2 X1 + 0,6 (Z1 – X1) = 0,6 Z1 - 0,4 X1

F1,2,3= X1 +3Z1 + 5,4 (0,6 Z1 - 0,4 X1) = 6,24 Z1 - 1,16 X1

Найти максимум этой функции дохода при условии, что 0≤X1≤Z1.

практическое занятие. решение задач динамического программирования - student2.ru

Все средства вкладываем во 2 проект, в результате максимальный доход F1,2,3*= 6,24 Z1 = 6,24 * 100 = 624 ден. ед.

Оптимальное управление состоит в том, что в первые два года все средства нужно вложить во 2-й проект и только в 3-м году все средства нужно отдать 1-му проекту. Тогда доход будет максимальным.

2 этап.

Вложения в проекты
  I II Доход Остаток
1 год Х1*=0 Y1*=100 F1=g(Y1)=100*3=300 Z2=Ψ(Y2)=0,6*Y=60
2 год Х2*=0 Y2*=60 F2=g(Y2)=60*3=180 Z3=Ψ(Y3)=0,6*Y=36
3 год Х3*=36 Y3*=0 F3=f(X3)=36*4=144 F1+F2+F3=624

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

Общая постановка

Для осуществления своей деятельности предприятия время от времени должно производить замену своего оборудования. При замене оборудования учитывается:

1) производительность используемого оборудования;

2) затраты на ремонт и содержание оборудования;

3) стоимость приобретенного и заменяемого оборудования.

Предположим, что к началу планируемого периода на предприятии установлено новое оборудование, позволяющее за каждый τ-й год выпустить готовой продукции на сумму R(τ) рублей, а ежегодные затраты, связанные с ремонтом и содержанием оборудования равны Z(τ) рублей.

В τ-й год оборудование может быть продано за S(τ) рублей, а новое куплено за С рублей. С учетом всех этих факторов найти план замены оборудования, обеспечивающий максимальную прибыль за N лет.

3адача. На предприятии установлено новое оборудование. Зависимость производительности его от времени использования, а также зависимость затрат на содержание и ремонт при различном времени использования приведены в табл. 1.

Таблица 1

  Время, в течении которого используется оборудование (τ)
Годовой выпуск продукции R(τ), т.руб.
Ежегодные затраты на ремонт и содержание оборудования Z(τ), т.руб.

Зная затраты, связанные с приобретением и установкой нового оборудования (идентичного старому оборудованию), которые составляют 40 тыс.р. и то, что заменяемое оборудование списывается, составить такой план замены оборудования в течении 5 лет, при котором общая прибыль (полезный эффект) за весь период была бы максимальной

Решение

Обозначим через u1 – решение сохранить (оставить) старое оборудование, а через u2 – решение о замене оборудования.

1-й этап. Начинаем от начала 5-го года. Для того, чтобы найти условно-оптимальное управление составим уравнение Беллмана.

Мы предполагаем, что к концу k-го года (k=1..5) может применяться одно из 2 решений: либо сохранить, либо заменить оборудование. Исходя из этого прибыль предприятия за k-й год можем записать следующим образом:

практическое занятие. решение задач динамического программирования - student2.ru

где τ(k) – возраст оборудования к началу k-го года,

u(k) – управление, реализуемое к началу k-го года,

С – стоимость нового оборудования.

Уравнение Беллмана выглядит следующим образом:

практическое занятие. решение задач динамического программирования - student2.ru (12)

это прибыль за k лет.

Используя уравнение (1) начнем с определения условно-оптимального управления для последнего 5-го года.

Для этого находим множество допустимых состояний оборудования к началу данного года.

Т.к. к началу первого года пятилетки имеется новое оборудование, а это означает что τ(1) =0, то возраст оборудования к началу 5-го года может быть 1,2,3,4 года.

Поэтому допустимые состояния на данный период таковы: к началу 5 года:

τ1(5) =1; τ2(5) =2; τ3(5) =3; τ4(5) =4.

Для каждого из этих состояний найдем условно-оптимальное управление, и соответствующие значения прибыли (полезного эффекта) F5(5)).

Используя уравнение (12) и соотношение F6(6))=0, получим следующее значение прибыли:

практическое занятие. решение задач динамического программирования - student2.ru (13)

Подставляя в (13) все значения τ(5) и учитывая данные табл. 1, получим:

практическое занятие. решение задач динамического программирования - student2.ru , т.к. max достигается при управлении u1.

практическое занятие. решение задач динамического программирования - student2.ru

практическое занятие. решение задач динамического программирования - student2.ru

практическое занятие. решение задач динамического программирования - student2.ru . Запишем данные в табл. 2.

Таблица 2

τ(5) -год F5(5)) – функция цели u*- решение
u1
u1
u1
u2

Подходим к началу 4-го года τ1(4) =1; τ2(4) =2; τ3(4) =3.

практическое занятие. решение задач динамического программирования - student2.ru

Подставляя в (13) все значения τ(5) и учитывая данные табл. 1, получим:

практическое занятие. решение задач динамического программирования - student2.ru

практическое занятие. решение задач динамического программирования - student2.ru

практическое занятие. решение задач динамического программирования - student2.ru

Таблица 3

τ(4) -год F4(4)) – функция цели u*- решение
u1
u2
u2

Подходим к началу 3-го года τ1(3) =1; τ2(3) =2.

практическое занятие. решение задач динамического программирования - student2.ru

практическое занятие. решение задач динамического программирования - student2.ru

Таблица 4

τ(3) -год F3(3)) – функция цели u*- решение
u1
u2

Подходим к началу 2-го года τ1(2) =1.

практическое занятие. решение задач динамического программирования - student2.ru

Таблица 5

τ(3) -год F3(3)) – функция цели u*- решение
u1

Согласно условию к началу 1-го года состояние оборудования τ(1) =0, поэтому проблемы выбора нет и оборудование сохраняют.

F1(1))=80-20-40+155=175 - условно-оптимальное решение.

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

1-й год – решение единственное – оборудование сохранить. К началу 2-го оборудованию будет 1 год. Тогда в соответствии с данными табл. 5 оптимальным решением 2-го года будет решение тоже сохранить оборудование. Реализация такого решения приводит к тому, что возраст оборудования к началу 3-го года будет 2 года. Тогда в 3-м году оптимальное решение поменять оборудование (табл. 4). После замены оборудования его возраст к началу 4-го года равен 1 году. Из табл. 3 видно, что оборудование менять не следует. Поэтому к началу 5 года возраст оборудования будет 2 года и менять его не надо (табл. 2).

Таким образом, оптимальный план замены оборудования:

1 год –сохранять, 2- сохранять, 3 – заменить, 4 – сохранять,

5 – сохранять.

Наши рекомендации