Задача управления запасами при неудовлетворении спроса

Постановка задачи

Как правило, при неудовлетворении спроса на материалы и полуфабрикаты предприятие терпит убытки, характеризующиеся величиной Си на единицу ресурса в единицу времени. На протяжении времени tl каждого периода t уровень запаса достаточен для удовлетворения спроса, а затем в течение интервала t2 запас отсутствует, причем неудовлетворенный спрос покрывается из следующей с момента поступления ресурса на склад партии. Допустим, что потребность в материале составляет Q единиц за период Т. Требуется определить, каковы должны быть величина поставляемой партии S и размер потребной партии V, чтобы затраты на доставку и хранение с учетом неудовлетворенного спроса были минимальны.

^Выявление основных особенностей, взаимосвязей и количественных закономерностей

Обозначим через Сх затраты на хранение единицы ресурса в единицу времени, а через Cd - расходы на поставку партии материалов. При этом издержки на поставку одной партии не зависят от количества сырья в ней.

Рис. График образования и расходования материалов при неудовлетворении спроса

1рафически движение запасов при неполном удовлетворении спроса представлено на рис. 3.11.

По графику легко составить зависимости: tl/t=S/V, откуда tl=S-t/V; t2/t = (V-S)/V, откуда t2=t-(V-S)/V. Количество необходимых поставок для удовлетворения месячной потребности в материале п можно определить по формулам: nl=Tlt\ nl=Q/V.

.затраты на хранение одной партии материалов составят:

НЕ нашли? Не то? Что вы ищете?

Yx=Cx'S-tl/2.

Затраты на доставку одной партии материалов составят: Yd=Cd.

Убытки от недопоставки одной партии материалов составят: Yu=Cu'(V-S)-t2/2.

Решение задачи традиционными методами

Суммарные затраты на хранение, доставку и потери из-за неудовлетворенного спроса за период Т будут записаны так:

Y = Yx • п\ + Yd • п2 + Yu • п\ =

=Cx'S-t\ll'Tlt+Cd-QIV+Cu'{V-S)'ail-Tlt. Используя ранее полученные зависимости для tl и t2, получим:

Y = Сх • S' • Т/(2 • V) + Q - Cd/V +Си • (V-S)'- Т/(2 • V). Продифференцировав целевую функцию (критери^ оптимизации Y относительно искомых параметров S и V) и приравняв полученные частные производные dY/dS и dY/dV к нулю, получим: ЭУ/Э8 = Сх • S • T/V - Си ' (V - S) • Т/У - 0;

9 Так 164

3Y/3V = - Cx • S' ' T/(2 • V')- Cd • Q/V ' + Cu • (V' - S' )- T/(2 ' V' ) = 0 Решая систему уравнений, получим:

Sopt = У2 • Q • Cd -Си /(Cx • Т - (Сх + Си));

Vopt = V2 • Q - Cd (Сх + Си)/ (Т • Сх - Си).

Величина Си /(Сх+ Си) называется плотностью убытков из-за неудовлетворенного спроса.

Решение задачи с использованием системы Mathcad

Для построения математической модели в системе Mathcad сформируем начальное выражение критерия оптимизации, предварительно дав ему имя Y(S, V), а затем введем знак присваивания := (Shift+:) и само выражение (рис. 3.12) в таком виде:

Yx • п\ + Yd • п1 + Yu • п\.

Если в дальнейшем начальное выражение критерия оптимизации больше использоваться не будет, то его имя может совпадать с именем этой модели.

Последовательно введем составляющие критерия оптимизации, используя метод подстановок - оператор substitute (подставить).

Для ввода первого выражения выбираем пункт меню View (Вид) главного меню Mathcad. В появившемся падающем меню щелкнем по пункту Toolbars (Панели инструментов). В возникшем всплывающем меню выбираем пункт Symbolic (Символы). На панели инструментов Symbolic щелкнем по кнопке substitute. Появится шаблон оператора подстановки с метками, вместо которых введем первое выражение с жирным знаком равенства, например:

nl=T/t,

используя кнопку с этим знаком, расположенную на панели Evaluation (Вычисления), или комбинацию Ctrl+=. Затем снова щелкнем по кнопке substitute на панели Symbolic и введем второе выражение и т. д. до тех пор, пока все нужные выражения не будут размещены. Далее введем знак символического равенства, нажав комбинацию Ctrl+. (точка).

После этого воспользуемся клавишей Enter и получим развернутое выражение критерия оптимизации - искомую математическую модель (рис. 3.12).

Продифференцируем ее по искомым параметрам - S и V. Для этого сначала введем имена выражений, получаемых после дифференцирования математической модели Y(S, V), например: Zl:= Z2:= (рис. 3.13).

Далее щелкнем мышью по кнопке с изображением знаков интеграла и дифференциала на панели инструментов Math (Математика). Появится панель инструментов Calculus (Матанализ). Щелкнем по кнопке d/dx этой панели. На рабочем листе появится шаблон оператора дифференцирования

^ Рис. 3. ]2. Построение математической модели

1-е двумя метками для ввода искомой переменной и выражения. На месте ^нижней введем имя искомой переменной в нашей задаче - S, на месте вто-^ рой - имя дифференцируемой математической модели, например Y(S, V), 1или наберем ее выражение. Если дифференцируемой функции не было 1. присвоено имя, во избежание повторного набора математической модели 'его необходимо выделить с помощью комбинации Shift+стрелки и скопи-1ровать, применив сочетание Ctrl+lns, в буфер обмена. Затем, с помощью '.комбинации Ctrl+V или щелчка по кнопке с изображением портфеля на ; стандартной панели инструментов, установим математическую модель на вместо второй метки. Далее вставим знак символического равенства ^(стрелка вправо) - правая верхняя кнопка на панели Evaluation (Вычисление) - или воспользуемся комбинацией Ctrl+. (точка). Затем нажмем на клавишу Enter. Появится результат вычисления производной (рис. 3.13). ? В целях упрощения полученных после дифференцирования выражений ; используют встроенную функцию simplify (упростить), которая вызыва-'ется щелчком мыши по кнопке simplify на панели инструментов Symbolic .(Символы). После щелчка появится шаблон с меткой для ввода выражения.

Для решения системы уравнений аналитическим способом существуют два пути. Первый - применение блока функций Given... Find (Дано -

установить число строк по количеству искомых переменных и в поле Columns (Столбцы) - 1 столбец. Щелкнуть по кнопке ОК. На месте появившегося шаблона с метками ввести имена искомых переменных, затем нажать клавишу Enter;

а ввести знак равенства, щелкнув по кнопке со стрелкой вправо, расположенной в левом верхнем углу панели Symbolic (Символы), или нажав комбинацию Ctrl+. (точка).

Полученные после решения системы уравнений выражения можно упростить. Не все эти результаты отвечают реальности. Выберем положительные выражения и упростим их. Поскольку результаты решения системы уравнений даются в виде матрицы 2х2, то нужные решения извлечем как ее элементы. Для упрощения выражений используем встроенную функцию simplify (упростить), которая вызывается щелчком левой клавиши мыши по кнопке simplify на панели Symbolic. После щелчка появится шаблон с меткой для ввода выражения. На ее место помещаем элемент матрицы с соответствующими индексами, ввод которых производится после нажатия на клавишу с открывающейся квадратной скобкой и через запятую. Нумерация элементов матрицы начинается с нулевого индекса.

Рис. 3.13. Определение частных производных

найти). Второй - применение ключевого слова Solve (Решить). Ограничимся использованием второго пути, для чего необходимо (рис. 3.14):

а ввести, в случае необходимости, комментарии, нажав клавишу с двойной кавычкой;

а ввести оператор присваивания путем нажатия комбинации Shift+: (двоеточие). Появится шаблон оператора присваивания с метками;

а подвести указатель мыши к первой метке и ввести имя матрицы результатов решения системы уравнения, например, М;

а подвести указатель мыши ко второй метке в шаблоне присваивания и нажать комбинацию клавиш Ctrl+M. В поле Rows (Строки) появившегося диалогового окна Insert Matrix (Вставить матрицу) установить количество строк по числу уравнений и в поле Columns (Столбцы) - 1 столбец. Щелкнуть по кнопке ОК и на месте появившихся меток вектора ввести имена решаемых уравнений;

а напечатать ключевое слово Solve;

а напечатать запятую после слова Solve, затем появится дополнительная метка;

а создать вектор-столбец искомых параметров путем нажатия комбинации Ctrl+M. В поле Rows появившегося Matrixдиалогового окна