- •ВВЕДЕНИЕ
- •1.3.1. Задача линейного программирования
- •1.3.2. Классическая транспортная задача линейного программирования
- •1.3.3. Транспортная задача по критерию времени
- •1.3.4. Задача параметрического линейного программирования
- •1.3.6. Задача нелинейного программирования
- •1.3.7. Дискретная задача математического программирования
- •1.3.8. Задача целочисленного линейного программирования
- •1.3.10. Задача коммивояжера
- •1.4.2. Задания для самостоятельной работы
- •2. ЗАДАЧА О НАЗНАЧЕНИЯХ
- •3. ЗАДАЧА О КОММИВОЯЖЕРЕ
- •4. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •4.5.3. Задания для решения задачи о распределении ресурсов
- •4.6.3. Задания для решения задачи о замене оборудования
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Следует заметить, что таблицу первого шага достаточно было заполнить для начального состояния ξ0* = 40 млн руб. Полная таблица первого шага дает решения не одной задачи, а множества задач с любыми значениями ξ0* от 10 до 40. Так, если начальная сумма ξ0* = 30 млн руб., то, проводя безусловную оптимизацию по трем таблицам, получим оптимальное распределение u* = (10,10,10). При увеличении начальных средств до 50 необходимо в каждой к-й таблице добавить еще одну секцию, соответствующую начальному состоянию ξk −1 = 50.
4.5.3. Задания для решения задачи о распределении ресурсов
Решить задачу распределения ресурсов по следующим данным:
1)ξ0 = 40 млн руб.;
2)n = 3;
3)средства выделяются только в размерах, кратных 10 млн руб.;
4)функции дохода заданы таблично:
|
|
10 |
20 30 |
|
40 |
F * |
|
|
|
|
|
|
|
|
f1 |
4 |
5 |
7 |
8 |
|
1 |
f2 |
3 |
3 |
4 |
6 |
12 |
|
f3 |
4 |
4 |
5 |
6 |
|
|
|
|
|
|
|
|
|
f1 |
3 |
5 |
6 |
7 |
|
3 |
f2 |
3 |
3 |
4 |
7 |
12 |
|
f3 |
4 |
4 |
5 |
5 |
|
|
f1 |
3 |
5 |
7 |
9 |
|
5 |
f2 |
3 |
3 |
4 |
8 |
12 |
|
f3 |
4 |
4 |
5 |
7 |
|
|
|
|
|
|
|
|
|
|
10 |
20 |
30 |
40 |
F * |
|
|
|
||||
|
|
|
|
|
|
|
|
f1 |
4 |
6 |
8 |
10 |
|
2 |
f2 |
3 |
3 |
5 |
8 |
13 |
|
f3 |
4 |
4 |
5 |
6 |
|
|
|
|
|
|
|
|
|
f1 |
5 |
7 |
9 |
10 |
|
4 |
f2 |
3 |
3 |
6 |
9 |
14 |
|
f3 |
4 |
4 |
5 |
7 |
|
|
f1 |
4 |
7 |
10 |
10 |
|
6 |
f2 |
3 |
3 |
7 |
11 |
14 |
|
f3 |
4 |
4 |
5 |
6 |
|
|
|
|
|
|
|
|
86
|
f1 |
5 |
5 |
6 |
9 |
|
|
7 |
f2 |
3 |
3 |
5 |
5 |
12 |
|
|
f3 |
4 |
4 |
5 |
5 |
|
|
|
|
|
|
|
|
|
|
|
f1 |
6 |
6 |
8 |
9 |
|
|
9 |
f2 |
3 |
3 |
6 |
7 |
13 |
|
|
f3 |
4 |
4 |
5 |
5 |
|
|
|
|
|
|
|
|
|
|
|
f1 |
4 |
4 |
5 |
6 |
|
|
11 |
f2 |
3 |
6 |
9 |
9 |
13 |
|
|
f3 |
3 |
3 |
5 |
7 |
|
|
|
|
|
|
|
|
|
|
|
f1 |
4 |
4 |
5 |
6 |
|
|
13 |
f2 |
3 |
6 |
9 |
10 |
13 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
4 |
4 |
5 |
2 |
|
|
15 |
f2 |
6 |
8 |
9 |
10 |
15 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
4 |
4 |
5 |
2 |
|
|
17 |
f2 |
6 |
4 |
1 |
10 |
13 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
f1 |
4 |
5 |
5 |
2 |
|
|
19 |
f2 |
6 |
4 |
3 |
10 |
14 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
1 |
5 |
5 |
2 |
|
|
21 |
f2 |
6 |
1 |
3 |
10 |
14 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
f1 |
5 |
8 |
|
11 |
11 |
|
8 |
f2 |
2 |
3 |
|
8 |
9 |
15 |
|
f3 |
|
4 |
4 |
5 |
8 |
|
|
|
|
|
|
|
|
|
|
f1 |
|
6 |
7 |
11 |
12 |
|
10 |
f2 |
|
3 |
3 |
8 |
12 |
15 |
|
f3 |
|
4 |
4 |
5 |
5 |
|
|
|
|
|
|
|
|
|
|
f1 |
|
3 |
4 |
5 |
6 |
|
12 |
f2 |
|
3 |
3 |
6 |
10 |
11 |
|
f3 |
|
4 |
4 |
5 |
6 |
|
|
|
|
|
|
|
|
|
|
f1 |
|
4 |
4 |
5 |
6 |
|
14 |
f2 |
|
4 |
6 |
9 |
9 |
17 |
f3 |
|
3 |
9 |
5 |
7 |
||
|
|
|
|||||
|
|
|
|
|
|
|
|
|
f1 |
|
4 |
9 |
5 |
6 |
|
16 |
f2 |
|
7 |
6 |
9 |
10 |
19 |
f3 |
|
3 |
2 |
1 |
7 |
||
|
|
|
|||||
|
f1 |
|
4 |
5 |
5 |
2 |
|
18 |
f2 |
|
2 |
8 |
9 |
10 |
15 |
f3 |
|
3 |
2 |
2 |
7 |
||
|
|
|
|||||
|
f1 |
|
4 |
2 |
5 |
2 |
|
20 |
f2 |
|
6 |
4 |
1 |
10 |
13 |
f3 |
|
3 |
2 |
5 |
1 |
||
|
|
|
|||||
|
|
|
|
|
|
|
|
|
f1 |
|
1 |
5 |
5 |
2 |
|
22 |
f2 |
|
6 |
4 |
3 |
6 |
14 |
f3 |
|
3 |
2 |
5 |
7 |
||
|
|
|
|||||
|
|
|
|
|
|
|
|
87
|
f1 |
1 |
5 |
5 |
2 |
|
|
23 |
f2 |
6 |
4 |
1 |
10 |
14 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
1 |
5 |
5 |
2 |
|
|
25 |
f2 |
6 |
1 |
3 |
10 |
17 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
1 |
5 |
3 |
2 |
|
|
27 |
f2 |
2 |
1 |
7 |
10 |
10 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
3 |
5 |
9 |
2 |
|
|
29 |
f2 |
6 |
2 |
6 |
10 |
15 |
|
f3 |
3 |
1 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
f1 |
1 |
5 |
5 |
2 |
|
|
24 |
f2 |
6 |
1 |
3 |
10 |
14 |
|
f3 |
3 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
1 |
5 |
5 |
2 |
|
|
26 |
f2 |
6 |
1 |
7 |
10 |
17 |
|
f3 |
6 |
2 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
7 |
5 |
5 |
2 |
|
|
28 |
f2 |
9 |
1 |
3 |
10 |
19 |
|
f3 |
3 |
2 |
5 |
6 |
|||
|
|
||||||
|
|
|
|
|
|
|
|
|
f1 |
1 |
5 |
5 |
2 |
|
|
30 |
f2 |
6 |
9 |
3 |
10 |
15 |
|
f3 |
3 |
6 |
5 |
7 |
|||
|
|
||||||
|
|
|
|
|
|
|
4.6.ЗАДАЧАОЗАМЕНЕОБОРУДОВАНИЯ
4.6.1. Постановка задачи озамене оборудования
Важной практической задачей является определение оптимальных сроков замены старых станков, производственных зданий, агрегатов, машин и т. д., другими словами, своевременная замена старого оборудования на новое. Решение о замене оборудования принимается на основе анализа производительности этого оборудования, эксплуатационных расходов, его остаточной (ликвидной) стоимости, которая зависит от возраста, и стоимости нового оборудования. Критерием оптимальности при определении сроков замены может служить либо прибыль от эксплуатации оборудова-
88
ния, которую следует максимизировать, либо суммарные затраты на эксплуатацию в течение планируемого периода, подлежащие минимизации.
Построение математической модели
Построим модель ДП для следующей задачи о замене оборудования. Определить оптимальные сроки замены оборудования в течение n лет, при которых прибыль от эксплуатации оборудования максимальна, если известны: P – стоимость нового оборудования; f (t) – стоимость производимой продукции на оборудовании возраста t лет; r(t) – ежегодные затраты на эксплуатацию оборудования возраста t лет; ϕ(t) – ликвидная стоимость оборудования возраста t лет.
При составлении модели динамического программирования процесс замены рассматриваем как n-шаговый процесс. В начале каждого промежутка (года, месяца и т. д.) принимается решение либо о сохранении обо-
рудования (uc ), либо о его замене (u з) , поэтому управление на k-м шаге содержит всего лишь две альтернативные переменные. Функциональные уравнения благодаря этому содержат две величины: одна выражает условную прибыль (и/или условные затраты) при сохранении оборудования, другая – тот же показатель при замене оборудования.
Состояние системы в начале k-го шага ξk −1 = t – возраст оборудова-
ния. В конце k-го шага под влиянием управления uc система перейдет в состояние ξk = t +1 (возраст оборудования увеличится на один год).
Под влиянием управления u з система из состояния ξk −1 = t перейдет в состояние ξk =1 (замену произвели в начале k-го года, возраст нового оборудования равен одному году).
В результате уравнение состояний имеет вид
ξk−1 +1, |
uk = uc , |
ξk = |
uk = u з. |
1, |
89
Используя обратную вычислительную схему, получим рекуррентные соотношения Беллмана:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* |
(t +1), |
|
uk |
= u |
c |
, |
|||
|
f (t) |
−r(t) + Fk +1 |
|
|
|||||||
= max |
|
|
* |
|
|
|
|
з |
|
||
|
|
|
|
(1), |
uk |
= u |
. |
||||
|
f (0) −r(0) − P + |
ϕ(t) + Fk +1 |
|
||||||||
Fn*(t) = |
|
f (t) −r(t), |
u |
n |
=uc , |
|
max {Φ(un )} = max |
|
|
||||
|
|
uk {uc ,uз} |
f (0) −r(0) − P +ϕ(t), un =uз. |
|||
Полученное в результате решения задачи оптимальное управление |
||||||
u* = (u*,...,u* ) |
представляет собой набор управлений uc и u з. |
|
|
|
||
1 |
n |
|
|
|
|
|
4.6.2. Пример решения задачи озамене оборудования
Решить задачу о замене оборудования, если n = 5, P = 10, ϕ(t) = 0, а разность Φ(t) = f (t) −r(t) задана таблично:
|
1 |
2 |
3 |
4 |
5 |
|
|
|
|
|
|
t |
0 |
1 |
2 |
3 |
4 |
|
|
|
|
|
|
Φ(t) |
10 |
8 |
8 |
6 |
2 |
|
|
|
|
|
|
Этап I. Условная оптимизация (движение от конца к началу).
С помощью уравнений Беллмана вычисляем последовательно для всех допустимых состояний:
F5*(ξ4 ),u5*; F4*(ξ3),u4* ; F3*(ξ2 ),u3*; F2*(ξ1),u2* ; F1*(ξ0 ),u1* .
90
Уравнение Беллмана для шага k = 5 имеет вид
Φ(ξ |
4 |
), u5 =uc , |
F5*(ξ4 ) = max |
|
Φ(0) − P, u5 =uз.
Поскольку начальное состояние 5-го шага ξ4 есть возраст оборудова-
ния в начале 5-го шага, то ξ4 |
может принимать значения 0, 1, 2, 3, 4. |
||||||||
Тогда |
|
|
|
|
|
|
|
|
|
F5*(0) |
Φ(0) |
|
|
10 |
|
=10 |
, u5*(0) = uc ; |
||
= max |
|
= max |
−10 |
||||||
|
Φ(0) − P |
|
|
10 |
|
|
|
|
|
|
Φ(1) |
|
|
8 |
|
=8, |
u5*(1) = uc ; |
||
F5*(1) = max |
= max |
|
|||||||
|
Φ(0) − P |
|
|
10 −10 |
|
|
|
|
|
F5* (2) |
Φ(2) |
|
|
8 |
|
|
= 8 |
, u5*(2) = uc ; |
|
= max |
|
= max |
|
|
|||||
|
Φ(0) − P |
|
10 −10 |
|
|
|
|||
F5*(3) |
Φ(3) |
|
|
6 |
|
= 6 |
|
u5*(3) = uc ; |
|
= max |
|
= max |
−10 |
, |
|||||
|
Φ(0) − P |
|
|
10 |
|
|
|
|
|
F5*(4) |
Φ(4) |
|
|
2 |
|
= 2 |
|
u5*(4) = uc . |
|
= max |
|
= max |
−10 |
, |
|||||
|
Φ(0) − P |
|
|
10 |
|
|
|
|
|
Вычисление Fk*(ξk −1) для k = 4, 3, 2, 1 усложняется тем, что необхо-
димо учитывать значения Fk*+1(ξk ), полученные на предыдущих шагах. Запишем эти вычисления для шага k = 4.
Уравнение Беллмана имеет вид
Φ(ξ ) + F*(ξ |
|
+1), |
u |
=uc , |
||||
|
3 |
5 3 |
|
4 |
|
|
|
|
F4*(ξ3) = max |
|
|
з |
|
||||
|
|
* |
(1), |
u4 |
=u |
. |
||
Φ(0) |
− P + F5 |
|
||||||
91
Возраст оборудования в начале 4-го шага ξ3 |
может принимать значе- |
|||||||||
ния 0, 1, 2, 3. Тогда |
|
|
|
|
|
|
|
|
|
|
|
Φ(0) + F*(1) |
|
|
10 +8 |
|
|
|
|||
F4*(0) |
|
5 |
|
|
|
|
|
=18, u4* (0) = uc ; |
||
= max |
|
* |
|
= max |
10 |
+8 |
||||
|
|
− P |
(1) |
10 − |
|
|
||||
|
Φ(0) |
+ F5 |
|
|
|
|
|
|
||
|
|
* |
(2) |
|
|
8 +8 |
|
|
|
|
F4*(1) |
Φ(1) + F5 |
|
|
|
|
=16, u4* (1) = uc ; |
|
|||
= max |
|
* |
|
|
= max |
|
|
|
||
|
|
|
(1) |
10 −10 +8 |
|
|
||||
|
Φ(0) − P + F5 |
|
|
|
|
|
||||
|
|
* |
|
|
8 +6 |
|
|
|
||
F4*(2) |
Φ(2) |
+ F5 (3) |
|
|
|
=14, u4* (2) = uc |
; |
|||
= max |
|
* |
|
= max |
10 |
+8 |
||||
|
|
− P |
(1) |
10 − |
|
|
||||
|
Φ(0) |
+ F5 |
|
|
|
|
|
|
||
|
|
* |
|
|
6 + 2 |
|
|
|
||
F4*(3) |
Φ(3) |
+ F5 |
(4) |
|
|
|
=8,u4* (3) {uc ,u з} |
|||
= max |
|
* |
|
= max |
|
+8 |
||||
|
|
|
(1) |
10 −10 |
|
|
||||
|
Φ(0) |
− P + F5 |
|
|
|
|
|
|
||
и т. д. Заметим, что для случая ϕ(t) = 0 выражение, соответствующее u з, принимает постоянное значение при фиксированном значении k. Вычисления оформляем в общую таблицу:
ξ |
F5* u5* |
F4* u4* |
F3* u3* |
F2* u2* |
F1* u1* |
0 |
10 uc |
18 uc |
26 uc |
32 uc |
34 uc |
1 |
8 uc |
16 uc |
22 uc |
24 uc |
|
2 |
8 uc |
14 uc |
16 uc ,uз |
|
|
3 |
6 uc |
8 uc ,uз |
|
|
|
4 |
2 uc |
|
|
|
|
92
Этап II. Безусловная оптимизация (движение от начала к концу).
Используя уравнения состояний, восстанавливаем безусловное оптимальное управление:
ξ0* = 0 →u1*(0) = uc →ξ1* =1 →u2* (1) = uc →ξ2* = 2.
Как видно из таблицы, для состояния ξ2* = 2 условное оптимальное управление имеет два значения: uc и u з.
Сначала рассмотрим случай u3*(2) = uз :
u3*(2) = uз →ξ3* =1 →u4* (1) = uc →ξ4* = 2 →u5*(2)= uc →ξ5* = 3.
Получено оптимальное управление (u')* = (uc ,uc ,u з,uc ,uc ) .
В случае u3*(2) = uc состояние ξ3* = 3. Этому состоянию также соответствуют два значения условного оптимального управления.
Рассмотрим оба случая:
u4* (3) = uc →ξ4* = 4 →u5*(4) = uc →ξ5* = 5,
получено оптимальное управление (u'')* = (uc ,uc ,uc ,uc ,uc ) ;
u4* (3) = uз →ξ4* =1 →u5*(1) = uc →ξ5* = 2 ,
получено оптимальное управление (u''')* = (uc ,uc ,uc ,u з,uc ) .
В результате восстановление оптимальных управлений дает три оптимальных варианта эксплуатации оборудования в течение 5 лет:
(u')* = (uc ,uc ,u з,uc ,uc ), (u'')* = (uc ,uc ,uc ,uc ,uc ) , (u''')* = (uc ,uc ,uc ,u з,uc ) .
93
