Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_указания_ЛР.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.25 Mб
Скачать

Приложение 1 Решение задачи вложения средств в фиксированное количество отраслей методом динамического программирования

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

m количество отраслей;

дискретное значение объемов вложений ;

величина прибыли ,создаваемая i-й отраслью, в зависимости от объема вложений .

Исходные данные удобно представить в виде таблице 5

Таблица 5 - Исходные данные для задачи вложения средств

Объем

вложений

Перечень отраслей

1

2

i

m

v1

q1(v1)

q2(v1)

qi(v1)

qm(v1)

v2

q1(v2)

q2(v2)

qi(v2)

qm(v2)

vj

q1(vj)

q2(vj)

qi(vj)

qm(vj)

vn

q1(vn)

q2(vn)

qi(vn)

qm(vn)

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

.

Рассматриваемая задача может быть решена методом прямого перебора с помощью формирования множества всех возможных вариантов распределения средств между отраслями, вычисления суммарной прибыли для каждого из вариантов распределения и выбора оптимального варианта, обеспечивающего максимизацию суммарной прибыли. В частности, для случая v1=0 множество вариантов распределения средств представляется в виде вектора , где Ui – объем вложений в i-ю отрасль, а на компоненты вектора решений накладывается следующее ограничение:

.

Тогда множество вариантов решений имеет следующий вид:

вариант 1 ;

вариант 2 ;

вариант 3 ;

вариант 4 ;

......................................................

вариант U0 .

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

Для рассматриваемой задачи:

этап – соответствует распределению средств для текущего количества отраслей. Номера этапов меняются от единицы до m: номер текущего этапа равен и предполагает распределение средств между 1, 2, 3, ..., i-й отраслями, а номер этапа, равный m, соответствует распределению средств между всеми m отраслями;

состояние – количество распределяемых средств vj;

управление Ui – количество средств, которые распределены на i-м этапе для инвестирования в отрасль с номером i;

оператор перехода – для состояния vj и выбранного управления Ui устанавливает количество оставшихся средств для вложения в 1, 2, 3, ..., i1-ю отрасли, т.е. ;

локальный доход, полученный на i-м этапе, – это прибыль, достигнутая в i-й отрасли при вложении в нее средств в объеме Ui, т.е. qi(Ui);

условный оптимальный доход Wi(vj) за i этапов для состояния vj – это доход, полученный от оптимального распределения имеющихся vj средств между i отраслями.

Тогда уравнение Беллмана имеет следующий вид:

,

где – условный оптимальный доход, полученный от вложения в первые по порядку i – 1 отраслей vj – Ui средств.

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

Этап 1. На этом этапе принятия решений все средства вкладываются только в первую отрасль, т.е. i=1, .

Реализация первого этапа может быть представлена в виде таблицы 6.

Этап 2. Средства в объеме vj распределяются между первой и второй отраслями, управление U2 – это количество средств, которое распределено для вложения во вторую отрасль, vj  U2 – количество оставшихся средств, направляемых для вложения в первую отрасль:

i=2, .

Тогда второму этапу будет соответствовать таблице 7.

Таблица 6 - Реализация первого этапа оптимального распределения средств

Состояние vj

Управление U1

Локальный доход q1(vj)

Условный оптимальный доход W1(vj)

v1

U1=v1

q1(v1)

W1=q1(v1)

v2

U1=v2

q1(v2)

W1=q1(v2)

vj

U1=vj

q1(vj)

W1=q1(vj)

vn

U1=vn

q1(vn)

W1=q1(vn)

Таблица 7 - Реализация второго этапа

Состояния vj

Управление U2, оператор перехода

Локальный доход q2(U2)

Суммарный доход за два этапа

Условный оптимальный доход W2(vj)

1

2

3

4

5

v1

Uv1,

v– U= 0

v2

v3

vj

vn

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

Определенную сложность представляет реализация процедуры формирования множества управлений. Предположим, что производится распределение средств в объеме vj, т.е. система находится в состоянии vj. Тогда управление U2 принимает следующие значения:

Этап 3. Производится распределение средств между тремя отраслями. Уравнение имеет следующий вид:

i=3, , .

Управлением U3 является вложение средств в третью отрасль, а остаток средств, равный vj  U3 направляется для инвестирования в первую и вторую отрасли. При решении уравнения учитывается, что значения были определены на предыдущем этапе. Для выполнения этого этапа конструируется таблица, форма которой совпадает с формой таблицы для этапа 2: первый столбец содержит перечень возможных вложений ; второй столбец включает для каждого значения vj допустимые значения вложения в третью отрасль U3: ; в третьем столбце указываются значения прибыли, получаемой от вложения средств в объеме U3, в третью отрасль – ; четвертый столбец содержит величины суммарного дохода, получаемого при распределении vj средств между первыми по порядку тремя отраслями, при условии, что в третью отрасль вложены средства в объеме U3; в последнем столбце фиксируются максимальные значения доходов для каждого из объемов вложений .

На последнем этапе i=m производится оптимальное распределение средств , между m отраслями. Управление Um представляет собой вложение средств в последнюю m-ю отрасль, а остаток средств в объеме направляется для вложения в первую, вторую, ... , i-ю, ... , m –1-ю отрасли.

Функциональное уравнение Беллмана для i=m имеет следующий вид:

.

В результате решения функционального уравнения получается набор значений:

.

Ввиду того, что общее количество распределяемых средств равно vn, то оптимальное вложение в m-ю отрасль определяется, как . Тогда сравнительно просто вычисляется оптимальный объем вложений в первые m –1 отраслей . Из этого объема определяется оптимальная величина вложений в m –1-ю отрасль: . Аналогично находится объем вложений в первые по порядку  2 отрасли: он равен .

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

Пример. Руководство корпорации решило провести реконструкцию четырех заводов. Общий объем инвестиций, равный 400 единиц, необходимо распределить между заводами так, чтобы добиться максимальной суммарной прибыли. Величина прибыли qi(vj), получаемой от инвестирования vj средств в i-й завод корпорации, задается таблицей 8.

Таблица 8 - Величина прибыли

Инвестиции, vj.

Заводы

1

2

3

4

0

0

0

0

0

100

40

50

30

60

200

50

70

55

75

300

65

85

70

95

400

75

95

95

110

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

Этап 1. Все средства инвестируются в завод 1. Уравнение Беллмана имеет следующий вид: W1(vj) = q1(vj). Для уменьшения громоздкости используется строчное представление результатов, а так же шрифтовое выделение наилучших вложений средств для каждого из состояний. Тогда W1(0)=0; W1(100)=40; W1(200)=50; W1(300)=65; W1(400)=75.

Этап 2. Производится распределение финансовых ресурсов между первым и вторым заводами. Управление U2 – это инвестирование средств во второй завод. Уравнение Беллмана имеет следующий вид: W2(vj) = max (q2(U2) + W1( vjU2)), 0 U2 vj;

W2(0) = max(q2(0) + W1(0)) = 0 + 0 = 0;

W2(100) = max(q2(100) + W1(0); q2(0) + W1(100)) = max(40 + 0; 0 + 50) = 50;

W2(200) = max(q2(200) + W1(0); q2(100) + W1(100); q2(0) + W1(200)) =

= max(70 + 0; 50 + 40; 0 + 50)= 90;

W2(300) = max(q2(300) + W1(0); q2(200) + W1(100); q2(100) + W1(200); q2(0) + W1(300)) =

max(85 + 0; 40 + 70; 50 + 50; 0 + 65) = max(85;110;100;65) = 110;

W2(400) = max(q2(400) + W1(0); q2(300) + W1(100); q2(200) + W1(200); q2(100) +

+ W1(300) q2(0) + W1(400)) = max(95 + 0; 85 + 40; 70 + 50; 50 + 65; 0 + 75) =

= max(95;125;120; 115;75) = 125;

Этап 3. Производится распределение финансовых ресурсов между первым, вторым и третьим заводами.

Управление U3 – это инвестирование средств в третий завод. Уравнение Беллмана имеет следующий вид: W3(vj) = max (q3(U3)+ W2( vjU3)), 0 U3 vj;

W3(0) = max(q3(0) + W2(0)) = 0;

W3(100) = max(q3(100) + W2(0); q3(0) + W2(100)) = max(30 + 0; 0 + 50) = 50;

W3(200) = max(q3(200) + W2(0); q3(100) + W2(100); q3(0) + W(200)) =

= max(0 + 90; 30 + 50; 55 + 0) = 90;

W3(300) = max(q3(300) + W2(0); q3(200) + W2(100); q3(100) + W2(200); q3(0) + W2(300))=

max(70 + 0; 55 + 50; 30 + 90; 0 + 110) = 120;

W3(400) = max(q3(400) + W2(0); q3(300) + W2(100); q3(200) + W2(200); q3(100) + W2(300);

q3(0) + W2(400)) = max(95 + 0; 70 + 50; 55 + 90; 30 + 110; 0 + 125) = 145.

Этап 4. Производится распределение финансовых ресурсов между всеми заводами. Управление U4это инвестирование средств в четвертый завод. Уравнение Беллмана имеет следующий вид: W4(vj) = max (q4(U4)+ W3( vjU4)), 0 U4 vj;

W4(0) = max(q4(0) + W3(0)) = 0;

W4(100) = max(q4(100) + W3(0); q4(0) + W3(100)) = max(0 + 50; 60 + 0) = 60;

W4(200) = max(q4(200) + W3(0); q4(100) + W3(100); q4(0) + W3(200)) =

= max(75 + 0; 60 + 50; 0 + 90) = 110;

W4(300) = max(q4(300) + W3(0); q4(200) + W3(100); q4(100) + W3(200); q4(0) + W3(300)) =

= max(95 + 0; 75 + 50; 90 + 60; 0 + 120) = 150;

W4(400) = max(q4(400) + W3(0); q4(300) + W3(100); q4(200) + W3(200); q4(100) + W3(300);

q4(0) + W3(400)) = max(110 + 0; 95 + 50; 75 + 90; 60 + 120; 0 + 145) = 180.

Решение задачи в обратном порядке позволяет найти оптимальное распределение средств: завод 4 – 100; завод 3 – 100; завод 2 – 100; завод 1 – 100. Суммарная прибыль составляет 180 единиц.