РАЗДЕЛ 3.3. Задача определения структуры закупки при ограниченном финансовом ресурсе и различной рентабельности товаров.
которая образуется как разность между закупочной, включающей издержки обращения, и продажной ценами.
В силу ограниченности финансового ресурса не все виды товаров из набора товаров, реализуемых фирмой, и не все товары в нужном, с точки зрения возможности сбыта, объеме могут быть закуплены по мере возникновения необходимости пополнения запасов на складе фирмы. Очевидно также, что различные товары приносят фирме различную прибыль на единицу инвестированных в них фи-нансовых ресурсов, т. е. товары обладают различной рентабельностью.
Принятию решений об объемах закупок товаров на склад в условиях ограниченности финансового ресурса и различной рентабельности товаров и посвящена модель, формулируемая и исследуемая в настоящем разделе.
Рассмотрим следующую исходную постановку.
Допустим, что рассматриваемая коммерческая фирма производит закупку и реализует товары единственного поставщика (производителя или торгового посредника).
В момент времени t0 производится заказ товаров на склад для периода [t\\, t2] так, чтобы за время t = t\\-t0 они успели на него поступить. Предполагается, что в момент времени t\\-5t, где 5t = 0(t), предшествующий поступлению заказываемой партии товара на склад, на нем будет иметься остаток товаров (всего номенклатура товаров содержит n позиций): u°, u°, ...., uJJ. Потребность в товарах (оценка), т.е. оценка количества товаров, которое можно продать в периоде [t\\, t2], составит, соответственно: s\\, s2, ...
, sn. Таким образом, дефицит товаров (недостаток товаров для покрытия спроса предстоящего периода) в момент t\\-5t составит: Ds\\ = S\\-u°, Ds2 = s2-u2, . ,Asn = sn-un.
Необходимо определить объем закупок (заказа) товаров в момент t0 для периода [t\\, t2]: Aub Du2, ... , Dun с тем, чтобы прибыль от закупки товаров была максимальной.
Финансовый ресурс на закупку товаров ограничен и составляет B единиц, т.е. это та сумма денежных средств, которая может быть инвестирована в товары в момент времени t0.
Продажная цена товара 1-го вида составляет Рь а прибыль на каждую единицу товара 1-го вида в абсолютном выражении - D1. Себестоимость товара составляет P1-D1 единиц. Обозначим через d1 долю прибыли в отпускной цене товара 1-го вида:
d1 = D1/P1, D1 < Р1, 0 < d1 < 1.
Тогда доля себестоимости в продажной цене товара составит 1- d1 = (P1-D1)/P1. Необходимо определить оптимальный набор товаров (в количественном выражении по каждой позиции), который максимизирует прибыль фирмы в периоде [t1,t2].
На основании вышеизложенного может быть сформулирована следующая задача линейного программирования (ЗЛП):
jjd^ Du1 -Umax при ограничениях
j(1 -d1 )P1 Du1 < B
1=1
Au1 < Ds1, 1 = 1,n; или, что то же самое, P1Au1 < P1As1, 1 = 1,n .
Очевидно, также имеет место условие, вытекающее из смысла задачи и не являющееся ограничением:
n
j(1 - d1 )P1 As1 > B
1=1
В противном случае задача имеет очевидное решение: Au1=As1, Au2=As2, ... ,Aun=Asn. Для решения задачи введем обозначения:
P1Au1 = u(i), P1As1 = s(i),
UT=(u(1), u(2),...,u(n)), где UT - вектор-строка, соответствующий вектору-столбцу U.
С учетом обозначений (3.3.3) сформулируем ЗЛП (3.3.1)-(3.3.2) в векторно-матричной форме:
CTU—max
U
AU < Ao, где CT = (d(1),d(2),...d(n)), где d(i) = d1;
1 - d(1) 1 - d(2) ••• 1 - d(n) 1 0 ••• 0
A =
0 0 L 1
AT0 = (B, s(1), s(2), ... ,s(n)), где s(i) = P,As,. Двойственная задача к данной ЗЛП имеет вид:
ATX ® min
O X
ATX >C,
где AT - транспонированная матрица A, а X - вектор-столбец, соответствующий вектору-строке
XT = (x(1), x(2), ..., x(n+1)).
Решение этих задач (прямой и двойственной) основывается на следующих двух теоремах [117, с.
46 и 63], [166].Теорема 3.3.1. Если целевая функция принимает максимальное значение в некоторой точке допустимого множества U1, то она при-нимает это значение в крайней точке U1.
Теорема 3.3.2. Если U0 и X0 - допустимые решения прямой и двойственной задачи, и если CTU0 = X^A0, то U0 и X0 - оптимальные решения этих задач.
Крайними точками допустимого множества U1 являются точки вида
U(i) = (0, ... , u(i) = s(i), 0, ... ,0), а также их линейные комбинации вида
к
(3.3.6) Ya(j)U(i) , где a(j) = 1, к < n, U(l) ?U(r),
j=1
не нарушающие условие допустимости (3.3.5) множества U1 (если при k=n линейная комбинация является допустимой, то нет дефицита финансового ресурса B и, соответственно, нет задачи). Но в этом случае (a(j)=1, к < n) условие допустимости (3.3.5) всегда выполняется как строгое неравенство (за исключением случаев, когда все u(i)=s(i) кратны В). Это означает, что практически всегда происходит недоиспользование финансового ресурса В.
Для достижения полного использования финансового ресурса В можно применить следующее построение.
Допустим, что в сумме (3.3.6) присутствует единственное слагаемое, для которого имеет место a(j) < 1, такое что если в этом слагаемом заменить a(j) < 1 на a(j) = 1, то нарушится условие допустимости (3.3.5).
Предположим, что j=k и покажем, что в качестве а(к) может быть выбрано
B - j(1 - d(i))s(i)
(3.3.7) а(к) = ^
(1 - d(k))s(k)
Возможность выбора а(к), удовлетворяющего условию (3.3.7) базируется на допущении, что любая цена P1, 1 =1,n, входящая в выражение (3.3.3) для s(i), пренебрежимо мала по сравнению с B, т.е. P1 = 0(B). С практической точки зрения это допущение может означать нежесткость финансового ограничения (3.3.5), т.е. всегда есть дополнительный финансовый ресурс, чтобы закупить 1 единицу товара по цене P1, какой бы эта цена не была.
Покажем, что решением вышеприведенной ЗЛП является вектор U*:
UT* = (u(1)*=s(1), u(2)*=s(2), ..., u(k)*=a(k)s(k), u(k+1)*=0, t ..., u(n)*=0),
где U * - вектор-строка, соответствующий вектору-столбцу U*, а a(k) задается соотношением (3.3.7).
Решением ДЗЛП является вектор X* размерности n+1:XT* = (x(1)*=0, x(2)*=d(1), x(3)*=d(2), ..., x(k+1)*=a(k)d(k), x(k+2)*=0, ..., x(n+1)*=0).
Можно легко проверить, что для заданных векторов U* и X* выполняется соотношение
CTU* = XT*A0,
откуда по теореме 3.3.2: U* и X* - оптимальные решения прямой и двойственной ЗЛП, соответственно.
Поскольку коэффициент a(k) имеет специальный вид (3.3.7) то, нетрудно видеть, что условие допустимости (3.3.5) выполняется как равенство в виде:
Х(1 - d(i))u(i)* = B
i=1
u(1)* = s(1) u(2)* = s(2)
(3.3.8) u(k)* = a(k)s(k) < s(k)
u(k+1)* = 0
u(n)* = 0.
Полученное нами решение представлено в параметрической форме, т.е. существует некоторое множество решений, соответствующее различным перестановкам элементов внутри вектора U*, сохраняющим справедливость условий (3.3.8) через выполнение соотношения (3.3.7) для, вообще говоря, различных k. Также следу-ет отметить, что вектор U* может содержать не только k первых, но, вообще говоря, k любых ненулевых элементов, удовлетворяющих условиям (3.3.7) и (3.3.8).
Для того, чтобы получить решение задачи для конкретных значений u(i)*, u(j)*, т.е. определить: какие u(i)* #0, а какие u(j)* = 0, нам необходимо воспользоваться дополнительной информацией, содержащейся в ее условиях. Попытаемся использовать знание соотношений между коэффициентами d(i) для нахождения вектора U** из множества U всех допустимых векторов U*, который и будет решением задачи (3.3.4) при соблюдении условий (3.3.8) в виде:
n
(3.3.9)
при условиях
F(D,U*) = ^d(i)и(/\')* ® max
(3.3.10) ?(1 - d(i))u(i)* = B
i=1
u(1)* = s(1) u(2)* = s(2)
(3.3.11) u(k)* = a(k)s(k) < s(k)
u(k+1)* = 0 u(n)* =0.
где вектор U* может иметь не только к первых, но, вообще говоря, к любых ненулевых элементов, и удовлетворяет условиям (3.3.8).
Вектор U** будем искать непосредственно в виде (3.3.11), т.е. в виде u(i)** #0, i=1,k; u(j)** = 0, j= k+1,n.
Решение.Упорядочим путем соответствующих перестановок множество D = {d(1), d(2), ... , d(n)} так, что d(1)> >d(2)>... >d(n) (случай > более сложный, и его мы рассматривать не будем). Полученное таким образом множество обозначим буквой D. Множество D является упорядоченным множеством. Для элементов D, очевидно, справедливо: 1-d(1)<1-d(2)<...<1-d(n). Выделим из D подмножество D1, к1, состоящее из первых k1 элементов этого множества:
D1,k1 = {d(1), d(2), ... , d(k1)} с D так, что kl
?(1 -d(i)) u(i) = B
i=1
где u(i) - i-компонента вектора U*1, kl , который получается из вектора U* , теми же перестановками, что и множество D из множества D и содержит только kl первых его элементов. Т.е. если i-элемент множества D переходит в /-элемент подмножества D1,k1, то и i- компонента вектора U* переходит в /-компоненту вектора U*l,kl (при / < kl).
Кроме подмножества D1,k1 и вектора U*1, kl без потери общности будем рассматривать только упорядоченные подмножества и вектора вида Dj,k(j,r) и U*j,k(j,r). Подмножество Dj,k(j,r) получается из множества D путем выборки из этого множества k(j,r) элементов, начиная с j-го элемента (при выборке допускаются пропуски), с выполнением условия аналогичного условию (3.3.12) в виде:
k( j,r)
?(1 - d(i)) u(i) = в
i=1
r - номер выборки, где re {1, ...,R(j)}, а R(j) - общее количество выборок такого вида, начинающихся с j-го элемента множества D. Вектор U*j,k(j,r) получается аналогичным образом. Теорема 3.3.3.
F(Dl,kl;U*l,k) = max F(Dj,k(j,r);U*j,k(j,r)), где re {1,...,R(j)}.
Для доказательства теоремы нам необходимо показать, что
kl
?dt (D1,k1)ui (U* 1,k1) >
> ? di(Dj,k(j,r))Ui(U*j,k(j,r))
i=j
Vre(1,...,R(j)},
где di( •,•) = d(i, •, •), ui( •,•) = u(i, •, •), и либо j&1, либо k(j,r) #k1.
Рассмотрим два подмножества: D1,k1 с D и любое подмножество вида Dj,k(j,r) cD. Допустим, что l элементов этих подмножеств совпадают (для полностью несовпадающих элементов доказательство является более простым).
Произведем перестановку элементов подмножеств D1,k1 и Dj,k(j,r) следующим образом:
В качестве первых l элементов каждого из подмножеств возьмем их совпадающие элементы, расположенные в порядке убывания.
На оставшихся, соответственно k1-l для подмножества D1,k1 и k(j,r)-l для подмножества Dj,k(j,r), позициях расположим оставшиеся (несовпадающие) элементы этих подмножеств, беря их также в порядке убывания. Вновь образованные подмножества будем обозначать D1,k1 и Dj,k(j,r)
Правило определения номера r задавать не будем.
Для первых l элементов подмножеств Dj,k(j,r) и D1,k1 имеет место:d1(D1,k1) = d1(D1,k(1,r)), d2(D1,k1) = d2(D1,k(1,r)), ..., dt(D1,k1) = dt(D1,k(1,r)).
В качестве примера подмножеств D1,k1 и Dj,k(j,r) рассмотрим следующие подмножества (совпадающие элементы подмножеств подчеркнуты):
D1,k1 (k1=15): 0.59 .58 .57 .56 .55 .54 .53 .52 .51 0.50 .49 .48 .47 .46 .45, Dj,k(j,r) (j=5, k(5,r)=13): 0.55 .54 .53 .50 .49 .48 .33 0 .32 .31 .30 .29 .25 .21
Множества D1,k1 и Dj,k(j,r) = D5,k(5,r) соответственно будут иметь вид:
D1,k1: 0.55 .54 .53 .50 .49 .48 .59 .58 .57.56.52 .51 0 .47.46.45 .
Dj,k(j,r): 0.55.54.53.50.49.48.33.32.31.30.29.25.21 .
Согласно правилам (1)-(2) произведем также перестановку элементов векторов U*j,k(j,r) и U*1,k1, в результате получим вектора
U*j,k(j,r) и U*l,kl , для первых l элементов которых будут иметь место соотношения:
ul(U*l,kl) = ul(U*j,k(i,r)). u2(U*l,kl) = = u2(U*j,k(j,r)), ..., ul(U*l,kl) = ul(U*i,k(i,r)).
Далее введем обозначение:
l l
?dt (D1, k1)ui (U* 1,k1) = ?dt (D1, k(1, r))ui (U* 1, k(1, r)) = F1 i=1 i=1
Таким образом, для доказательства теоремы нам необходимо показать, что
kl
Fl + ?di(Dl,kl)ui(U*l,kl) > (3.3.15) \'=l+1
V \' k(l,r)
Fl + ? di(Dl,k(l,r))ui(U*l,k(l,r))
i=l+1
или, что то же самое, kl
i=l+1
е, kl
?di(Dl,kl)ui(U*l,kl) >
(3.3.16)
v 7 klr)
r))ui(Ul,k(l,r))
i=l+1
? di (Dl, k(l,
Введем обозначение:
l
?( 1 - di(Dl,kl))ui(U* l,kl) =
i =1
?( 1 - di(Dl,k(l,r)))ui(U\' l,k(l,r)) = Bl
i =1
Тогда в силу (3.3.12) и (3.3.13):
kl
?( 1 - d (Dl, kl))u(U*l, kl) =
(3.3.17) i=\'+1
k(l,r)
?( 1 - dl (Dl, k(l, r)))u(U* l, k(l, r)) = B - Bl
i=l+1
После вводных замечаний перейдем непосредственно к доказательству теоремы 3.3.3. Доказательство.
Разделим левую и правую части неравенства (3.3.16) на (3.3.17), получим:
? di(D1,k1)ui(U * 1,k1)
i=l+1 > B - B1
k(hr )
? di(D1,k(1,r))ui(U* 1,k(1,r))
i=l+1
B - B1
Или, что то же самое,
?di(D1,k1)ui(U * 1,k1)
i=l+1 >
к1
i=l+1 kl
?( 1 - di(D1,k1))ui(U * 1,k1)
(3.3.18)
1
? di(D1,k(1,r))ui(U\'1,k(1,r))
k(1,r)
?( 1 - di(D1,k(1,r)))ui(U* 1,k(1,r))
i=l+1
Обозначим
d = min{d(l+1), d(l+2),...,d(k)} с D1,k1;
d =max{d(l+1),d(l+2),...,d(k(1,r))} cD1,k(1,r). Очевидно в силу упорядоченности D1,k1 и D1,k(1,r):
d= d(k) cD1,k1, а d = d(l+1) cD1,k(1,r).
Также очевидно, в силу того, что только l элементов D1,k1 и D1,k(1,r) совпадают, имеет место
d > d,
и поскольку в силу условий задачи
0 < d(•) < 1, "i: n > i > 1,
и, очевидно,
1- d = max{1- d(l+1),1- d(l+2), ...,1-d(k)} = 1- d(k), {d(l+1), d(l+2),...,d(k)} cD1,k1, и
1-d =min{1-d(l+1),1-d(l+2),..,1-d(k(1,r))}=1-d(l+1), {d(l+1),d(l+2),..,d(k)} cD1,k(1,r),
то и
1-d > 1-d. Из (3.3.19) и (3.3.22) следует
? di(D1,k1)ui(U * 1,k1)
i=l+1 >
k1
?(1 - di(D1,k1))ui(U * 1,k1)
i=l+1
k1
(3.3.25)
? duUW)
i=l+1
k1
?(1 - d )u,(U * 1,k1)
i=l+1
а из (3.3.20) и (3.3.23) -
? dut(U* 1,k(1,r))
=1+1
P = *
? (1 - d)u (U* 1,k(1,r))
k _
i=l+1
(3.3.26) )
r))ut(U * 1,k(1,r))
_i=l+1
k(-
? di(D1,k(1,
Щ?)
? (1 - di(D1,k(1,r)))ui(U* 1,k(1,r))
i=l+1
Преобразуем правую часть неравенства (3.3.25):
k1
? dui(U * 1,k1)
?(1 - d)ui(U* 1,k1)
i=l+1
k1
(3.3.27)
d ? ui(U * 1,k1)
(1 - d)
(1 - d) ?u,(U\' 1,k1)
i=l+1
Побразуем левую часть неравенства (3.3.26):
k(l,r)_
? du(U\'l,k(l,r))
i=l+1
k(l,r) _
? (1 - d)u,(U\'l,k(l,r))
(3.3.28) \'=l+1
V 7 _k(l,r)
d ?ui(U* l,k(l,r))
i=l+1
— k(l,r) (1 - d) (1 - d) ?ui(U" l,k(l,r)) (1 d)
Из (3.3.21) и очевидного ограничения 0 < d, d < 1 следует (3.3.29) > d
(1 - d) (1 - d)
Откуда с учетом (3.3.25) и (3.3.26):
kl
? dt(Dl,kl)ut(U\'l,kl)
d
k >—=—>
kl (1 - d) (3.3.30) ?(1 - dt(Dl,kl))ut(U\'l,kl) \'
k(l,r)
- ? dl(Dl,k(l,r))ul(U\'l,k(l,r))
> d _ > i=l+1
(1 - d) k(\'\'r)
? (1 - dl(Dl,k(l,r)))ul(U\'l,k(l,r))
Откуда
i=l+1
kl
? di(Dl,kl)ui(U *l, kl)
?( 1 - di ( Dl, kl ))ui( U * l, kl)
(3.3.31)
i=l+1
k(l,r)
? di(Dl,k(l,r))ui(U\'l,k(l,r))
i=l+1
>
k(l,r)
? (1 - di(Dl,k(l,r)))ui(U\'l,k(l,r))
i=l+1
Но поскольку согласно (3.3.17):
kl
? (1 - d; (Dl, kl))U; (U*1,k1) =
i=l+1 k(1,r)
?(1 - di(D1,k(1,r)))ui(U* 1,k(1,r)) = B- Bi
i=l +1
т.е. знаменатели обеих дробей, стоящих в левой и правой частях неравенства (3.3.31), совпадают, то имеет место (3.3.16):
k1
?di(D1,k1)ui(U* 1,k1) >
i=l+1 k1:)
? di(D1,k(1,r))Ui(U* 1,k(1,r))
i=l+1
и справедливо соотношение (3.3.15). Далее с учетом инвариантности (3.3.14) по отношению к перестановкам (1)-(2), на основании которых из подмножеств D1,k1 и Dj,k(j,r) получаются подмножества D1,k1 и Dj,k(j,r), устанавливаем справедливость соотношения (3.3.14):
k1
?d,. (D1, k1 )u (U* 1, k1) >
i=1 kUs )
? dt (Dj, k(j, r))Ui (U *j, k(j,r))
i=J
и, следовательно, теорема доказана.
Мы доказали тот факт, что подмножество D1,k1 cD и соответствующий ему вектор U*1,k1 е Uk1 c U обеспечивают максимум функции (3.3.9) при условиях (3.3.10) и (3.3.11), где if1 cU и V - соответственно к1-мерное и «-мерное евклидовы пространства. При этом проекции вектора U*1,k1 на остальные п-к1 координатных осей U" равны нулю, т.е. имеет место:
U** = U*1,k1.
Проекции на оси 1,...к1-1 являются максимально допустимыми. Т.е. u(i)=s(i), i = 1,к1 — 1; а проекция на ось к1 задается соотношением
u(k1)=a(k1)s(k), где коэффициент а(к1) имеет вид (3.3.7) при к=к1, т.е. U*1,k1 и будет являться решением задачи (3.3.4) при ограничениях (3.3.5):
(3.3.32)
? D (DI, kl)ui (ui*, kl) = maxCTU ,
i=i
i=i
AU Рис. 3.3.1. Hf(D1,k1;U*1,k1): (1-d1)u1+(1-d2)u2^(1-d,4)u,-1+(1-d,)u,=B1 +(141)u+1+.414)ukfB ВДШ^Ш (1-d1)u1+(1-d2)u2^(1-df1)uf1+(1-d/)u/=B1 +(1-dM)uM+...+(1-dMAflx)=B На этих рисунках в целях упрощения (не требуется перехода от Dj,k(j,r) к Dj,k(j,r) и от D1,ki к D1,ki) и красоты изображения в ка- Решение задачи (3.3.9)-(3.3.11) и доказательство теоремы 3.3.3 могут быть проиллюстрированы рисунками 3.3.1 и 3.3.2, которые для наглядности исполнены в различных масштабах. честве подмножества Dj,k(j,r) представлено подмножество D1,k(1,r). На обоих рисунках по оси абсцисс (H) представлены скалярные произведения (3.3.12) и (3.3.13) в виде последовательно отложенных на этой оси входящих в них слагаемых. А по оси ординат (G) таким же образом представлены скалярные произведения, стоящие, соответственно, в левой и правой части неравенства (3.3.14). Соответственно, Gi и G2, H и H2 - текущие значения этих произведений. Рис. 3.3.2. Получим теперь решение рассматриваемой задачи в исходной постановке (3.3.1) - (3.3.2). В силу (3.3.3) имеем u(U*1,k1) = u(i)** = PjAuj** , i = i = 1,n . Откуда AU;** = u(i)**/Pb i = i = 1П . Найденные таким образом величины Au;** с учетом перестано-вок, указанных перед формулировкой теоремы 3.3.3, будут являться решением задачи (3.3.1)-(3.3.2). Отметим, что имеет место Auk1** = a(k1)Ask1, где величина a(k1) задается соотношением (3.3.7), и Auj** = 0, j = k1 +1, n а величины d; упорядочены перестановками (отсортированы) так, что имеет место d1 > d2 > ...>dn. Как уже указывалось выше, решение задачи (3.3.1)-(3.3.2) для случая > является более громоздким по сравнению со случаем (3.3.36) и здесь не представлено. Содержательная интерпретация решения (3.3.33)-(3.3.36) состоит в том, что при ограниченном в момент t0 величиной B финансовом ресурсе следует осуществлять закупки Au; для периода [t1,t2], руководствуясь следующими правилами, с тем, чтобы прибыль от продажи закупленных товаров была максимальной: Необходимо упорядочить товары в соответствии с убыванием рентабельности d; так, что будет иметь место соотношение (3.3.36). Следует производить закупку (осуществлять формирование заказа) товаров в порядке убывания рентабельности в объемах Au; = As;, где As; - дефицит товара i-го вида (недостаток товара i-го вида для покрытия спроса предстоящего периода [t1, t2]), до тех пор, пока для какого-то товара с номером k1 (номер получен товаром при упорядочивании согласно п. 1 настоящих правил) не будет нарушено первое из условий, входящих в (3.3.2), т.е. финансового ресурса уже не будет хватать для закупки (включения в заказ) товара k1 в полном объеме. Объем закупки товара с номером k1 определяется соотношением (3.3.34), т.е. товар k1 закупается на все финансовые средства из B, которые остались после закупки товаров с номерами от 1 до k1-1. Закупка товаров с номерами i=k1+1, n не производится. Графическая интерпретация полученного результата может быть также сделана с помощью рисунков 3.3.1 и 3.3.2, если на оси абсцисс (H) каждого из них нанести обозначение "Объем закупок" или "Использование финансового ресурса", или "Себестоимость", а на оси ординат (G) - "Прибыль". Сформулируем теперь полученный результат в виде краткого практического вывода. В условиях дефицита финансового ресурса необходимо производить закупку товаров различных видов в порядке убывания рен-табельности этих товаров.