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

Автор: Кривошапова Г.А., Яркина А.А., Иценко М.Ю.

Журнал: Теория и практика современной науки @modern-j

Рубрика: Математика, информатика и инженерия

Статья в выпуске: 1 (55), 2020 года.

Бесплатный доступ

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

Оптимальное распределение, динамическое программирование, стратегия

Короткий адрес: https://sciup.org/140275024

IDR: 140275024   |   УДК: 004.94

Solution of problem of investments in innovative projects with the use of dynamic programming

The article describes the solution of problem of investment in innovative projects. For the solving the task, the dynamic programming method was used. The solution search was made with the use of online - calculator.

Текст научной статьи Решение задачи инвестирования инновационных проектов с помощью метода динамического программирования

Пусть имеются пять инвестиционных проектов, между которыми распределяется 300 тыс. ден. ед. Денежные средс тв а распределяются суммами кратными 50 тыс. ден. ед. Значения g i ( x )( i = 1,5) ожидаемой прибыли от реализации каждого из инвестиционных проектов в зависимости от выделенной суммы х приведены в таблице 1. Составить план распределения средств, максимизирующий общий прирост прибыли.

Для решения задачи был выбран онлайн-калькулятор «Задача оптимального распределения инвестиций» [1].

На рисунке 1 представлены исходные данные.

Рисунок 1 - Исходные данные

Представим поэтапное решение задачи оптимального распределения инвестиций.

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

I этап. Условная оптимизация.

1-ый шаг. k = 5.

Предположим, что все средства в количестве х5 = 300 отданы проекту №5. В этом случае, максимальный доход, как это видно из таблицы, составит f5(u5) = 99, следовательно, F5(e5) = f5(u5).

Таблица 1

e4

u5

e5 = e4 - u5

f5(u5)

F*5(e5)

u5(e5)

50

0

50

0

50

0

16

16

50

100

0

100

0

50

50

16

100

0

39

39

100

150

0

150

0

50

100

16

100

50

39

150

0

55

55

150

200

0

200

0

50

150

16

100

100

39

150

50

55

200

0

76

76

200

250

0

250

0

50

200

16

100

150

39

150

100

55

200

50

76

250

0

92

92

250

300

0

300

0

50

250

16

100

200

39

150

150

55

200

100

76

250

50

92

300

0

99

99

300

2-ый шаг. k = 4.

Определяем оптимальную стратегию при распределении денежных средств между проектами №4, 5. При этом рекуррентное соотношение

Беллмана имеет вид: F4(e4) = max(x4 ≤ e4)(f4(u4) + F5(e4-u4)).

Таблица 2

e3

u4

e4 = e3 - u4

f4(u4)

F*4(e3)

F3(u4,e3)

F*4(e4)

u4(e4)

50

0

50

0

16

16

50

0

20

0

20

20

50

100

0

100

0

39

39

50

50

20

16

36

100

0

44

0

44

44

100

150

0

150

0

55

55

50

100

20

39

59

100

50

44

16

60

150

0

64

0

64

64

150

200

0

200

0

76

76

50

150

20

55

75

100

100

44

39

83

83

100

150

50

64

16

80

200

0

82

0

82

250

0

250

0

92

92

50

200

20

76

96

100

150

44

55

99

150

100

64

39

103

200

50

82

16

98

250

0

110

0

110

110

250

300

0

300

0

99

99

50

250

20

92

112

100

200

44

76

120

150

150

64

55

119

200

100

82

39

121

250

50

110

16

126

126

250

300

0

119

0

119

3-ый шаг. k = 3.

Определяем оптимальную стратегию при распределении денежных средств между проектами №3, 4, 5. При этом рекуррентное соотношение

Беллмана имеет вид: F3(e3) = max(x3 ≤ e3)(f3(u3) + F4(e3-u3))

Таблица 3

e2

u3

e3 = e2 - u3

f3(u3)

F*3(e2)

F2(u3,e2)

F*3(e3)

u3(e3)

50

0

50

0

20

20

50

0

25

0

25

25

50

100

0

100

0

44

44

50

50

25

20

45

100

0

50

0

50

50

100

150

0

150

0

64

64

50

100

25

44

69

100

50

50

20

70

70

100

150

0

61

0

61

200

0

200

0

83

83

50

150

25

64

89

100

100

50

44

94

94

100

150

50

61

20

81

200

0

78

0

78

250

0

250

0

110

110

50

200

25

83

108

100

150

50

64

114

114

100

150

100

61

44

105

200

50

78

20

98

250

0

98

0

98

300

0

300

0

126

126

50

250

25

110

135

135

50

100

200

50

83

133

150

150

61

64

125

200

100

78

44

122

250

50

98

20

118

300

0

109

0

109

4-ый шаг. k = 2.

Определяем оптимальную стратегию при распределении денежных средств между проектами №2, 3, 4, 5. При этом рекуррентное соотношение

Беллмана имеет вид: F2(e2) = max(x2 ≤ e2)(f2(u2) + F3(e2-u2))

Таблица 4

e1

u2

e2 = e1 - u2

f2(u2)

F*2(e1)

F1(u2,e1)

F*2(e2)

u2(e2)

50

0

50

0

25

25

25

0

50

0

22

0

22

100

0

100

0

50

50

50

50

22

25

47

100

0

51

0

51

51

100

150

0

150

0

70

70

50

100

22

50

72

100

50

51

25

76

76

100

150

0

60

0

60

200

0

200

0

94

94

50

150

22

70

92

100

100

51

50

101

101

100

150

50

60

25

85

200

0

79

0

79

250

0

250

0

114

114

50

200

22

94

116

100

150

51

70

121

121

100

150

100

60

50

110

200

50

79

25

104

250

0

100

0

100

300

0

300

0

135

135

50

250

22

114

136

100

200

51

94

145

145

100

150

150

60

70

130

200

100

79

50

129

250

50

100

25

125

300

0

120

0

120

5-ый шаг. k = 1.

Определяем оптимальную стратегию при распределении денежных средств между проектами №1, 2, 3, 4, 5. При этом рекуррентное соотношение

Беллмана имеет вид: F1(e1) = max(x1 ≤ e1)(f1(u1) + F2(e1-u1))

Таблица 5

e0

u1

e1 = e0 - u1

f1(u1)

F*1(e0)

F0(u1,e0)

F*1(e1)

u1(e1)

50

0

50

0

25

25

25

0

50

0

18

0

18

100

0

100

0

51

51

51

0

50

50

18

25

43

100

0

43

0

43

150

0

150

0

76

76

76

0

50

100

18

51

69

100

50

43

25

68

150

0

57

0

57

200

0

200

0

101

101

101

0

50

150

18

76

94

100

100

43

51

94

150

50

57

25

82

200

0

78

0

78

250

0

250

0

121

121

121

0

50

200

18

101

119

100

150

43

76

119

150

100

57

51

108

200

50

78

25

103

250

0

97

0

97

300

0

300

0

145

145

145

0

50

250

18

121

139

100

200

43

101

144

150

150

57

76

133

200

100

78

51

129

250

50

97

25

122

300

0

115

0

115

Рассмотрим построение таблиц и последовательность проведения расчетов.

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

и 6 отсутствуют).

В столбце 7 записывается максимальное значение предыдущего столбца для фиксированного начального состояния, и в 8 столбце записывается управление из 2 столбца, на котором достигается максимум в 7.

Этап II. Безусловная оптимизация.

Из таблицы 5-го шага имеем F*1(e0 = 300) = 145. То есть максимальный доход всей системы при количестве средств e0 = 300 равен 145

Из этой же таблицы получаем, что 1-му проекту следует выделить u*1(e0 = 300) = 0

При этом остаток средств составит:

e1 = e0 - u1 = 300 - 0 = 300

Из таблицы 4-го шага имеем F*2(e1 = 300) = 145. То есть максимальный доход всей системы при количестве средств e1 = 300 равен 145

Из этой же таблицы получаем, что 2-му проекту следует выделить u*2(e1 = 300) = 100

При этом остаток средств составит:

e2 = e1 - u2 = 300 - 100 = 200

Из таблицы 3-го шага имеем F*3(e2 = 200) = 94. То есть максимальный доход всей системы при количестве средств e2 = 200 равен 94

Из этой же таблицы получаем, что 3-му проекту следует выделить u*3(e2 = 200) = 100

При этом остаток средств составит:

e3 = e2 - u3 = 200 - 100 = 100

Из таблицы 2-го шага имеем F*4(e3 = 100) = 44. То есть максимальный доход всей системы при количестве средств e3 = 100 равен 44

Из этой же таблицы получаем, что 4-му проекту следует выделить u*4(e3 = 100) = 100

При этом остаток средств составит:

e4 = e3 - u4 = 100 - 100 = 0

Последнему проекту достается 0

Итак, инвестиции в размере 300 необходимо распределить следующим образом:

1-му проекту выделить 0

2-му проекту выделить 100

3-му проекту выделить 100

4-му проекту выделить 100

5-му проекту выделить 0

Что обеспечит максимальный доход, равный 145

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

  • Онлайн-калькулятор / Уровень доступа https://math.semestr.ru/dinam/dinam.php