Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Anylogic_Metod.doc
Скачиваний:
28
Добавлен:
05.11.2018
Размер:
2.21 Mб
Скачать

3.2. Розв’язання задач керування запасами

Цей напрямок вимагає обліку різних змінних, зокрема попиту на конкретні товари, а також норм випуску й часу поставки. Сполучення цих змінних в одній моделі дозволяє керівникові розглянути кілька варіантів зберігання запасів. Так, за допомогою методів моделювання можна оцінити й порівняти необхідний рівень запасів, необхідну точку замовлення, терміни й періодичність поставок, а також виробничі графіки.

Приклад 2.

Розглянемо модель управління запасами з миттєвим поповненням запасу при відсутності дефіциту.

С1, якщо у < q,

Нехай ціна одиниці товару =

C2, якщо yq,

де С1 > C2; q – розмір замовлення, при якому надається знижка.

Тоді сумарні витрати за цикл, крім витрат оформлення замовлень і зберігання запасу, мають включати витрати придбання:

TCU1(y) = C1 + k/y + hy/2, якщо y < q,

TCU2(y) = C2 + k/y + hy/2, якщо y q.

Витрати

1

2

3

ут

q1

TCU1

TCU2

у

Рис.13.

Не зважаючи на вплив зниження цін, позначимо ут – розмір замовлення, при якому досягається мінімум величин TCU1 і TCU2. тоді

_____

ут = 2k/h.

З вигляду функцій TCU1 і TCU2 (рис.5) видно, що оптимальний розмір замовлення у* залежить від того, де по відношенню до наведених зон (1, 2 і 3) знаходиться точка розриву ціни q. Ці зони знаходяться в результаті визначення q1 ( > ym) з рівняння

TCU1(ут) = TCU2(q1).

_____

Оскільки значення ут відоме (ут = 2k/h), можна визначити q1 з попереднього рівняння.

Зона І: 0  q < ym;

Зона ІІ: ут  q < q1;

Зона ІІІ: q  q1.

На рис.7 показано графічне рішення рівняння в залежності від того, в якій зоні розташовано q.

Алгоритм визначення у*

1. Визначити ут = 2k/h. Якщо q < ym (зона 1), то у* = ут і алгоритм закінчується.

2. Визначити q1 з рівняння TCU1(ym) = TCU2(q1); встановити, у якій зоні знаходиться величина q.

а) якщо ут  q  q1 (зона 2), то у* = q;

б) якщо q  q1 (зона 3), то у* = ут.

Розглянемо модель управління запасами при таких вихідних даних: k = 10 у.о., h = 1 у.о.,  = 10 од., С1 = 2 у.о., С2 = 1 у.о. і q = 15 од.

Витрати

TCU1

TCU1

min

TCU2

TCU2

q

q1

ym

у

у

q

q1

ym

q – у 1-й зоні, у* = ут q – у 2-й зоні, у* = q

Витрати

TCU1

у

q

q1

ym

TCU2

q – у 3-й зоні, у* = ут

Рис.14.

Побудуємо модель в середовищі AnyLogic

Використовуючи палітру  Диаграмма действий побудуємо діаграму нашої задачі:

  1. Помістимо в робочу область проекту блок Диаграмма действий (actionChart) і у властивостях «Аргументы» задамо всі змінні і їх типи, які будуть використовуватись в діаграмі. Слід зазначити, оскільки наша діаграма дій має повертати значення сумарних витрати на одиницю часу, тому у властивостях «Тип возвращаемого значения» слід вибрати double (Рис.15).

  2. Для присвоєння значення заданих даних і обчислення ym, розмістимо на діаграму блок Код і у властивість «Код» впишемо наступним код: «k=10;h=1;b=10;c1=2;c2=1; q=15;ym=sqrt(2*k*b/h)» (Рис.16)

Рис.15. Оголошення змінних моделі

Рис.16. Внесення коду моделі.

  1. Для забезпечення виконання фрагментів коду у відповідності до умови помістимо в нашу модель блок Решение (If.. Else) і у властивостях «Условие» задаємо: q<=ym (Рис.17)

Рис.17 Задання умови виконання фрагменту коду

  1. Використовуючи вище описані блоки побудуємо діаграму дій розв’язку задачі(Рис.18):

  2. В блоці Вернуть значение (Return) у властивості «Возвращаемое значение» слід вказати змінну TCU­ - ­значення сумарних витрати на одиницю часу.

Рис.18 Діаграма дій розв’язку задачі

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]