Преподавание дисциплин экономико-математического цикла для студентов высших учебных заведений, обучающихся по экономическим специальностям, а также для студентов менеджериальных направлений подготовки, подразумевает изучение ряда прикладных вопросов математики, одним из которых является динамическое программирование. Методы динамического программирования базируются на принципе оптимальности Беллмана и при традиционной методике преподавания требуют выписывания рекуррентного соотношения Беллмана. Однако для данной категории студентов обучение должно быть ориентировано не столько на разъяснение прикладного значения преподавания математических дисциплин (как это имеет место в случае обучения студентов математических и педагогических направлений, для которых составлено большинство методических разработок по данной тематике), сколько на обучение решению вполне конкретных практических задач математическими методами. В связи с этим в процессе преподавания данного раздела студентам экономистам и менеджерам нецелесообразно применять сложную математическую терминологию, проводить громоздкие доказательства и обоснования, как это необходимо при обучении студентов-математиков, а требуется научить решать практические задачи возможно более короткими и доступными способами.
Целью настоящей работы является описание новой методики изложения темы «динамическое программирование», которая позволяет облегчить восприятие данной темы за счёт более компактного изложения и оформления решений и избегания излишней математической терминологии.
В процессе преподавания дисциплин «Исследование операций в экономике», «Методы принятия управленческих решений», «Экономико-математические методы и модели» у студентов, обучающихся на факультете экономики и управления ФГБОУ ВПО «Ульяновский государственный педагогический университет им. И.Н. Ульянова», автором разработан новый метод изложения темы «динамическое программирование». Этот метод позволяет сократить оформление решений практических задач. Рассмотренный алгоритм близок к изложенному в работе [4], однако имеет ряд отличий, например, он не включает в себя выписывания рекуррентных отношений Беллмана, не оперирует с понятием «остаток средств», а также некоторые другие. Был проведён педагогический эксперимент по сравнению результатов обучения данной теме согласно традиционной методике (базирующейся на учебных пособиях [1, 2, 3, 5] и др.) и по методике, описываемой ниже.
Разберём предлагаемую методику изучения темы «динамическое программирование» на примере определения оптимального плана инвестирования. Решим с помощью этого метода задачу, предложенную Л.И. Акуличем [2, № 4.2, 4.10.]. В задаче требуется составить оптимальный план инвестирования 700 тысяч рублей в три предприятия, максимизирующий итоговую суммарную прибыль, если доходность каждого предприятия в зависимости от объёмов капиталовложений задана табл. 1.
Таблица 1
Условия задачи
Объём капиталовложений |
Прибыль, получаемая от предприятия в зависимости от объёма капиталовложений (тыс. руб.) |
||
предприятие 1 |
предприятие 2 |
предприятие 3 |
|
0 |
0 |
0 |
0 |
100 |
30 |
50 |
40 |
200 |
50 |
80 |
50 |
300 |
90 |
90 |
110 |
400 |
110 |
150 |
120 |
500 |
170 |
190 |
180 |
600 |
180 |
210 |
220 |
700 |
210 |
220 |
240 |
Решение. Традиционно решение задач линейного программирования начинается с разбивки решения на этапы. В данном случае, несмотря на единовременность принимаемого решения, можно выделить условные этапы – будем считать, что на первом этапе мы инвестируем средства в первое предприятие, на втором – во второе, на третьем – в третье. Хотя последовательность этапов в данном случае совершенно не существенна, опять следуя традиции, будем решать эту задачу методом обратной прогонки – то есть от последнего этапа к первому. Для выбора условно-оптимального управления на последнем шаге сделаем возможные предположения о состоянии системы (то есть об объёмах имеющихся у нас капиталов) к третьему этапу. Очевидно, что капитал, которым мы будем располагать к третьему этапу, будет находиться в пределах от 0 до 700 тыс. рублей. На последнем этапе (то есть в момент, когда решение по инвестированию в первое и второе предприятие уже принято), оптимальным управлением будет вложение всех оставшихся средств в третье предприятие (больше их просто некуда вложить). Доходы, получаемые от такого капиталовложения, занесём в две верхние строки табл. 2 (данные берутся из последнего столбца табл. 1). Далее таблицу заполняем следующим образом. В первом столбце таблицы укажем средства, предположительно вкладываемые во второе предприятие (начиная с 0; строку, которая начинается с 0, назовём нулевой). Заметим сразу, что если мы ничего не вложим в третье предприятие (столбец, вверху которого стоит 0; будем называть его нулевым столбцом), то доход будет получаться только от вложений во второе предприятие, поэтому в нулевой столбец копируем значения из столбца, соответствующего предприятию 2 в табл. 1. В остальных клетках укажем суммарную прибыль, которую можно получить от инвестирования соответствующих сумм во второе и третье предприятия одновременно (для этого складываем значения в нулевой строке и нулевом столбце табл. 2, которые выделены жирным шрифтом). Для сокращения пояснений обозначим каждую клетку парой чисел, первое из которых будет соответствовать количеству вкладываемых тысяч рублей, указанному в первом столбце таблицы, а второе – количеству тысяч рублей, указанному в верхней строке. Например, клетка (100, 300) – это клетка, в которую заносится доход от вложения 100 тыс. рублей во второе предприятие (доход составит 50 тысяч), в сумме с доходом от вложения 300 тыс. рублей в третье предприятие (доход 110 тысяч). Таким образом, суммарный доход от инвестирования этих средств составит 50 + 110 = 160 тыс. руб., поэтому в клетку (100, 300) заносится значение 160 (показано курсивом в табл. 2).
Таблица 2
Прибыль от вложения средств во второе и третье предприятия
Клетки, сумма номеров которых больше 700, не заполняются (например, клетки (100, 700), (200, 600) и т.д.), поскольку эти клетки соответствуют суммарным инвестициям, превышающим 700 тысяч. Из данной таблицы легко видеть, что значения, соответствующие инвестициям конкретной денежной суммы, расположены по диагонали по отношению друг к другу. В этом случае сумма номеров клеток одинакова, например, возможные варианты инвестирования 300 тысяч находятся в клетках, сумма номеров которых равна 300 – это клетки (300, 0), (200, 100), (100, 200) и (0, 300). Для наглядности проведём через все клетки, соответствующие инвестициям одинаковых сумм параллельные линии (как это показано в табл. 2). В частности, на линии, соответствующей инвестиции 300 тыс. руб., расположены возможные значения прибыли 90, 120, 100, 110. Выбираем из значений данных клеток максимальное и обводим его в кружок – это значение 120 тыс. руб., оно находится в клетке (200, 100). В нашем случае это означает следующее: если ко второму этапу мы подошли с капиталом 300 тыс. рублей, то наиболее выгодно будет вложить 200 тысяч во второе предприятие и 100 тысяч в третье, что принесёт прибыль в 120 тыс. рублей. Аналогично поступаем с группами других клеток, сумма номеров которых одинакова (то есть соединёнными линиями) – на каждой линии выбираем максимальное значение и обводим его в кружок. Результаты заносим в первые две строки табл. 3. В первой строке указываем суммарный инвестируемый капитал, под ним указывается способ его распределения между вторым и третьим предприятием (в виде суммы двух чисел, первое из которых соответствует вложению во второе предприятие, а второе – вложению в третье, то есть номера выбранных клеток). Во второй строке указываем соответствующую прибыль (число, обведенное в кружок в табл. 2). Обратим внимание на то, что существуют различные варианты размещения капиталов, приносящие равные результаты. Например, при размещении 500 тыс. рублей (линия, начинающаяся от клетки и заканчивающаяся клеткой (500, 0) в табл. 2), наибольшее значение прибыли (190 тыс. руб.) достигается сразу в трёх клетках (500,0), (400, 100) и (200, 300). В таком случае мы можем выбрать любую из этих трёх клеток (либо лицо, принимающее решение, определяет наилучший вариант, руководствуясь какими-то дополнительными факторами, не указанными в задаче). Для определённости выберем клетку (200, 300).
Таблица 3
Прибыль от вложения средств в первое, второе и третье предприятия
Итак, вторая строка табл. 3 соответствует наилучшим результатам инвестирования средств, указанных в первой строке, при условии, что в первое предприятие вложений не делалось. Продолжим заполнение табл. 3. Теперь в первый столбец внесём возможные инвестиции в первое предприятие, а во второй столбец – соответствующие прибыли (копируется столбец табл. 1, соответствующий прибыли от первого предприятия). В остальные клетки заносятся соответствующие прибыли от суммарных инвестиций. Например, клетка (100, 100) теперь соответствует инвестированию 100 тысяч рублей в первое предприятие (что принесёт прибыль 30 тыс. рублей) и наилучшему суммарному инвестированию ста тысяч рублей во второе и третье предприятие (полученному из табл. 2 и равному 50 тыс. рублей). Поэтому в клетку (100, 100) заносится значение 80 = 30 + 50. Самым большим числом в табл. 3 является число 270, находящееся в клетке (0, 700). Это значение соответствует максимальной прибыли, которая может быть получена в данной экономической ситуации. Такой финансовый результат достигается, если вкладывать 0 тыс. рублей в первое предприятие и 700 тысяч рублей во второе и третье, что видно из номера клетки (0, 700). Оптимальное распределение 700 тысяч рублей между вторым и третьим предприятиями уже было найдено ранее (оно указано в верхней строке таблицы под числом 700) – это вложение 100 тысяч во второе предприятие и 600 тысяч в третье предприятие (клетка (100, 600) из табл. 2). Таким образом, мы определили максимальную прибыль 270 тысяч рублей от инвестирования 700 тысяч в три рассматриваемых предприятия. Оптимальный план действий – инвестировать 100 тысяч во второе предприятие (прибыль в 50 тысяч рублей) и 600 тысяч в третье предприятие (прибыль 220 тысяч рублей).
Заметим также, что из последней таблицы мы можем сразу получить оптимальные планы инвестирования меньших сумм (600 тысяч, 500 тысяч и т.д.). Эти результаты могут быть использованы при решении других, более сложных, задач (например, если можно инвестировать средства в 4 и более предприятий). В нашем случае, когда имеется только три предприятия, для решения задачи в последней таблице достаточно заполнить только нижнюю диагональ, через которую в табл. 3 проведена линия – решение ещё более сокращается.
При решении этой задачи обучаемым нет необходимости выписывать все приводимые здесь пояснения – всё решение целиком сводится к заполнению двух таблиц – табл. 2 и табл. 3 и занимает, таким образом, менее одной страницы. Для сравнения, решение той же задачи традиционным способом, представленным в работе [2], занимает 6 страниц и требует выписывания реккурентного соотношения, 15 матриц столбцов и двух итоговых таблиц, и это без учёта описания общего метода решения. Не меньший объем занимает и решение аналогичных задач, приводимых в других работах [1, 3, 5]. Тем же методом можно решать и большинство других прикладных экономических задач, относящихся к теме «динамическое программирование» – задачу об оптимальном назначении, об оптимальной загрузке судна, задачу о найме сезонных рабочих, об оптимальном использовании оборудования и другие. Разумеется, описываемый метод решения не требует выписывания рекуррентного соотношения, поэтому этот метод не годится для тех студентов, в программах обучения которых тема «рекуррентные соотношения» имеет самостоятельное значение, например, для студентов-математиков прикладных направлений, изучающих исследование операций. Однако, по нашему мнению, данный метод вполне пригоден для студентов менеджеров и экономистов, в особенности бакалавров, задачей обучения которых является подготовка не к теоретическим математическим исследованиям, а к практическому применению разработанного математического аппарата в реальных ситуациях. Поскольку большинство наиболее распространённых практических задач удается решить данным методом, ему следует отдать предпочтение также в связи с его большей доступностью для понимания, а также с меньшим временем, затрачиваемым на решение задач.
Рецензенты:
Лебедев А.М., д.т.н., профессор кафедры естественно-научных дисциплин, ФГБОУ ВПО «Ульяновское высшее авиационное училище гражданской авиации (институт)», г. Ульяновск;
Ильмушкин Г.М., д.п.н., профессор, заведующий кафедрой высшей математики, Димитровградский инженерно-технологический институт (филиал ФГАОУ ВПО «Национальный исследовательский ядерный университет «МИФИ»), г. Димитровград.
Работа поступила в редакцию 04.06.2014.