УДК 338.984
Ю.А. Кораблев, аспирант, 8-916-882-72-43, [email protected]. (Россия, Москва, МЭСИ)
МОДЕЛЬ ОПТИМАЛЬНОГО ПЛАНИРОВАНИЯ ПРОДАЖ И ПРОИЗВОДСТВА ФАРМАЦЕВТИЧЕСКОЙ ПРОДУКЦИИ
Рассматривается задача оптимизации прибыли во время планирования продаж и производства фармацевтической продукции и на основе динамического программирования создается модель оптимального планирования.
Ключевые слова: оптимизация, нелинейное программирование, система ограничений, динамическое программирование, принцип оптимальности Беллмана
1. Введение
Одно из самых важных составляющих жизни человека является его здоровье. Здравоохранение играет большую роль для любой страны и общества. Для занимающихся выпуском фармацевтической продукции предприятий особое место занимает задача планирования продаж и производства фармацевтической продукции. Модель оптимального планирования продаж и производства фармацевтической продукции может значительно помочь в решении этой задачи. В этой статье рассматривается постановка нелинейной задачи оптимизации прибыли [1] выпуска фармацевтической продукции и решение ее с помощью динамического программирования [2]. При разработке модели используется зависимость спроса на продукцию от времени, некоторые способы определения такой зависимости описаны в [3, 4].
2. Постановка задачи оптимального планирования
Задачу оптимального планирования можно сформулировать как нахождение максимума целевой функции при системе некоторых ограничений. Пусть есть N разных видов продукции, и надо выполнить планирование на Т шагов вперед (в качестве шага может быть один день, т. е. планирование от и до ¡о+т). Полученную прибыль за день у(0 < / < 7) от продукта /(1 < / <Щ можно выразить следующим образом:
тт(5ит^_1,Гг ;) • сг - хц • р.
С,,
где — количество продукции /-го вида в момент времени _/-1;
—: спрос на продукцию «'-го вида в момент времени у; — стоимость продажи единицы продукции /-го вида; — количество произведенной
продукции /-го вида в момент времени j\ — расходы на производство единицы продукции /-го вида.
Количество продукции z'-ro вида в момент времени j " можно записать следующим выражением:
Sicnii j ■ 5ит1;_! + %ц — min (S«mfcj_i,Fy) ^
Причем значение * имеет значение:
Sumi 0 — Co7istt + xi0 - min(Const!,Fl 0),
где * означает объем продукции, хранящейся на складе к моменту
начала планирования (другими словами Sumi_1 ■» 6)
В простейшем случае целевую функцию прибыли можно записать в следующем виде:
Ц - EfLi IJ=o( тт(5ит^.ирч) с, - xi)Pl)
В случае, когда во время производства появляются расходы на сертификацию каждой серии , целевая функция примет вид:
Ц - lf=x Z%(min(SvmtJ„ i, F4) cf ~ xf,}p( ~ (x4 >0)-At)
?
где выполняет роль функции, возвращающей 1, когда больше
нуля и 0 в противном случае.
Если во время хранения продукции появляются расходы на хранение, зависящие от объема хранимой продукции, то
If^l^Sum^ -рк
где- — расходы на хранение единицы одной продукции (например, налог на имущество).
Тогда целевая функция прибыли будет иметь вид:
Ц « 1Г=1 ZTj=o(min(Sum4-i>Ft.j) ci - xtjP( ~ (Ч) > -
(3)
Рассмотрим систему ограничений целевой функции. Ограничения на склад: для всех значений j суммарный объем имеющейся продукции не должен превышать объема склада:
Sum4 £ Объем (j: 0...Г) (4)
Ограничение на срок годности: продукция должна быть распродана до наступления срока годности.
(5)
Ограничения на производительные мощности: за каждый день j объем производства каждой группы продуктов не может превышать заданной границы. Например, для группы продуктов, состоящей из продуктов a, b и с, ограничение может быть записано следующим образом:
xa.j + xb.j + *c.j s максйг>с (0 Г) (6)
Ограничения на капитал: размер капитала ву-й день не должен опуститься ниже определенной отметки. В качестве минимального предела можно взять дискретную функцию P(t), характеризующую постоянные расходы на оплату заработной платы, аренды, выплаты по кредитам (рис. 1).
Рис 1. Функции постоянных расходов: а — ступенчатая, б — прямая
Если обозначить стартовый капитал как , то ограничения можно записать в следующем виде:
Кстарт + Ц/>Р(Го + /)(/:0..,Г)5 (?)
где — выражение целевой функции, записанной аналогично формуле (3), но в место Т надо подставить 3. Например, для 3= 4:
1Утт(5«тц.51Гд)с, - — 5гхт</_1рн - (ж,., > ОЩ >
Таким образом, поставленная задача оптимального планирования состоит из нахождения максимума целевой функции (3) при системе, со-
стоящей из выражений для " в виде равенств (1) и (2), а также ограничений в виде неравенств (4-7).
Полученная система является системой трансцендентных уравнений, причем эти уравнения являются не дифференцируемыми. Применение известных математике методов решения задачи нелинейного программирования, таких, как метод множителей Лагранжа или градиентных методов, невозможно. Однако полученные результаты позволяют сформулировать и решить задачу оптимального планирования в рамках динамического программирования.
3. Решение задачи оптимизации прибыли методом динамического программирования
Для решения задачи оптимизации методами динамического программирования необходимо определить множество возможных состояний S, в которых может находиться физическая система на каждом шаге, определить множество возможных управлений U, а также определить качество реализуемого управления W(U).
Множество возможных состояний системы S определим сперва для системы, состоящей из одного вида продукта. На каждом шаге имеющийся объем продукции определенного вида представлен целым числом, обозначающим, на сколько шагов вперед хранящейся продукции хватит, чтобы удовлетворить спрос на нее. Другими словами, число, обозначающее состояние, кратно нелинейному спросу на продукцию. Если F(t) обозначает спрос на продукцию, то во время шага j состояние может быть обозначено числом s, имеющим такой смысл, что хранящийся объем продукции представлен выражением (7):
Объем - Zf^1 F(t0 +j + 0 (8)
На шаге j - Т возможно всего два состояния S = {0, 1}, обозначающие, что хранящейся продукции хватит удовлетворить спрос или нет. На шаге j - Т-\ возможно три состояния S = {0, 1, 2}, 0 и 1 имеют тот же смысл, а 2 обозначает, что хранящейся продукции хватит еще и на следующий шаг j = Т. Однако на шаге j = 0 возможно только одно состояние S = {С}, обозначающее, сколько продукции имеется до начала планирования (аналогично Const¡, но уже кратно спросу). На шаге у = 1 состояние уже может иметь множество значений S = {С-1, С, С+1, ..., 7}. В общем случае на шаге j состояние S может иметь следующее множество значений S = {C-j, C-j+1, ..., T-j-1, T-j, T-j+1}. Причем C-j не может опуститься ниже нуля, если С <j, то S= {0,1,..., T-j, T-j+l}.
Для N видов продукции состояние S характеризуется числом (s¡, s¡, ..., sm-i, ss) . Где каждое s¡ (для i от 1 до TV) может изменяться как описано
выше: Sj - {С,-у', С,-/+1, ..., Г-/', Т-]+Ц или в случае С, <jsj = {О, 1, ..., Т-],
Г-/+1}. Например, обозначив
Т~) + , дляЛ^=4:
г (0,0,0,0) (0,0,0,1)
(ОДОД) (0,0Д,0) (О.ОДД)
(ОДШ
\{К,К,К,К)
Вид этого множества напоминает запись числа в Л"-ричной системе исчисления. В худшем случае для N видов продукции общее число состоянии будет (Г-у+1)ы
Ограничение на объем склада [формула (4)] ограничивает число возможных состояний так, что суммарный объем продукции не должен превышать объема склада.
£?о1 ХЦо Fi + ; + «0 £ Объем
(9)
Зависимость числа состояний от шага у для одного вида продукции можно изобразить графически (рис. 2).
Ограничения
Рис. 2. Число состояний на шаге у
Для каждого состояния системы Б возможно свое множество воз-можньрс управлений и.
Множество возможных управлений II определим похожим образом сначала для одного вида продукта. На каждом шаге произведенный объем продукции определенного вида представлен целым числом, обозначаю-
щим, на сколько шагов вперед после израсходования хранящейся продукции хватит произведенной продукции, чтобы удовлетворить спрос на нее. То есть число, обозначающее управление, кратно нелинейному спросу на продукцию после израсходования хранящейся продукции. Однако управление обозначает объем произведенной продукции для удовлетворения спроса на продукцию на следующих шагах, а не на текущем. Во время шага у при состоянии 5 управление может быть обозначено числом и, имеющим такой смысл, что произведенный объем продукции представлен выражением (10).
Произведенный Объем « + / + тах(0,5 - 1) + V) (10)
где выражение тах(0,СХОИТ длЯ ТОго, чтобы произведенная продукция удовлетворяла спрос, начиная со следующего шага (было неважно 5 = 0 или 5=1), также изменяется от 1 до и, а не от 0 до 5-1 как в формуле
(7).
На шаге у = Т возможно одно управление V - {0}, что обозначает, что производство продукции для удовлетворения спроса после шага Т не увеличит прибыль за интервал Т. На шаге у = Т-1 возможно два управления — и= {0, 1}. На шаге у = Т-2 возможно три управления — £/ = {0, 1, 2} и т. д. В общем случае на шаге у для состояния 5 возможно следующее множество управлений: 11= {0, 1, ..., 7-у—5—1, 7-у—5}.
Для N видов продукции управление II характеризуется числом (м/, и2, ..., млг-;, мл). Где каждое и, (для / от 1 до ЛО может изменяться как описано выше: и, = {0, 1, ..., Г-у-5,}. Например, для N = 4, обозначив
Т -) - 8.
(0,0,0,0) (0,0,0,1)
(о, од XV) (0,0,1,0) £/-<{ (0,0,1,1)
(0,0 хк,)
Каждое управление (ы/, «2, ••■, Млч, мл) переводит систему из состояния (5;, 52, ..., ¡N-1, 5//) на шаге у в состояние [тах(0, 5/-1+М/), тах(0, 52-1 +и2), ..., тах(0, л>_г-1+ил-Л тах(0, 5Л_/+ыдг)] на шагу+1. Для одного вида продукта это можно изобразить графически (рис. 3). Кружками с цифрами
показаны состояния, стрелками показаны управления и то, как эти управления переводят систему из одного состояния в другое. Из каждого состояния можно перейти в следующее, имеющее номер на единицу меньше и во все другие состояния, имеющие больший номер или такой же.
Т-2
Рис. 3. Пример возможных состояний и управлений
В худшем случае для N видов продукции для каждого состояния (.$;, «2,..., ллм, общее количество управлений будет
(Г - / - *{Т-}~ ъг) * ... * (Г-}-
Ограничение на объем склада влияет на количество возможных управлений:
£<>1 ЯГо + ;' + /)£ Объем (11}
Ограничение на срок годности влияет на управления следующим образом:
Щ * < Срок годности, (12)
Ограничения на производственные ресурсы также влияют на возможные управления. Например, для группы продуктов состоящей из продуктов а, Ь и с ограничение может быть записано
р(*0+) + шахСО,^ -1) + о 5 максйЬс (13)
Качество реализуемого управления Ц) сформулируем на основе выражения (3). Его можно представить в виде двух частей, первая из которых не зависит от управления и составляет прибыль от продажи продукции, а другая составляет расходы на производство продукции:
где \VjOS) составляет прибыль от продажи объема продукции, соответствующего спросу на шаге у, минус расходы на хранение всей имеющейся продукции:
- > -ЦГ^Оь +7 + Ор„ 1. (14)
И$«/(5)) - > ОН + рйРДс0 +У + та*(0,${ - 1) + О] (15)
Запишем принцип оптимальности Беллмана:
ФД5) = шаху[й^(5) - И$(</(5)) + -1 + У)]
Так как член не зависит от ?7, его можно вынести за максимум: ФД5) - И$(# + шаху[- И5(1?(5)) + Ф^ - 1 + У)] (16)
Решение сформулированной задачи динамического программирования начинается с определения оптимального управления для последнего шага] = Т. Как было сказано выше, на шаге ] = Т для каждого состояния 5 возможно только одно нулевое управление. Следовательно
Фг(5) - ^г(5>.
Для предпоследнего шага у = Т-1 для каждого состояния находится оптимальное управление согласно формуле (16). Рекуррентным способом находятся оптимальные управления для каждого состояния на всех оставшихся шагах. Затем на шаге j = О для единственного состояния выбирается оптимальное управление, переводящее систему на шаг вперед в новое состояние. Аналогично на шаге у = 1 для полученного состояния выбирается оптимальное управление, такой процесс продолжается вплоть до шага Т-1. Последовательность таких оптимальных управлений будет решением поставленной задачи оптимального планирования методом динамического программирования.
Реализация ограничения на капитал связана с некоторыми трудностями. Дело в том, что динамическое программирование ищет оптимально е управление из всех возможных управлений при движении от последнего шага к первому. Однако на последнем шаге значение капитала не может быт вычислено. Оно может вычисляться только при движении от начала к концу, но к этому моменту для каждого состояния найдено одно оптимальное управление, а надо иметь все множество управлений. Таким образом, для реализации ограничения на каптал необходимо отказаться от этапа выбора оптимального управления для каждого состояния, отказаться от основного уравнения Беллмана при движении от конца к началу. Для каждого состояния надо запоминать все возможные управления и вычислять и запоминать качества этих управлений. Этот объем информации необходимо хранить до самого первого шага, что требует значительных объемов памяти. На первом шаге начинается ограничение множества возмож-
ных управлений. Ограничение на капитал можно получить, переписав формулу (7) следующим образом:
Кпрт + И5(5.У) >Р(Г0+Г) (17)
Из ограниченного выражением (17) множества управлений на первом шаге выбирается оптимальное управление согласно формуле (16). Это оптимальное управление переводит систему на новый шаг в новое состояние, на котором также ищется оптимальное управление.
Библиографический список
1. Taxa, Хемди А. Введение в исследование операций. 7-е изд., пер. с англ. М.: Издательский дом «Вильяме», 2005. 912 с.
2. Акулич И.Л. Математическое программирование в примерах и задачах: учеб. пособие для студентов эконом, спец. вузов. М.: Высш. шк., 1986.319 с.
3. Лукашин Ю.П. Адаптивные методы краткосрочного прогнозирования временных рядов. Изд-во «Финансы и статистика», 2003. 416 с.
4. Голяндина Н.Э. Метод «Гусеница» - SAS: анализ временных рядов: учеб. пособие. СПб., 2004. 76 с.
Y.A. Korablyov
Model of optimal planning of sales and production ofpharmaceuticals
The task of optimizing profit during the planning of production and sales of pharmaceutical products is considered. The model of optimal planning is developed based on dynamic programming.
Keywords: optimization, nonlinear programming, system constraints, dynamic programming, Bellman's optimality principle.