Современная экономическая ситуация в России характеризуется усложнением организационной структуры производства, углублением общественного разделения труда, развитием торговой индустрии. В этих условиях существенно возрастают требования к методам планирования и хозяйственного руководства. Широкое применение в менеджменте организаций находят теория и методы экономико-математического моделирования, позволяющие формировать систему целей, строить текущие и перспективные планы, оптимизировать их обеспечение необходимыми ресурсами, принимать эффективные управленческие решения.
В условиях рыночной экономики особое внимание математиков и экономистов привлекает разработка методов совершенствования деятельности торговых предприятий, представляющих собой независимые хозяйствующие субъекты, осуществляющие закупку, хранение, реализацию товаров с целью получения прибыли и удовлетворения потребностей рынка. Организация эффективной деятельности торгового предприятия способствует созданию устойчивых связей между экономическими контрагентами – от производителя до конечного потребителя [4].
В то же время анализ работ в области экономико-математического моделирования показывает, что проблемы планирования деятельности торговых предприятий остаются малоизученными. Большинство математических моделей, разработанных в сфере коммерческой деятельности, относятся к производственным организациям. При этом вопросы оптимизации рассматриваются не в комплексе, а по отдельным этапам и сферам деятельности: оптимизация инвестиционной политики, управление оборотным капиталом, планирование производственной мощности предприятия, управление запасами, эффективное использование трудовых ресурсов, составление оптимальных маршрутов, расписаний и др.
Недостаточная разработанность проблемы выявления совокупности экономико-математических методов оптимизации деятельности торгового предприятия в условиях рыночной экономики определяет актуальность темы исследования. Предметом исследования выступают модели и методы линейного и динамического программирования как инструментальные средства оптимизации деятельности торгового предприятия.
Динамическое программирование – метод оптимизации, приспособленный к операциям, в которых процесс принятия решения может быть разбит на этапы (шаги). Такие операции называются многошаговыми. В данной статье рассматривается математический подход к решению задачи оптимального управления запасами. Возникновение задач этого типа связано с работами Ф. Эджуорта и Ф. Харриса, появившимися в конце 19 − начале 20 века, в которых исследовалась простая оптимизационная модель для определения экономичного размера партии поставки для складской системы с постоянным равномерным расходом и периодическим поступлением хранимого продукта [5].
Запасом называется любой ресурс, который хранится для удовлетворения будущих нужд. Примерами запасов могут стать полуфабрикаты, готовые изделия, материалы, различные товары, а также денежная наличность, находящаяся в хранилище. Причинами создания запасов являются дискретность поставок, случайные колебания спроса за период между поставками, объема поставок, сезонность спроса или производства. Существуют также причины, побуждающие предприятия минимизировать запасы: плата за хранение, физические потери при хранении; моральный износ продукта [3].
Рассмотрим предприятие, производящее партиями некоторые изделия. Предположим, что оно получило заказы на п месяцев, причем размеры заказов меняются от месяца к месяцу, поэтому иногда целесообразнее выполнить одной партией заказы нескольких месяцев и затем хранить изделия, пока они не потребуются. Необходимо составить план производства на указанные месяцы с учетом затрат на производство и хранение.
Введем обозначения:
иi − число изделий, производимых в j-й месяц;
xj − величина запаса к началу j-го месяца;
dj − число изделий, отгружаемых в j-м месяце;
fj(xj+1,uj) − затраты производство и хранение изделий в j-м месяце.
Считаем, что величины запасов к началу первого месяца х1 и к концу последнего хn+1 заданы. Задача состоит в том, чтобы найти план производства
(1)
компоненты которого удовлетворяют условиям баланса
xj+uj-dj=xj+1, j=1,2,…, n (2)
и минимизируют суммарные затраты за весь планируемый период
(3)
При этом (4)
Заметим, что для любого месяца j величина xj+1 запаса к концу месяца должна удовлетворять ограничениям
0≤xj+1≤dj+1+dj+2+…+dn, (5)
т. е. объем производимой продукции иj на этапе j может быть настолько велик, что запас xj+1 удовлетворяет спрос на всех последующих этапах, но нет смысла иметь xj+1 больше суммарного спроса на всех последующих этапах. Кроме того, управление uj должно удовлетворять ограничениям
0≤uj≤dj+xj+1 (6).
Рассмотрим общее решение данной задачи методом динамического программирования, взяв за основу алгоритм, представленный в [2].
За параметр состояния х примем наличный запас в конце k-го месяца х=хk+1, а функцию состояния Fk(x) определим как минимальные затраты за первые k месяцев при выполнении условия (5):
где минимум берется по неотрицательным целым значениям и1, и1...,ик, удовлетворяющим условиям
xj+uj-dj = xj+1,
xk+uk-dk=x (7)
Учитывая, что
и величина запаса хk к концу (k−1)-го периода, как видно из уравнения (7), равна хк = x+dk-uk приходим к рекуррентному соотношению
где минимум берется по переменной ик, которая, согласно (6), может изменяться в пределах 0≤uk≤dk+x, причем верхняя граница зависит от значений параметра состояния, изменяющегося в пределах 0≤x≤dk+1+dk+1+…+dn , а индекс k может принимать значения k=2,3,4,…, n.
При k = 1
, где
u1=x+d1-x1,
0≤x≤d2+d3+…+dn ,
т. е. на начальном этапе при фиксированном уровне x1 исходного запаса каждому значению параметра х отвечает только одно значение переменной u1.
Применив вычислительную процедуру динамического программирования на последнем шаге (k=n), находим значение последней компоненты и*n оптимального решения, а остальные компоненты определяем как
В качестве конкретного примера рассмотрим деятельность предприятия по производству полуфабрикатов в течение N календарных этапов планирования (месяцев). Каждый n-й этап характеризуется следующими параметрами:
in?1 ? величина запаса, оставшаяся на предприятии после окончания предыдущего n?1 -го этапа;
хn ? объем производства предприятия на n-м этапе;
dn ? величина спроса на продукцию предприятия на n-м этапе.
Известна функция затрат сп на п-м этапе функционирования предприятия, зависящая от объема хn производства и величины запасов in-1, которые должны храниться на складе в течение n-го периода.
Необходимо определить объем производства для каждого этапа планирования, при котором суммарные затраты, связанные с производством продукции и ее хранением, были бы минимальны, и в каждом периоде выполнялось ограничение на спрос продукции со стороны потребителей.
Критерий оптимальности представляется в виде:
→ min.
Ограничения:
1) удовлетворение спроса потребителей на продукцию в n-м периоде
dn ≤ in-1 + xn, n = 1,¯N;
2) объем запаса в конце n-го периода
in =in-1 + xn – dn , n= 1,¯N, in =0,¯imax , хn =0,¯хтах .
Функциональное уравнение Беллмана имеет вид:
fn (in)= minxn (fn-1 (in?1) + сn(хп, in?1)).
Рассмотрим решение уравнения Беллмана для случая, когда cn(xn, in?1)=cn(xn)+h•in?1,
где сn(хn) затраты на производство продукции на n-м этапе в объеме хn,
h•in?1 ? затраты на хранение продукции на n-м этапе, h ? коэффициент;
i0 ? начальный запас продукции;
c0(i0) ? затраты на его создание;
h•i0 ? затраты на его хранение.
Решим рассматриваемую задачу для следующих исходных данных:
- количсество интервалов планирования (месяцев) N=3;
- величина спроса на полуфабрикаты постоянна для всех этапов:
d1 =d2 = d3 = 400 кг/ мес.;
- затраты на формирование начального запаса с0(x0) = 90·i0; (коэффициент 90 складывается из 70 руб./кг – себестоимость одного килограмма полуфабрикатов ? и 20 руб./ кг идут на заработную плату работников;
- затраты на производство и хранение продукции
сп (хп,in?1) =12000+70· хn +10• in-1;
(12000 руб. – месячный расход на заработную плату, 70 руб./кг – себестоимость одного килограмма продукции, 10 руб./кг – стоимость хранения 1 кг продукции в месяц, т.е. затраты на оплату электроэнергии, потребляемой морозильными камерами, а также на текущий ремонт оборудования);
- ограничение на производственные мощности хтax = 600 кг/мес;
- ограничение на предельный уровень запасов iтах= 400 кг/мес.
Шаг 1. Решение уравнения Беллмана производится в соответствии с алгоритмом прямой прогонки:
f1(i1)=min(c1(x1)+c0(i0)+h•i0),
i1= x1+ i0?d1.
Для решения этого уравнения формируется таблица 1, в которой столбцы соответствуют величине начального запаса, строки ? объему производства на первом этапе х1. Каждая клетка таблицы делится на две части: в нижней части записываются значения состояния в конце первого этапа (значения для переменной i1): i1=i0+x1–d1.
Если i1 отрицательно, то такие состояния являются недопустимыми и исключаются из рассмотрения. В частности, для положительного спроса d1 > 0 клетка с х1=0 и i0=0 является недопустимой. Клетки, соответствующие недопустимым состояниям, отмечаются символом * [6].
В верхней части каждой из клеток записывается значение функции
f* (i1) = c1(x1) + c0(i0) + h•i0.
Приведем вычисление ряда функций f1*(i1):
f1* (0) = c1(0) + с0(400) + 10•400 = 0 + 90•400 + 4000 = 40000,
f1* (0) = c1(100) + с0(300) + 10•300 = 12000 + 70•100 + 90•300 + 3000 = 49000,
f1*(100) = c1(100)+с0(400) +10•400 =12000 + 70•100 + 90•400 + 4000 = 59000,
f1*(0) = c1 (200) + с0(200) + 10•200= 12000 + 70•200 + 90•200 + 2000 = 46000,
f1* (100) = c1(200) +с0(300) +10•300 =12000 +70•200 + 90•300 +3000 = 56000,
f1*(200) = c1(200) + с0(400) +10•400 = 12000+70•200 + 90•400 +4000 = 66000.
Таблица 1
Расчетная таблица для шага 1
Объем производства x1 |
Величина начального запаса |
||||
|
i0=0 |
i0=100 |
i0=200 |
i0=300 |
i0=400 |
x1= 0 |
* |
* |
* |
* |
40000 |
|
|
|
|
|
i1=0 |
x1= 100 |
* |
* |
* |
49000 |
59000 |
|
|
|
|
i1= 0 |
i1 = 100 |
x1=200 |
* |
* |
46000 |
56000 |
66000 |
|
|
|
i1= 0 |
i1= 100 |
i1= 200 |
x1=300 |
* |
43000 |
53000 |
63000 |
73000 |
|
|
i1= 0 |
i1=100 |
i1=200 |
i1= 300 |
x1=400 |
40000 |
50000 |
60000 |
70000 |
80000 |
|
i1 =0 |
i1=100 |
i1=200 |
i1=300 |
i1=400 |
x1 = 500 |
47000 |
57000 |
67000 |
77000 |
* |
|
i1= 100 |
i1 = 200 |
i1= 300 |
i1 = 400 |
|
x1 = 600 |
54000 |
64000 |
74000 |
* |
* |
|
i1=200 |
i1 = 300 |
i1= 400 |
|
|
Среди допустимых клеток находятся клетки с одинаковыми значениями состояний, в качестве оптимальной выбирается клетка, для которой f* (i1) принимает минимальное значение, т.е. f(i1) = min{f*(i1)}. Для каждого состояния фиксируется оптимальный объем производства х1. Результаты представляются в окончательной таблице для первого шага: в первом столбце приводится перечень состояний, во втором ? оптимальный объем производства для каждого из состояний; в третьем ? оптимальные затраты на производство и хранение запаса для первого календарного периода. Максимальное значение состояния первого этапа ограничивается imax, т.е. i1= imax , а минимальное ? i1=0.
Итоговая таблица для шага 1
Объем запаса i1 |
Объем производства x1 |
Функция затрат f1(i1) |
i1 = 0 |
x1 =400 |
f1 (0)=40000 |
i1 = 100 |
x1=500 |
f1(100)=47000 |
i1 = 200 |
x1=600 |
f1 (200)=54000 |
i1 = 300 |
x1 =600 |
f1 (300)=64000 |
i1 = 400 |
x1 =600 |
f1 (400)=74000 |
Аналогичные действия выполняются для всех этапов, пока n не достигнет значения N.
Для нахождения оптимальных объемов производства хn и оптимальных уровней запаса in производим решение задачи в обратном порядке:
i3 = 0, х3 = 0; i2 = 400, х2 = 600; i1=200, x1 = 600; i0 = 0.
Вывод: для минимизации затрат на производство и хранение продукции, предприятию следует в первые два месяца производить на максимальной мощности, а в третьем месяце – только реализовать имеющиеся запасы. Такой режим работы может повторяться неоднократно.