Лабораторная работа №5


Тема: Создание имитационной модели «Минимизация производственных затрат»

Цель: на примере имитационной модели «Минимизация производственных затрат» рассмотреть замкнутую информационную систему и возможности её реализации

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

Рассмотрим модель, которая относится к замкнутым имитаци­онным моделям. Предположим, что мы открыли собственную швей­ную фабрику «Мануфактура Ко». На этой фабрике есть швейный цех, где имеются 50 рабочих мест со швейными машинами. Машины выходят из строя и требуют ремонта. Поэтому на фабрике есть ре­монтный цех, в котором работают специалисты — наладчики машин (впервые эту задачу в упрощенной постановке Шрайбер решил с помощью имитационного моделирования на GPSS).

Среднее время безотказной работы одной машины 157,0 ч. Есте­ственно допустить, что это время — случайная величина, распреде­ленная по экспоненциальному закону в соответствии с предельной теоремой о суперпозиции потоков. Допущение основано на том, что машина — сложное устройство, состоящее из сотен деталей и узлов, которые могут выйти из строя. Среднее время ремонта машины равно 7,0 ч; среднеквадратичное отклонение времени ремонта — 3,0 ч. В соответствии с центральной предельной теоремой считаем, что время ремонта, состоящего из многих последовательных элементарных операций, распределено по нормальному закону.

Сформулируем следующую задачу: сколько нужно арендовать резервных машин j (дополнительно к 50 собственным) и сколько необходимо нанять наладчиков /’, чтобы сделать минимальными за­траты на производство, связанные с ремонтом и наладкой машин?

Все исходные данные для решения поставленной задачи сведены в таблице 1.

Сначала попытаемся решить эту задачу без применения имита­ционной модели. Допустим, что необходимо j дополнительных ма­шин, которые будем арендовать на каком-либо складе.

Нетрудно представить, что каждая машина находится в двух со­стояниях:

1) находится в швейном цехе и работает;

2) находится в ремонтном цехе, неисправна и ремонтируется на­ладчиками.

Таблица 1

Параметры швейной фабрики

Создание имитационной модели

Средняя длительность такого цикла равна 157 + 7 = 164. Поэто­му введем в рассмотрение полезную загрузку одной машины:

р = 157/164 = 0,957

Составим простое уравнение, показывающее, сколько нужно иметь дополнительных машин, чтобы все 50 мест не простаивали:

50=p(50+j).

Решение этого уравнения элементарно:

j=50(1-p)=2.15 (машины)

Однако решение должно быть целочисленным. Поэтому округляем в большую сторону и получаем целое число J=3. Время ремонта составляет 7 ч. Учитывая, что постоянно будут неисправны 3 машины, а рабочий день составляет 8 ч, наймем трех наладчиков, которые будут хорошо загружены в течение дня (два наладчика могут не справиться с потоком машин, поступающих в ремонт). Получим искомую величину I=3.

Если поступим в соответствии с полученным решением и, будем проводить натурное моделирование, собирая в течение длительного периода времени (не менее года) хронометрическую и финансовую информацию, то увидим, что решение, полученное выше, неверное.

Основная ошибка заключается в гипотезе о том, что машины находятся в двух состояниях, на самом деле таких состояний четыре (рисунок 1).

Основная ошибка

Рисунок 1- Иллюстрация к задаче оптимизации

производственных затрат

Выбранные выше состояния (исправная работа и ремонт) осуществляются в двух цехах: швейном и ремонтном. В начальный момент, при организации производства, все машины были исправны. Введем в рассмотрение следующие переменные, которые далее будут использоваться в модели:

· Nowon – количество рабочих мест в швейном цехе и соответственно количество собственных швейных машин;

· Arend – число арендуемых дополнительных машин для замены вышедших из строя;

· Men – количество наладчиков, производящих ремонт (наладку) швеных машин.

Отметим все значимые для задержек состояния в таблице 2. Таблица 2.

Состояния машин

Состояния машин

В начальный момент решено арендовать Arend машин. Эти ма­шины должны некоторое время находиться в каком-то помещении и «ждать», пока не выйдет из строя машина в цехе. Далее в процессе выхода из строя и восстановления машин в этом помещении будут находиться машины, число которых — случайная величина. Пребы­вание машин в этом помещении является состоянием 1. Пребывание машин в швейном цехе в исправности — состояние 2.

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

И, наконец, если подходит очередь ремонта неисправной маши­ны, она поступает в ремонтный цех. Ремонт — состояние 4 каждой машины.

Далее начнем строить имитационную модель. Наиболее рациональное решение заключается в том, чтобы выбрать машины в каче­стве транзактов. В таблице 2 приведены типы узлов, имитирующих соответствующие состояния. Количество каналов узла serv в состоя­нии 2 равно Nowon, а число каналов узла serv в состоянии 4 — это значение Men.

Единственная проблема, с которой мы немедленно столкнемся, заключается в том, что в данной замкнутой схеме нет генераторов транзактов. В связи с этим непонятно, откуда транзакты попадут в модель. Решение этой проблемы довольно простое: необходимо вве­сти в имитационную модель специальную часть, которая называется схемой зарядки. Рассмотрим эту схему и всю модель на рисунке 2.

Узлы с номерами 1 (queue), 2 (serv), 3 (queue) и 4 (serv) имити­руют пребывание машин в состояниях с соответствующими номера­ми. Эта замкнутая схема не требует дальнейших комментариев.

Далее рассмотрим схему зарядки, которая состоит из трех узлов: узел 5 (генератор ag), узел 6 (транзактно-управляемый генератор creat) и узел 7 (терминатор term со вспомогательным оператором cheg). Модельное время, в течение которого будем осуществлять эксперимент, задается переменной Protime. Если мы хотим, чтобы это время составляло 3 года, а единицей измерения установим 1 ч, то это время равно 6240,0 ч.

Узел ag генерирует первый транзакт через какой-либо заданный или случайный интервал времени tbeg. Этот интервал можно назвать временем подготовки производства. Сгенерированный первый транзакт (назовем его прародителем) войдет в узел creat. В результате из этого узла выйдут Nowon + Arend транзактов, которые поступят в узел 1.

Первые Nowon транзактов без задержки пройдут этот узел и по­ступят в узел 2; причем каждый транзакт-машина займет свой канал, т.е. рабочее место. Остальные Arend транзактов останутся в узле 1.

Что касается транзакта-прародителя, то он выйдет из узла creat и войдет в узел term. В этом узле перед уничтожением транзакт-прародитель выполнит операцию cheg для перенастройки генератора ag. Эта операция установит время генерации второго транзакта, рав­ное Protime. Учитывая, что с начала запуска модели уже прошло вре­мя tbeg, момент генерации второго транзакта будет равен Protime + tbeg (т.e. после выполнения модели). Это означает, что второй тран­закт не выйдет из генератора во время моделирования.

clip_image008

Рисунок 2- Структурная схема модели для решения задачи

минимизации производственных затрат

Далее перейдем к планированию имитационного эксперимента для определения рационального количества резервных машин и чис­ла специалистов-наладчиков. Возможность существования опти­мального решения вытекает из следующих предпосылок.

Нетрудно представить себе, что если число наладчиков мало или равно нулю, то машины в основном будут неисправны, а затраты на производство — велики из-за простоя рабочих мест. Если же число наладчиков очень велико, то будут большими затраты на заработ­ную плату (рисунок 3,а). Но при отсутствии наладчиков машины по­степенно выйдут из строя, а затраты из-за простоя рабочих мест бу­дут велики.

Что касается резервных машин, то, если их число мало или равно нулю, затраты на производство будут велики из-за простоя рабочих мест. Если же число арендуемых машин очень велико, то будут большими затраты на их аренду (рисунок 3,6).

Поэтому можно допустить гипотезу о наличии какой-то поверх­ности оптимизации затрат (рисунок 3,в). Однако, учитывая, что число на­ладчиков и количество машин — целые величины, эта поверхность включает в себя только точки с целочисленными координатами Men и Arend.

Интерпретация возможности минимизации затрат

Рисунок 3- Интерпретация возможности минимизации затрат:

а — зависимость затрат от числа арендуемых машин Arend при фиксированном числе наладчиков; б — зависимость затрат от числа наладчиков Men при фиксированном числе арендуемых машин;

Интерпретация возможности минимизации затрат

Рисунок 3- Интерпретация возможности минимизации затрат:

в — предполагаемая поверхность оптимизации

Необходимо найти минимальное значение на поверхности затрат Еij и соответственно значения координат iopt (переменная Men) и jopt (переменная Arend). He будем применять сложные методы поиска экстремальных значений на поверхности оптимизации затрат. Задача решается методом перебора, так как число возможных вариантов, которые необходимо сравнить, невелико. Однако в более сложных случаях требуется применять регрессионный анализ и строить по­верхность отклика 2-го порядка.

Первое, что нужно сделать при проведении имитационного экс­перимента, — это привести все времена и темпы затрат к одним еди­ницам измерения. С помощью таблицы 1 получим таблицу 3 со статья­ми ежедневных расходов на производство. В ней три строки. Обо­значим значение, указанное в каждой строке, как Ak, k= 1,2,3.

Таблица 3

Статьи ежедневных расходов Ak, (k= 1,2,3)

Статьи ежедневных расходов

Далее потребуется имитационная модель, схема которой была приведена на рисунке2. С ее помощью необходимо получить значения загрузки рабочих мест, например, с экрана.

Приведем текст модели.

#include <Pilgrim.h>

int Nowon = 50; // Число собственных машин

int Men =3; // Число наладчиков

int Arend =3; // Число арендуемых машин

float Protime = 6240.0; // Время прогноза 3 года

forward

{

modbeg("Мануфактура Ко",7,Protime,

(long)1234567890,none,1,none,none,1);

ag("Подг. произв.",5,none,none,1.0,zero,zero,6);

network (dummy, dummy)

{

top(l): queue("Резерв машин", none, 2);

place;

top(2): serv("Maiiiины в работе", Nowon, none, expo,157.0, zero,zero,3);

place;

top(3): queue("0жид. ремонта", none, 4);

place;

top(4): зегv("Машины в рем.",Men, none, norm,

7. 0,3.0,zero,1 );

place;

top(6): creat("Подгот. машин",none,

Nowon+Arend, copy,1,7);

place;

top(7): term("IIp-во готово");

cheg(5,none,none,Protime, zero, zero,7);

place;

fault (123);

}

modend ("Factory.doc",1,24,page);

return 0;

}

Построим матрицу загрузок для различных значений числа на­ладчиков и количества швейных машин. Элементы такой матри­цы обозначим Bij. Пример матрицы представлен в виде таблицы 4. Как было показано выше, в оценочном и не совсем верном расчете, по­иск оптимальных значений i и j можно начать со значений i = 3 и j = 3, пропустив меньшие значения (i — число наладчиков, i = 3, 4, 5; j — число арендуемых швейных машин: j = 3,4, 5).

Таблица 4

Загрузка рабочих мест Bij (получается с помощью имитационной

модели)

Загрузка рабочих мест

Далее определим ежедневные затраты на оплату труда наладчи­ков и аренду резервных машин. Для этого создадим еще одну мат­рицу (таблица 5) элементов Сij с той же размерностью, какая сущест­вует в таблице 4. Элементы этой матрицы определяются с помощью таблицы 3 из соотношения

Cij=A1i+A2j, I=3,4,5, j=3,4,5.

Таблица 5.

Затраты на оплату труда наладчиков и аренду резервных машин Сij

Затраты на оплату труда наладчиков

Перейдем к определению потерь из-за снижения объемов произ­водства по причине простоя рабочих мест. Для этого построим мат­рицу (таблицу 6) элементов Dij с той же размерностью. Элементы этой матрицы определяются с помощью таблиц 3 и 4. Элементы Bij, таблицы 4 — это загрузка оборудования р при конкретных значениях i и j. Поэтому справедливо следующее соотношение:

Dj=Nowon(1-Bij)A3, i =3,4, 5, j = 3,4, 5.

Таблица 6

Потери из-за снижения объемов производства Dti

Потери из-за снижения объемов производства

Последнее, что нужно сделать, — это определить суммарные ежедневные затраты на производство. Для этого построим матрицу с той же размерностью (таблица 7). Элементы матрицы обозначаются Еij и определяются поэлементным суммированием данных таблиц 5 и 6:

Еij=Сij + Dij, i = 3,4,5,j = 3,4,5.

Из таблицы 7 следуют оптимальные значения:

1) количество нанимаемых наладчиков iopt=4;

2) число арендуемых резервных швейных машин jopt = 3.

Таблица 7

Суммарные ежедневные затраты на производство Eg

Суммарные ежедневные затраты на производство

Если бы мы выбрали ранее ошибочно рассчитанные значения iopt= 3 и jopt= 3, то затраты ежедневно составляли бы не 322, а 571 долл. Различие в результатах в данном случае весьма значительно.

В таблице 8 представлен стандартный набор выходных данных, автоматически полученных во время прогона варианта имитацион­ной модели с конкретными значениями исходных данных.

Таблица8.

Результаты моделирования

Результаты моделирования

Контрольные вопросы:

1. Какие модели называются замкнутыми имитационными моделями?

2. Почему решение поставленной задачи без применения имитационного моделирования привело к получению ошибочных результатов?

3. Объясните, в каких состояниях могут находится швейные машины и почему?

4. При помощи приведённых таблиц объясните результаты моделирования.

5. К какому виду имитационных моделей относится данная модель?

К сдаче лабораторной работы №6 необходимо:

1. Смоделировать с помощью графического конструктора Pilgrim замкнутую имитационную модель «Минимизация производственных затрат».

2. Подготовить отчёт о проделанной работе.

3. Ответить на контрольные вопросы.

Загрузка...