Использование метода динамического программирования для решения экономических задач

Курсовая работа

ВВЕДЕНИЕ

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

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

Цель работы:

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

2) Применить метод динамического программирования к решению экономических задач.

К задачам, для решения которых естественным является применение метода динамического программирования, следует отнести задачи выбора кратчайшего пути, планирования производственной программы, оптимального распределения средств на расширение производства

1. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ, 1.1 Многошаговые процессы в динамических задачах

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

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

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

12 стр., 5788 слов

Решение задач: По математике, экономике, статистике, программированию макроэкономика. контрольная работа с решением

... Контрольная выполнена на сайте МатБюро https:// / ©МатБюро - Решение задач по математике, экономике, статистике, программированию безопасным средством резервирования свободных денежных средств, но и ценным сырьевым товаром для ряда производственных предприятий ... Контрольная выполнена на сайте МатБюро https:// / ©МатБюро - Решение задач по математике, экономике, статистике, программированию ...

Процесс решения такой задачи является многошаговым. Шагом управления (планирования) здесь будет хозяйственный год. Управление процессом состоит в распределении (перераспределении) средств в начале каждого хозяйственного года.

1.2 Принцип оптимальности и рекуррентные соотношения

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

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

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

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

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

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

f
n —

l
(Sl
) = (Rl
+ 1
(Sl
, Ul + 1
) + fn — (l + 1)
(Sl + 1
)) (1.1)

(l =)

где — оптимальное значение эффекта, достигаемого за n — l шагов; n количество шагов (этапов); S
l

= (sl
(1)
;…;sl
(
m
)
) — состояние системы на l -м шаге; Ul
= (ul
(1)
;…;ul
(
m
)
) — решение (управление), выбранное на l-м шаге; Rl
— непосредственный эффект, достигаемый на l-м шаге.

3 стр., 1458 слов

Решение задач: Задачи на издержки производства с решением по экономике

... издержки (TC), средние издержки (АТС), средние переменные (АVC) и средние постоянные издержки (АFC). Ср. перем. издерж. Определите для фирмы оптимальный объем производства ... Определить уровень безработицы в стране по методике Международной организации труда ... государственный бюджет с дефицитом или с излишком и ... = 3193 Задание: определите величину спроса на деньги для сделок. Для расчета воспользуемся ...

Optimum в выражении (1.1) означает максимум или минимум в зависимости от условия задачи.

Все вычисления, дающие возможность найти оптимальное значение эффекта, достигаемого за п шагов, f
n

(S0
), проводятся по формуле (1.1), которая носит название основного функционального уравнения Беллмана или рекуррентного соотношения. Действительно, при вычислении очередного значения функции fn
l
используются значение функции fn
(
l
+1)
, полученного на предыдущем шаге, и непосредственное значение эффекта Rl
+1
(Sl
, Ul
+1
), достигаемого в результате выбора решения Ul
+1
при заданном состоянии системы Sl
. Процесс вычисления значений функции fn
l
осуществляется при естественном начальном условии f0
(Sn
)= 0, которое означает, что за пределами конечного состояния системы эффект равен нулю.

1.3 Вычислительная схема

Оптимальное решение задачи методом динамического программирования находится на основе функционального уравнения (1.1).

Чтобы определить его, необходимо:

1. записать функциональное уравнение для последнего состояния процесса (ему соответствует l = n — 1):

f
1

(Sn
1
) = (Rn
(Sn
1
, Un
) + f0
(Sn
));

2. найти R
n

(Sn
1
, Un
) из дискретного набора его значений при некоторых фиксированных Sn
1
и Un
из соответствующих допустимых областей (так как

3.

f
0

(Sn
) = 0, то f1
(Sn
1
) = Rn
(Sn
1
, Un
))

В результате после первого шага известно решение U
n

и соответствующее значение функции f1
(Sn
1
);

4. уменьшить значение l на единицу и записать соответствующее функциональное уравнение. При l = n — k (k = ) оно имеет вид

f
k

(Sn
k
) = (Rn
k
+1
(Sn
k
, Un
k
+1
) + fk
1
(Sn
k
+1
)); (1.2)

25 стр., 12296 слов

Курсовая работа: Имитационное моделирование. Применение имитационных моделей в управлении запасами

... при решении задач имитационного моделирования в управлении запасами. Для достижения цели необходимо было решить следующие задачи: Применение имитационных моделей дает множество ... управление проектами; экономика здравоохранения; экосистемы. 1.2 Виды имитационного моделирования Агентное моделирование — относительно новое (1990е-2000е гг.) направление в имитационном моделировании, которое используется ...

5. найти условно-оптимальное решение на основе выражения (1.2);

6. проверить, чему равно значение l. Если l = 0, расчет условно-оптимальных решений закончен, при этом найдено оптимальное решение задачи для первого состояния процесса. Если l 0, перейти к выполнению пункта 3;

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

1.4 Планирование производственной программы

Предприятие изготавливает машины, спрос на которые в каждом из месяцев равен D
t

(t = ) единиц. Запас машин на складе предприятия на начало планируемого периода i0
единиц. Пусть общие затраты ct
(xt
, it
) состоят из затрат c(xt
) на производство машин и затрат sub>t на их содержание до отправки потребителю, т.е.

c
t

(xt
, it
) = c(xt
) + sub>t

В свою очередь затраты c(x
t

) на производство машин складываются из условно-постоянных k и пропорциональных sub>t (l единиц на каждую единицу продукции).

Таким образом, для любого месяц

c(x
t

) = k + sub>t .

Затраты на хранение единицы продукции равны h, поэтому затраты на содержание запасов численно равны уровню запасов на конец месяца, умноженному на h. Складские площади предприятия ограничены, и хранить можно не более M единиц продукции. Производственные мощности также ограничены, и в каждом месяце можно изготовить не более B единиц продукции. Требуется определить производственную программу изготовления машин x
t

, удовлетворяющую спрос в каждом из месяцев планируемого периода Dt
(t = ) и обеспечивающую минимальные затраты на производство продукции и содержание запасов. Запас продукции на складе в конце планируемого периода должен быть равен нулю.

Для решения задачи методом динамического программирования и записи рекуррентного соотношения будем использовать следующие обозначения: n (n = ) — номер планируемого отрезка времени (соответствует обратной нумерации месяцев); j — уровень запаса на конец отрезка; d
n

— спрос на продукцию на n-м отрезке (d1
= DT
, d2
= DT
, …, dn
= D1
); cn
(x, j) — затраты, связанные с выпуском х единиц продукции на n-м отрезке и с содержанием запасов, объем которых на конец n-го отрезка равен j единиц; fn
(i) — значение функции, равное затратам на производство и хранение продукции за n последних месяцев при условии, что уровень запасов на начало n-го месяца составляет i единиц; xn
(i) — производство продукции на n-м отрезке, если уровень запасов на начало отрезка равен i единиц.

9 стр., 4085 слов

Решение задач: Прикладные задачи по математике (с экономическим содержанием)

... в готовую продукцию. Все мы знаем, как дети интересуются, что из чего делают? Решение таких задач проходит с большим оживлением. Задача ... школам-интернатам города и области, если в городе 6 интернатов, а в области – 8 школ-интернатов? Задача . Школа получила 10000 ... её словарный математический и экономический запас школьников. Актуальность экономической тематики в современных условиях очевидна. Дети на ...

Число шагов решения задачи совпадает с числом месяцев (количеством плановых отрезков времени п).

Так как уровень запасов на конец планового периода, должен равен нулю, то для п = 0

f
0

(0) = 0 (1.3)

Перейдем к рассмотрению первого отрезка (n = 1).

Запас i
1

на начало этого отрезка неизвестен. Однако ясно, что он может быть равен любому неотрицательному целому числу, не превышающему вместимости склада и спроса в рассматриваемом отрезке, т.е. не должен превышать min(d1
, M).

Для полного удовлетворения спроса на последнем отрезке объем должен быть равен d1
— i1
. Следовательно,

f
1

(i) = c1
(x1
, j1
) = c1
(d1
— i, j1
) = c1
(d1
— i, 0), (1.4)

где i = 0, 1, …, min(d
1

, M).

Перейдем ко второму шагу (n = 2).

Уровень запасов на начало второго отрезка равен i. При этом величина i может принимать любые неотрицательные целочисленные значения, не превышающие min(d
1

+ d2
, M).

Целочисленные значения х (обьем выпуска) во втором отрезке при заданном i должен быть не меньше, чем d2
— i (спрос на данном отрезке должен быть удовлетворен), но не больше min(d1
+ d2
— i, B), так как запас на конец планового периода равен нулю и производство продукции в любом отрезке не превышает В. Минимальные суммарные затраты на производство и хранение продукции за два последних месяца

f
2

(i) = min(c2
(x, i + x — d2
) + f1
(i + x — d2
)), (1.5)

где i = 0, l, …, min (d
1

+ d2
, M);

d
2

— i x min (d1
+ d2
— i, B).

Аналогично можно записать рекуррентное соотношение для n = 3. Общее рекуррентное соотношение имеет вид

f
n

(i) = min (cn
(x, i + x — dn
) + fn
1
(i + x — dn
)) (n = ) (1.6)

где i = 0, 1, …, min (d
1

+ d2
+ … + dn
, M);

d
n

— i x min (d1
+ d2
+ … + dn
— i, B).

В выражении (1.6) величина i + x — d
n

= jn
характеризует уровень запасов на конец отрезка п.

Заметим, что, поскольку уровень запасов i на начало каждого месяца (за исключением первого) неизвестен, необходимо учесть все возможные его значения и произвести поочередно вычисления: f
1

(i), i = 0, 1, …, min(d1
, M), f2
(i), i = 0, l, …, min (d1
+ d2
, M), …, fn
— 1
(i), i = 0, 1, …, min (d1
+ d2
+ +… + dn
, M), fn
(i0
), i0
— известная величина.

На основании полученных расчетов находится объем выпуска продукции в каждом месяце, соответствующий оптимальному решению задачи. Для первого месяца планового периода он равен x
N

(i0
) и позволяет достичь fN
(i0
).

Уровень запасов на начало второго месяца iN
— 1
= i0
+ xN
(i0
) — dN
, а объем выпуска во втором месяце xN
— 1
(iN
— 1
).

Рассматривая таким образом плановые отрезки до конца планового периода, находим объем выпуска в каждом из месяцев.

1.5 Оптимальное распределение средств на расширение производство

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

Рассмотрим простейший пример задачи такого рода.

Группе предприятий выделяются дополнительные средства на реконструкцию и модернизацию производства. По каждому из п предприятий известен возможный прирост g
i

(x) (i = ) выпуска продукции в зависимости от выделенной суммы х. Требуется так распределить между предприятиями средства с, чтобы общий прирост fn
(c) выпуска продукции был максимальным.

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

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

f
1

(x) = max (g1
(x)) = g1
(x).

(1.7)

Пусть теперь n = 2, т.е. средства распределяются между двумя предприятиями. Если второму предприятию выделена сумма х, то прирост продукции на нем составит g
2

(x).

Оставшиеся другому предприятию средства (c — x) в зависимости от величины х (а значит, и c — x) позволят увеличить прирост выпуска продукции до максимально возможного значения f1
(c — x).

При этом условии общий прирост выпуска продукции на двух предприятиях

g
2

(x) + f1
(c — x) (1.8)

Оптимальному значению f
2

(с) прироста продукции при распределении суммы c между двумя предприятиями соответствует такое х, при котором сумма (1.8) максимальна. Это можно выразить записью

f
2

(с) = (g2
(x) + f1
(c — x))

Значение f
3

(с) можно вычислить, если известны значении f2
(с), и т.д.

Функциональное уравнение Беллмана для рассматриваемой задачи запишется в следующем виде:

f
n

(с) = (gn
(x) + fn
— 1
(c — x)) (1.9)

Итак, максимальный прирост выпуска продукции на n предприятиях определяется как максимум суммы прироста выпуска на n-м предприятии и прироста выпуска на остальных n — 1 предприятиях при условии, что оставшиеся после n-го предприятия средства распределяются между остальными предприятиями оптимально.

Имея функциональные уравнения (1.7) и (1.9), мы можем последовательно найти сначала f
1

, затем f2
, f3
, … и, наконец, fn
— 1
и fn
для различных значений распределяемой суммы средств.

Для отыскания оптимального распределения средств, прежде всего, находим величину x
n

*(c) ассигнований n-му предприятию, которая позволяет достичь полученного нами максимального значения fn
прироста продукции. По величине оставшихся средств c — xn
*(c) и уже известному нам значению fn
— 1
устанавливаем xn
— 1
*(c) — величину ассигнований (n — 1)-му предприятию и т.д. и, наконец, находим x2
*(c), x1
*(c).

2. РЕШЕНИЕ ЭКОНОМИЧЕСКИХ ЗАДАЧ МЕТОДОМ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ, 2.1 Задачи выбора кратчайшего пути

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

Пример 1

Найти путь минимальной длины между начальной и конечной вершинами сети методом динамического программирования (цифры, приписанные дугам сети, означают расстояния между соответствующими вершинами) для рис. 2.1.

Рис 2.1

Решение: разобьем все множество вершин на подмножества. В первое подмножество включим исходную вершину 1, во второе — вершины, в которые входят дуги, выходящие из вершины 1, в третье — вершины, в которые входят дуги, выходящие из вершин второго подмножества. Таким образом, продолжая разбиение, получаем пять подмножеств: {1}, {2, 3}, {4, 5}, {6, 7, 8}, {9}. Очевидно, что любой маршрут из вершины 1 в вершину 9 содержит ровно четыре дуги, каждая из которых связывает вершины, принадлежащие соответствующим подмножествам. Следовательно, процесс решения задачи (нахождения оптимального маршрута) разбивается на четыре этапа. На первом этапе принимается решение, через какую вершину, принадлежащую второму подмножеству, начать путь из вершины 1. На втором этапе необходимо определить, через какую вершину, принадлежащую третьему подмножеству, начать путь из некоторой вершины, и т. д.

Пронумеруем этапы от конечной вершины сети к начальной (см. рис. 2.1) и введем обозначения: п — номер шага (n = 1, 2, 3, 4); f
n

(s) — минимальные затраты прохождения пути от вершины s до конечной вершины, если до конечной вершины осталось n шагов; jn
(s) — номер вершины, через которую нужно продолжить путь из вершины s, чтобы достичь fn
(s); c — стоимость прохождения пути из вершины s в вершину j. Здесь все обозначения несут важную смысловую нагрузку: f означает целевую функцию, s — состояние системы (номер вершины), индекс n несет динамическую информацию о том, что из вершины s до конечной вершины осталось п шагов.


Предположим, что путь пройден, следовательно, число оставшихся шагов равно нулю (n = 0) и f n
(s) = f0
(9) = 0, так как вершина 9 конечная.

Рассмотрим последний шаг (n = 1) и вычислим для него значение функции. Очевидно, что в вершину 9 можно попасть из вершин 8, 7, 6. Вычислим затраты прохождения пути для этих трех состояний:

f
1

(6) = c6,9
+ f0
(9) = 5 + 0 = 5, s = 6, j1
(6) = 9;

f
1

(7) = c7,9
+ f0
(9) = 7 + 0 = 7, s = 7, j1
(7) = 9;

f
1

(8) = c8,9
+ f0
(9) = 8 + 0 = 8, s = 8, j1
(8) = 9;

Занесем данные для удобства в таблицу.

Таблица 2.1

J

s

9

f
1

(s)

j
1

(s)

6

5 + 0

5

9

7

7 + 0

7

9

8

8 + 0

8

9

Произведем расчет для n = 2. Из вершины 4 в вершину 9 можно попасть через вершину 6, или через вершину 7, или через 8. Поэтому оптимальный маршрут из вершины 4 найдется из выражения

f
2

(4) = min(c4,6
+ f1
(6); c4,7
+ f1
(7); c4,8
+ f1
(8)) = min(14; 13; 16) =

Здесь s = 6 и j
2

(4) = 7, т. е. условно-оптимальный маршрут проходит через вершину 7.

Аналогично находим значения функции для s =

f
2

(5) = min(c5,6
+ f1
(6); c5,7
+ f1
(7); c5,8
+ f1
(8)) = min(11; 10; 12) = 10, j2
(5) = 7;

Занесем данные для удобства в таблицу.

Таблица 2.2

J

s

6

7

8

f
2

(s)

j
2

(s)

4

9 + 5

6 + 7

8 + 8

7

5

6 + 5

3 + 7

4 + 8

7

Цифры в столбцах таблиц, находящиеся слева от двойной вертикальной черты, представляют собой сумму стоимости c
/sub> прохождения пути из вершины s в вершину j и стоимости fn
— 1
(j) прохождения пути из вершины j в вершину 9. В каждой строке выбирается наименьшая из этих сумм. Этим определяются условно-оптимальные затраты прохождения пути из вершины s в конечную вершину. Затраты (значение функции) обозначены fn
(s) и записаны в первом столбце справа от вертикальной черты, а вершина, через которую проходит условно-оптимальный маршрут, обозначен jn
(s).

Аналогично вычислим значения функции для третьего шага (n = 3):

f
3

(2) = min(c2,4
+ f2
(4); c2,5
+ f2
(5)) = min(20; 14) = 14, s = 2, j3
(2) = 5;

f
3

(3) = min(c3,4
+ f2
(4); c3,5
+ f2
(5)) = min(17; 16) = 16, s = 3, j3
(3) = 5.

Занесем данные в таблицу.

Таблица 2.3

j

s

4

5

f
3

(s)

j
3

(s)

2

7 +

4 +

5

3

4 +

6 +

5

Вычисления для четвертого шага (п = 4).

f
4

(1) = min(c1,2
+ f3
(2); c1,3
+ f3
(3)) = min(16; 19) = 16, s = 1, j4
(1) = 2.

Таблица 2.4

j

s

2

3

f
4

(s)

j
4

(s)

1

2 +

3 +

2

Очевидно, что минимальные затраты f
4

(1) = и оптимальный маршрут проходит через вторую вершину, так как j4
(1) = 2. Далее из таблицы 2.3 при s = 2 следует, что оптимальный маршрут проходит через вершину 5, так как j3
(2) = 5. Продолжая рассмотрение таблиц, для п = 2 определяем, что оптимальный маршрут проходит через вершину 7 (j2
(5) = 7).

Наконец, из вершины 7 попадаем в конечную вершину 9.

Таким образом, двигаясь от последней таблицы к первой, определяем оптимальный маршрут = (1 — 2 — 5 — 7 — 9), затраты прохождения пути составляют f
4

(1) = 2 + 4 + 3 + + 7 = 16.

Пример 2

Найти путь минимальной длины между начальной и конечной вершинами сети методом динамического программирования (цифры, приписанные дугам сети, означают расстояния между соответствующими вершинами) для рис. 2.2.

Рис. 2.2

Решение: разобьем все множество вершин на подмножества. В первое подмножество включим исходную вершину 1, во второе — вершины, в которые входят дуги, выходящие из вершины 1, в третье — вершины, в которые входят дуги, выходящие из вершин второго подмножества. Таким образом, продолжая разбиение, получаем пять подмножеств: {1}, {2, 3}, {4, 5, 6}, {7, 8, 9}, {10}. Очевидно, что любой маршрут из вершины 1 в вершину содержит ровно четыре дуги, каждая из которых связывает вершины, принадлежащие соответствующим подмножествам. Следовательно, процесс решения задачи (нахождения оптимального маршрута) разбивается на четыре этапа. На первом этапе принимается решение, через какую вершину, принадлежащую второму подмножеству, начать путь из вершины 1. На втором этапе необходимо определить, через какую вершину, принадлежащую третьему подмножеству, начать путь из некоторой вершины, и т. д.

Пронумеруем этапы от конечной вершины сети к начальной (см. рис. 2.2) и введем обозначения: п — номер шага (n = 1, 2, 3, 4); f
n

(s) — минимальные затраты прохождения пути от вершины s до конечной вершины, если до конечной вершины осталось n шагов; jn
(s) — номер вершины, через которую нужно продолжить путь из вершины s, чтобы достичь fn
(s); c — стоимость прохождения пути из вершины s в вершину j. Здесь все обозначения несут важную смысловую нагрузку: f означает целевую функцию, s — состояние системы (номер вершины), индекс n несет динамическую информацию о том, что из вершины s до конечной вершины осталось п шагов.


Предположим, что путь пройден, следовательно, число оставшихся шагов равно нулю (n = 0) и f n
(s) = f0
(10) = 0, так как вершина конечная.

Рассмотрим последний шаг (n = 1) и вычислим для него значение функции. Очевидно, что в вершину можно попасть из вершин 7, 8, 9. Вычислим затраты прохождения пути для этих трех состояний:

f
1

(7) = c7
,
+ f0
(10) = 7 + 0 = 7, s = 7, j1
(7) = 10;

f
1

(8) = c8,10
+ f0
(10) = 7 + 0 = 7, s = 8, j1
(8) = 10;

f
1

(9) = c9
,
+ f0
(10) = 8 + 0 = 8, s = 9, j1
(9) = 10;

Занесем данные для удобства в таблицу.

Таблица 2.5

j

s

f
1

(s)

j
1

(s)

7

7 + 0

7

8

7 + 0

7

9

8 + 0

8

Произведем расчет для n = 2. Из вершины 4 в вершину можно попасть через вершину 7, или через вершину 8, или через 9. Поэтому оптимальный маршрут из вершины 4 найдется из выражения

f
2

(4) = min(c4,7
+ f1
(7); c4,8
+ f1
(8); c4,9
+ f1
(9)) = min(10; 12; 14) =

Здесь s = 4 и j
2

(4) = 7, т. е. условно-оптимальный маршрут проходит через вершину 7.

Аналогично находим значения функции для s = 5 и s =

f
2

(5) = c5,
7
+ f1
(7) = 13, j2
(5) = 7;

f
2

(6) = c6,9
+ f1
(9) = 16, j2
(6) = 9;

Занесем данные для удобства в таблицу.

Таблица 2.6

J

s

7

8

9

f
2

(s)

j
2

(s)

4

3 + 7

5 + 7

6 + 8

7

5

6 + 7

7

6

8 + 8

9

Здесь четыре клетки зачеркнуты, поскольку из вершины 6 нельзя попасть в вершины 7 и 8, а из вершины 5 — в вершины 8 и 9.

Цифры в столбцах таблиц, находящиеся слева от двойной вертикальной черты, представляют собой сумму стоимости c
/sub> прохождения пути из вершины s в вершину j и стоимости fn
— 1
(j) прохождения пути из вершины j в вершину 9. В каждой строке выбирается наименьшая из этих сумм. Этим определяются условно-оптимальные затраты прохождения пути из вершины s в конечную вершину. Затраты (значение функции) обозначены fn
(s) и записаны в первом столбце справа от вертикальной черты, а вершина, через которую проходит условно-оптимальный маршрут, обозначен jn
(s).

Аналогично вычислим значения функции для третьего шага (n = 3):

f
3

(2) = min(c2,4
+ f2
(4); c2,5
+ f2
(5)) = min(20; 16) = 16, s = 2, j3
(2) = 4;

f
3

(3) = min(c3,4
+ f2
(4); c3
,6
+ f2
(6)) = min(18; 25) = 18, s = 3, j3
(3) = 4.

Занесем данные в таблицу.

Таблица 2.7

j

s

4

5

6

f
3

(s)

j
3

(s)

2

6 +

7 +

4

3

8 +

9 +

4

Вычисления для четвертого шага (п = 4).

f
4

(1) = min(c1,2
+ f3
(2); c1,3
+ f3
(3)) = min(19; 20) = 19, s = 1, j4
(1) = 2.

Таблица 2.8

j

s

2

3

f
4

(s)

j
4

(s)

1

3 +

2 +

2

Очевидно, что минимальные затраты f
4

(1) = и оптимальный маршрут проходит через вторую вершину, так как j4
(1) = 2. Далее из таблицы 2.7 при s = 2 следует, что оптимальный маршрут проходит через вершину 4, так как j3
(2) = 4. Продолжая рассмотрение таблиц, для п = 2 определяем, что оптимальный маршрут проходит через вершину 7 (j2
(4) = 7).

Наконец, из вершины 7 попадаем в конечную вершину 10. Таким образом, двигаясь от последней таблицы к первой, определяем оптимальный маршрут = (1 — 2 — 4 — 7 — 10), затраты прохождения пути составляют f4
(1) = 3 + 6 + 3 + + 7 = 19.

2.2 Задачи планирования производственной программы

В задачах планирования производственной программы естественное деление на шаги, т. е. число шагов совпадает с числом месяцев (количеством плановых отрезков времени п).

Пример 1

Определить оптимальную производственную программу изготовления машин x
t

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

с(0) = 0, с(1) = 13, с(2) = 15, с(3) = 17, с(4) = 19, с(5) = 21, с(6) =

Плановый период состоит из четырех месяцев

(t = ).

D
1

= 3, D2
= 4, D3
= 4, D4
= 2, i0
= 2, h = 2, B = 6, M = 4

Решение.

Рассмотрим n = 0 (отрезок за пределом планового периода).

В соответствии с формулой (1.3) уровень запасов на конец планового периода равен нулю:

f
0

(0) = 0.

D
1

= d4
= 3, D2
= d3
= 4, D3
= d2
= 4, D4
= d1
= 2.

Для п = 1 (см. формулу (1.4)):

x
1

(i) = d1
— i;

f
1

(i) = c1
(x1
, j1
) = c1
(d1
— i, 0) = c1
(2 — i);

i =

Расчет всех значений f
1

(i) выполним в таблице 2.9, где f1
(i) = c1
(2 — i).

Таблица 2.9

i

x
1

(i)

f
1

(i)

0

2

1

1

2

0

0

Для второго отрезка (n = 2) значения функции f
2

(i) вычисляются по формуле (1.5):

f
2

(i) = min(c2
(x) + h(i + x — d2
) + f1
(i + x — d2
)),

где i = , 4 — i x 6 — i.

В таблице 2.10 приведены все возможные значения сумм c
2

(x) + h(i + x d2
) + f1
(i + x — d2
).

Здесь предусмотрено по одной строке для каждого возможного значения начального уровня запаса i, который не должен превышать min (d1
+ d2
, M), и по одному столбцу для возможных значений выпуска х. Поскольку спрос на продукцию в каждом месяце должен быть удовлетворен, а уровень запасов конец каждого отрезка не может превысить
4 ед., некоторые клетки в таблице зачеркнуты. Эти клетки соответствуют недопустимым сочетаниям значений i и х. Так, если i = 0, то спрос удается удовлетворить только при условии х 4. Если i = 4, то х 2, иначе запас на конец планового периода будет больше нуля. В каждой клетке таблицы слева от двойной черты записана сумма трех слагаемых. Первое слагаемое — значение c(x), второе слагаемое — затраты на содержание запасов, равные уровню запасов на конец отрезка, умноженному на h = 2. Так, например, при i = 3 и x = 1 уровень запасов на конец отрезка равен нулю, поэтому в соответствующей клетке второе слагаемое равно нулю. При i = 2 и x = 4 уровень запасов на конец отрезка равен 2, следовательно, в соответствующей клетке таблицы второе слагаемое равно 4. Наконец, третье слагаемое есть ранее вычисленное значение f1
(i + x — d2
) = f1
(i + x — 4),взятое из таблицы 2.9.

Таблица 2.10

x

i

0

1

2

3

4

5

6

x
2

(i)

f
2

(i)

0

19+0+15

21+2+13

23+4+0

6

1

17+0+15

19+2+13

21+4+0

5

2

15+0+15

17+2+13

19+4+0

4

3

13+0+15

15+2+13

17+4+0

3

4

0+0+15

13+2+13

15+4+0

2

Значение функции f
2

(i), записанное в правом крайнем столбце таблицы 2.10, представляет собой минимальную из всех сумм в клетках строки для каждого фиксированного i, а x2
(i) — соответствующий выпуск продукции. Например, при i = 0 оптимальный выпуск равен 6 ед., так как наименьшая сумма в этой строке (23 + 4 + 0) находится в столбце, соответствующем х = 6.

Для п = 3 рекуррентное соотношение имеет вид

f
3

(i) = min(c3
(x) + h(i + x — d3
) + f2
(i + x — d3
))

где i = , 4 — i x 6.

Расчет значений f
3

(i) приведен в таблице 2.11:

Таблица 2.11

x

i

0

1

2

3

4

5

6

x
3

(i)

f
3

(i)

0

19+0+27

21+2+25

23+4+23

4

1

17+0+27

19+2+25

21+4+23

23+6+21

3

2

15+27+0

17+2+25

19+4+23

21+6+21

23+8+19

2

3

13+0+27

15+2+25

17+4+23

19+6+21

21+8+19

1

4

0+0+27

13+2+25

15+4+23

17+6+21

19+8+19

0

Аналогично для п = 4 рекуррентное соотношение имеет вид

f
4

(i) = min(c4
(x) + h(i + x — d4
) + f3
(i + x — d4
)),

где i = i
0

= 2, d4
— i0
= 1 x 6 = min (d1
+ d2
+ d3
+ d4
— i, B).

Расчет значений f
4

(i) приведен в таблице 2.12. Таблица состоит из двух строк: заглавной и предназначенной для записи вычислений при начальном уровне запаса i0
= 2. Здесь можно сделать предположений о значениях i, так как запас на начало первого месяца планового периода известен.

Таблица 2.12

x

i

0

1

2

3

4

5

6

x
4

(i)

f
4

(i)

i
0

= 2

13+0+46

15+2+44

17+4+42

19+6+40

21+8+27

5

Минимальные затраты, связанные с производством и хранением продукции за четыре месяца, f
4

(i) = 56.

При x
4

= 5 уровень запасов на начало второго месяца (конец первого) равен i3
= i0
+ x4
— d4
= 2 + 5 — 3 = 4. Рассматривая строку таблицы 2.11, соответствующую i3
= 4, видим, что x3
= 0. Поскольку запас продукции на начало третьего месяца равен нулю (i2
= i3
+ x3
— d3
= 4 + 0 — 4 = 0), из
таблицы 2.10 находим x2
= 6. Аналогично i1
= i2
+ x2
— d2
= 0 + 6 — 4 = 2, из
таблицы 2.9 находим x1
= 0. Таким образом, чтобы достичь оптимальных затрат, равных единицам, требуется в первый месяц изготовить 5 машин, во второй — 0, в третий — 6 и в четвертый — 0.

Пример 2

Определить оптимальную производственную программу изготовления машин x
t

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

с(0) = 0, с(1) = 13, с(2) = 15, с(3) = 17, с(4) = 19, с(5) = 21, с(6) =

Плановый период состоит из четырех месяцев

(t = ).

D
1

= 3, D2
= 3, D3
= 2, D4
= 4, i0
= 1, h = 1, B = 5, M = 4

Решение.

Рассмотрим n = 0 (отрезок за пределом планового периода).

В соответствии с формулой (1.3) уровень запасов на конец планового периода равен нулю: f
0

(0) = 0.

D
1

= d4
= 3, D2
= d3
= 3, D3
= d2
= 2, D4
= d1
= 4.

Для п = 1 (см. формулу (1.4)):

x
1

(i) = d1
— i;

f
1

(i) = c1
(x1
, j1
) = c1
(d1
— i, 0) = c1
(4 — i);

i =

Расчет всех значений f
1

(i) выполним в таблице 2.13, где f1
(i) = c1
(2 — i).

Таблица 2.13

i

x
1

(i)

f
1

(i)

0

4

1

3

2

2

3

1

4

0

0

Для второго отрезка (n = 2) значения функции f
2

(i) вычисляются по формуле (1.5):

f
2

(i) = min(c2
(x) + h(i + x — d2
) + f1
(i + x — d2
))

где i = , 2 — i x 5.

Таблица 2.14

x

i

0

1

2

3

4

5

x
2

(i)

f
2

(i)

0

15+0+19

17+1+17

19+2+15

21+3+13

2

1

13+0+19

15+1+17

17+2+15

19+3+13

21+4+0

5

2

0+0+19

13+1+17

15+2+15

17+3+13

19+4+0

0

3

0+1+17

13+2+15

15+3+13

17+4+0

0

4

0+2+15

13+3+13

15+4+0

0

В таблице 2.10 приведены все возможные значения сумм c
2

(x) + h(i + x d2
) + f1
(i + x — d2
).

Здесь предусмотрено по одной строке для каждого возможного значения начального уровня запаса i, который не должен превышать min (d1
+ d2
, M), и по одному столбцу для возможных значений выпуска х. Поскольку спрос на продукцию в каждом месяце должен быть удовлетворен, а уровень запасов конец каждого отрезка не может превысить 4 ед., некоторые клетки в таблице зачеркнуты. Эти клетки соответствуют недопустимым сочетаниям значений i и х. Так, если i = 0, то спрос удается удовлетворить только при условии х 4. Если i = 4, то х 2, иначе запас на конец планового периода будет больше нуля. В каждой клетке таблицы слева от двойной черты записана сумма трех слагаемых. Первое слагаемое — значение c(x), второе слагаемое — затраты на содержание запасов, равные уровню запасов на конец отрезка, умноженному на h = 2. Так, например, при i = 2 и x = 4 уровень запасов на конец отрезка равен 2, следовательно, в соответствующей клетке таблицы второе слагаемое равно 4. Наконец, третье слагаемое есть ранее вычисленное значение f1
(i + x — d2
) = f1
(i + x — 4),взятое из таблицы 2.9.

Значение функции f
2

(i), записанное в правом крайнем столбце таблицы 2.10, представляет собой минимальную из всех сумм в клетках строки для каждого фиксированного i, а x2
(i) — соответствующий выпуск продукции. Например, при i = 0 оптимальный выпуск равен 6 ед., так как наименьшая сумма в этой строке (23 + 4 + 0) находится в столбце, соответствующем х = 6.

Для п = 3 рекуррентное соотношение имеет вид

f
3

(i) = min(c3
(x) + h(i + x — d3
) + f2
(i + x — d3
)),

где i = , 3 — i x 5.

Расчет значений f
3

(i) приведен в таблице 2.15:

Таблица 2.15

x

i

0

1

2

3

4

5

x
3

(i)

f
3

(i)

0

17+0+34

19+1+25

21+2+19

5

1

15+0+34

17+1+25

19+2+19

21+3+18

4

2

13+034

15+1+25

17+2+19

19+3+18

21+4+17

3

3

0+0+34

13+1+25

15+2+19

17+3+18

19+4+17

0

4

0+1+25

13+2+19

15+3+18

17+4+17

0

Аналогично для п = 4 рекуррентное соотношение имеет вид

f
4

(i) = min(c4
(x) + h(i + x — d4
) + f3
(i + x — d4
)),

где i = i
0

= 1, d4
— i0
= 2 x 5 = min (d1
+ d2
+ d3
+ d4
— i, B).

Расчет значений f
4

(i) приведен в таблице 2.16. Таблица состоит из двух строк: заглавной и предназначенной для записи вычислений при начальном уровне запаса i0
= 2. Здесь можно сделать предположений о значениях i, так как запас на начало первого месяца планового периода известен.

Таблица 2.16

x

i

0

1

2

3

4

5

x
4

(i)

f
4

(i)

i
0

= 1

15+0+42

17+1+40

19+2+38

21+3+34

2

Минимальные затраты, связанные с производством и хранением продукции за четыре месяца, f
4

(i) = 57.

При x
4

= 2 уровень запасов на начало второго месяца (конец первого) равен i3
= i0
+ x4
— d4
= 1 + 2 — 3 = 0. Рассматривая строку таблицы 2.15, соответствующую i3
= 0, видим, что x3
= 5. Поскольку запас продукции на начало третьего месяца равен нулю (i2
= i3
+ x3
— d3
= 0 + 5 — 3 = 2), из
таблицы 2.14 находим x2
= 0. Аналогично i1
= i2
+ x2
— d2
= 2 + 0 — 2 = 0, из
таблицы 2.13 находим x1
= 4. Таким образом, чтобы достичь оптимальных затрат, равных единицам, требуется в первый месяц изготовить 2 машины, во второй — 5, в третий — 0 и в четвертый — 4.

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

В задачах оптимального распределения средств на расширение производства естественное деление на шаги, т. е. число шагов совпадает с числом предприятий.

Пример 1

Производственному объединению из четырех предприятий выделяется банковский кредит в сумме млн. ден. ед. для реконструкции и модернизации производства с целью увеличения выпуска продукции. Значения g
i

(xi
) (i = ) дополнительного дохода, получаемого на предприятиях объединения в зависимости от выделенной суммы xi
, приведены в таблице 2.17. Распределить выделенный кредит между предприятиями так, чтобы дополнительный доход объединения был максимальным.

Таблица 2.17

Средства c, млн. ден. ед.

Предприятие

№ 1

№ 2

№ 3

№ 4

Получаемый доход, млн. ден. ед.

g
1

(xi
)

g
2

(xi
)

g
3

(xi
)

g
4

(xi
)

9

Решение.

Пусть п = 1. В соответствии с формулой (1.7) в зависимости от начальной суммы c получаем с учетом таблицей 2.17 значения f
1

(c), помещенные в таблицу 2.18.

Таблица 2.18

x
1

*(c)

f
1

(c)

9

Предположим теперь, что средства вкладываются в два предприятия. Тогда в соответствии с формулой (1.9)

f
2

(с) = (g2
(x) + f1
(c — x))

Очередная задача — найти значения функции f
2

(с) для всех допустимых комбинаций c и x. Для упрощения расчетов значения x будем принимать кратными тыс. ден. ед. и для большей наглядности записи оформлять в виде таблиц. Каждому шагу будет соответствовать своя таблица. Рассматриваемому шагу соответствует табл. 2.19.

Для каждого значения (20, 40, 60) начальной суммы c распределяемых средств в таблице 2.19 предусмотрена отдельная строка, а для каждого возможного значения x (0, 20, 40, 60) распределяемой суммы — столбец. Некоторые клетки таблицы останутся незаполненными, так как соответствуют недопустимым сочетаниям c и x. Такой, например, будет клетка, отвечающая строке c = и столбцу x = 40, ибо при наличии тыс. ден. ед. естественно отпадает вариант, при котором одному из предприятий выделяется тыс. ден. ед.

Таблица 2.19

x

c

0

f
2

(c)

x
2

*(c)

0 + 9

+ 0

0 +

+ 9

+ 0

0 +

+

+ 9

+ 0

В каждую клетку таблицы будем вписывать значение суммы g
2

(x) + f1
(c x).

Первое слагаемое берем из условий задачи (см. табл. 2.17), второе — из таблицы 2.18. Так, например, при распределении начальной суммы с = тыс. ден. ед. одним из вариантов может быть следующий: второму предприятию выделяется тыс. ден. ед. (х = 40), тогда первому — = тыс. ден. ед. При таком распределении первоначальной суммы на втором предприятий будет обеспечен прирост продукции на сумму в тыс. ден. ед. (см. табл. 2.17), на первом — 9 тыс. ден. ед. (см. табл. 2.18).

Общий прирост составит (19 + 9) тыс. ден. ед., что и записано в соответствующей клетке таблицы 2.19. В двух последних столбцах таблицы проставлены максимальный по строке прирост продукции (в столбце f
2

(c)) и соответствующая ему оптимальная сумма средств, выделенная второму предприятию (в столбце x2
*(c)).

Так, при начальной сумме с = тыс. ден. ед. максимальный прирост выпуска продукции составляет тыс. ден. ед. (11 + 9), и это достигается выделением второму предприятию 20, а первому — — = 0 тыс. ден. ед.

Расчет значений f
3

(c) приведен в таблице 2.20. Здесь использована формула, получающаяся из (1.9) при п = 3 :

f
3

(с) = (g3
(x) + f2
(c — x))

Первое слагаемое в таблице 2.20 взято из табл. 2.17, второе — из табл. 2.19.

Таблица 2.20

x

c

0

f
3

(c)

x
3

*(c)

0 +

+ 0

0 +

+

+ 0

0 +

+

+

+ 0

Аналогичным образом находятся значения f
4

(c).

Таблица 2.21

x

c

0

f
4

(c)

x
4

*(c)

0 +

+ 0

0

0 +

+

+ 0

0

0 +

+

+

+ 0

Полученные результаты можно сравнить с теми, которые приведены в сводной таблице (табл. 2.22, см. последние два столбца), составленной на основе расчетных таблиц, начиная с табл. 2.17.

Таблица 2.22

c

x
1

*(c)

f
1

(c)

x
2

*(c)

f
2

(c)

x
3

*(c)

f
3

(c)

x
4

*(c)

f
4

(c)

0

0

0

0

0

0

0

0

0

9

0

0

Табл. 2.22 содержит много ценной информации и позволяет единообразно решать целый ряд задач. Например, и табл. 2.22 видно, что наибольший дополнительный доход объединения из четырех предприятий может дать распределение между ними тыс. ден. ед. (с = 60), составляет тыс. ден. ед. (f
4

(60) = 45).

При этом четвертому предприятию должно быть выделено тыс. ден. ед. (x4
*(60) = 20), а остальным трем — — = тыс. ден. ед. Из той же таблицы видно, что оптимальное распределение оставшихся тыс. ден. ед. (с = 40) между тремя предприятиями обеспечит увеличения дополнительного дохода на сумму тыс. ден. ед. (f3
(40) = 32) при условии, что третьему предприятию будет выделено тыс. ден. ед. (x3
*(40) = 40), а остальным двум — = 0 тыс. ден. ед. Следовательно, на долю первого и второго средств не останется.

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

Пример 2

Производственному объединению из трех предприятий выделяется банковский кредит в сумме млн. ден. ед. для реконструкции и модернизации производства с целью увеличения выпуска продукции. Значения g
i

(xi
) (i = ) дополнительного дохода, получаемого на предприятиях объединения в зависимости от выделенной суммы xi
, приведены в таблице 2.23. Распределить выделенный кредит между предприятиями так, чтобы дополнительный доход объединения был максимальным.

Таблица 2.23

Средства c, млн. ден. ед.

Предприятие

№ 1

№ 2

№ 3

Получаемый доход, млн. ден. ед.

g
1

(xi
)

g
2

(xi
)

g
3

(xi
)

9

Решение.

Пусть п = 1. В соответствии с формулой (1.7) в зависимости от начальной суммы c получаем с учетом таблицей 2.23 значения f
1

(c), помещенные в таблицу 2.24.

Таблица 2.24

x
1

*(c)

f
1

(c)

9

Предположим теперь, что средства вкладываются в два предприятия. Тогда в соответствии с формулой (1.9)

f
2

(с) = (g2
(x) + f1
(c — x))

Очередная задача — найти значения функции f
2

(с) для всех допустимых комбинаций c и x. Для упрощения расчетов значения x будем принимать кратными тыс. ден. ед. и для большей наглядности записи оформлять в виде таблиц. Каждому шагу будет соответствовать своя таблица. Рассматриваемому шагу соответствует табл. 2.25.

Для каждого значения (20, 40, 60) начальной суммы c распределяемых средств в таблице 2.25 предусмотрена отдельная строка, а для каждого возможного значения x (0, 20, 40, 60) распределяемой суммы — столбец. Некоторые клетки таблицы останутся незаполненными, так как соответствуют недопустимым сочетаниям c и x. Такой, например, будет клетка, отвечающая строке c = и столбцу x = 40, ибо при наличии тыс. ден. ед. естественно отпадает вариант, при котором одному из предприятий выделяется тыс. ден. ед.

Таблица 2.25

x

c

0

f
2

(c)

x
2

*(c)

0 + 9

+ 0

0 +

+ 9

+ 0

0 +

+

+ 9

+ 0

В каждую клетку таблицы будем вписывать значение суммы g
2

(x) + f1
(c x).

Первое слагаемое берем из условий задачи (см. табл. 2.23), второе — из таблицы 2.24. Так, например, при распределении начальной суммы с = тыс. ден. ед. одним из вариантов может быть следующий: второму предприятию выделяется тыс. ден. ед. (х = 40), тогда первому — = тыс. ден. ед. При таком распределении первоначальной суммы на втором предприятий будет обеспечен прирост продукции на сумму в тыс. ден. ед. (см. табл. 2.23), на первом — 9 тыс. ден. ед. (см. табл. 2.24).

Общий прирост составит (34 + 9) тыс. ден. ед., что и записано в соответствующей клетке таблицы 2.25. В двух последних столбцах таблицы проставлены максимальный по строке прирост продукции (в столбце f
2

(c)) и соответствующая ему оптимальная сумма средств, выделенная второму предприятию (в столбце x2
*(c)).

Так, при начальной сумме с = тыс. ден. ед. максимальный прирост выпуска продукции составляет тыс. ден. ед. (11 + 0), и это достигается выделением второму предприятию 20, а первому — — = 0 тыс. ден. ед.

Расчет значений f
3

(c) приведен в таблице 2.26. Здесь использована формула, получающаяся из (1.9) при п =

f
3

(с) = (g3
(x) + f2
(c — x)).

Таблица 2.26

x

c

0

f
3

(c)

x
3

*(c)

0 +

+ 0

0 +

+

+ 0

0

0 +

+

+

+ 0

Полученные результаты можно сравнить с теми, которые приведены в сводной таблице (табл. 2.27, см. последние два столбца), составленной на основе расчетных таблиц, начиная с табл. 2.23.

Таблица 2.27

c

x
1

*(c)

f
1

(c)

x
2

*(c)

f
2

(c)

x
3

*(c)

f
3

(c)

0

0

0

0

0

0

0

9

0

Табл. 2.27 содержит много ценной информации и позволяет единообразно решать целый ряд задач. Например, и табл. 2.27 видно, что наибольший дополнительный доход объединения из трех предприятий может дать распределение между ними тыс. ден. ед. (с = 60), составляет тыс. ден. ед. (f
3

(60) = 47).

При этом третьему предприятию должно быть выделено
тыс. ден. ед. (x3
*(60) = 20), а остальным двум — — = тыс. ден. ед. Из той же таблицы видно, что оптимальное распределение оставшихся
тыс. ден. ед. (с = 40) между двумя предприятиями обеспечит увеличения дополнительного дохода на сумму тыс. ден. ед. (f2
(40) = 32) при условии, что второму предприятию будет выделено тыс. ден. ед. (x2
*(40) = 40), а на долю первого средств не останется (40 — = 0).

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

ЗАКЛЮЧЕНИЕ

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

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

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

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Кузнецов, А. В. Высшая математика. Математическое программирование А. В. Кузнецов, В. А. Сакович, Н.И. Холод. — Минск: Вышэйшая школа, 1994. — 237 с.

2. Габасов Р.Л. Методы оптимизации / Р. Л. Габанов, М.И Кирилова. — Минск: Наука, 1981. — 129 с.

3. Кузнецов А.В. Руководство к решению задач по математическому программированию / А. В. Кузнецов, Н.И. Холод, Л.С. Костевич. — Минск: Вышэйшая школа, 2001. — 240 с.

4. Карманов В.Г. Математическое программирование / В. Г. Карманов. — Минск: Наука, 1986. — с.