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


Тема: Создание имитационной модели бизнес — процесса «Эффективность предприятия»

Цель: на примере имитационной модели «Эффективность предприятия» решить оптимизационную задачу, используя методы регрессионного анализа

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

Рассмотрим модель бизнес-процесса предприятия (небольшой компании). Предприятие занимается выпуском товара небольшими партиями. Размер партии известен. Имеется рынок, где эта продук­ция продается. Размер партии покупаемого товара в общем случае — случайная величина.

 Создание имитационной модели бизнес - процесса

Рисунок1-Схема бизнес-процесса «Производство», hold, rels- управление запретами (разрешениями)

Структурная схема бизнес-процесса содержит три слоя. На двух слоях расположены автономные процессы «Производство» (рисунок 1) и «Сбыт» (рисунок 2), схемы которых независимы друг от друга (нет путей для передачи транзактов).

Схема процесса реализации продукции

Рисунок 2- Схема процесса реализации продукции «Сбыт»

Опосредованное взаимодейст­вие этих процессов осуществляется только через ресурсы: матери­альные ресурсы в виде готовой продукции и денежные ресурсы (в основном через расчетный счет).

Управление денежными ресурсами происходит на отдельном слое — в процессе «Денежные операции» (рисунок 3).

Схема управления потоками

Рисунок 3- Схема управления потоками «Денежные операции»

Данная модель позволяет решать следующую оптимизационную задачу, используя, например, методы регрессионного анализа. Вве­дем целевую функцию: время задержки платежей с расчетного счета Tрс. Основные управляющие параметры — это цена единицы продук­ции, объем выпускаемой партии, сумма кредита, запрашиваемого в банке. Зафиксировав все остальные параметры (время выпуска пар­тии, число производственных линий, интервал поступления заказа от покупателей, разброс размеров продаваемой партии, стоимость комплектующих изделий и материалов для выпуска партии, старто­вый капитал на расчетном счете), можно минимизировать Tрс для конкретной рыночной ситуации. Минимум Тpc достигается при од­ном из максимумов среднего размера денежной суммы на расчетном счете. Причем вероятность рискового события — неуплаты долгов по кредитам — близка к минимуму (это можно доказать во время стати­стического эксперимента с моделью).

Первый процесс «Производство» реализует основные элементар­ные процессы. Узел 1 имитирует поступления распоряжений на из­готовление партий продукции от руководства компании. Узел 2 -попытка получить кредит. В этом узле появляется вспомогательный транзакт — запрос в банк. Узел 3 — ожидание кредита этим запросом. Узел 4 — это администрация банка: если предыдущий кредит воз­вращен, то предоставляется новый (в противном случае запрос ждет в очереди). Узел 5 осуществляет перечисление кредита на расчетный счет компании. В узле 6 вспомогательный запрос уничтожается, но информация о том, что кредит предоставлен, — это «шлагбаум» на пути следующего запроса на получение другого кредита (операция hold).

Основной транзакт-распоряжение проходит через узел 2 без за­держки. В узле 7 производится оплата комплектующих, если на рас­четном счете есть достаточная сумма (даже если кредит не получен). В противном случае происходит ожидание либо кредита, либо опла­ты продаваемой продукции. В узле 8 транзакт становится в очередь, если все производственные линии заняты. В узле 9 осуществляется изготовление партии продукции. В узле 10 возникает дополнитель­ная заявка на возврат кредита, если ссуда ранее была выделена. Эта заявка поступает в узел 11, где происходит перечисление денег с расчетного счета компании в банк; если денег нет, то заявка ожида­ет. После возврата кредита эта заявка уничтожается (в узле 12); в банке появилась информация о том, что кредит возвращен и ком­пании можно выдать следующий кредит (операция rels).

Транзакт-распоряжение проходит узел 10 без задержки, а в узле 13 он уничтожается. Далее считается, что партия изготовлена и по­ступила на склад готовой продукции.

Второй процесс «Сбыт» имитирует основные функции по реали­зации продукции. Узел 14 — это генератор транзактов-покупателей продукции. Эти транзакты обращаются на склад, и если там есть за­прашиваемое количество товара, то товар отпускается покупателю; в противном случае покупатель ждет. Узел 16 имитирует отпуск това­ра и контроль очереди. После получения товара покупатель пере­числяет деньги на расчетный счет компании (узел 17). В узле 18 по­купатель считается обслуженным; соответствующий ему транзакт больше не нужен и уничтожается.

Третий процесс «Денежные операции» имитирует проводки в бухгалтерии. Запросы на проводки поступают с первого слоя из уз­лов 5, 7,11 (процесс «Производство») и из узла 17 (процесс «Сбыт»). Пунктирными линиями показано движение денежных сумм по счету 51 («Расчетный счет», узел 20), счету 60 («Поставщики, подрядчи­ки», узел 22), счету 62 («Покупатели, заказчики», узел 21) и по счету 90 («Банк», узел 19). Условные номера примерно соответствуют плану счетов бухгалтерского учета.

Узел 23 имитирует работу финансового директора. Обслужен­ные транзакты после бухгалтерских проводок попадают обратно в те узлы, откуда они поступили; номера этих узлов находятся в пара­метре транзакта t->updown.

Ниже приведен текст модели:

#include <Pilgrim.h>

forward

{

float T_cust=7; // Интервал поступления заказов

float T_work=14; // Время выполнения заказа

float З_bank=10000.00; // Сумма кредита в банке

float S_supp=10000.00; // Сумма платы поставщику

float The_price=90.00; // Цена единицы продукции

float Mod_time=730; // Моделируем 2 года

int N_work=2; // Мощность фирмы

int Max=1200; // Объем партии продукции

modbeg("Бизнес-процесс",23,Mod time,

(long)1234567890,none,20,none,18,none);

ag("Заказы",1,none,norm,T_work,0,zero,2);

ag("Клиенты",14,none,norm,T_cust,T_cust/3, zero,15);

assign(19,add,10000000.00); // Фонд банка

assign(20,add,0.00); // Фонд фирмы

assign(21,add,10000000.00); // Фонды клиентов

network(dummy,dummy)

{

//==============================

// Слой: процесс «Производство»

//==============================

top( 2):creat("Развилка 1",0,l,none,3,7);

place;

top( 3):queue("Ждём кредит !",none,4);

place;

top( 4):key("Разреш. кредита",5);

place;

top( 5):pay("Перевод кредита",20,S_bank,19, none,19,6);

place; //На слой № 2: банк

top( 6):term("Запрет выдачи");

hold(4);

place;

top( 7):pay("Плата поставщ.",22,S_supp,20, none,20,8);

place; //На слой № 2: Р/счет

top( 8)rqueue("Очередь заказов",none,9);

place;

top( 9):зегу("Выполн. заказа",N work,none,norm, T_work,zero,zero,10);

place;

top(10):creat("Развилка 2",0,l,none,11,13);

place;

top(11):pay("Возврат кредита",19,S_bank,20, none,20,12);

place; /* На слой № 2: Р/счет

top (12) :term("Pa3pein. выдачи");

rels(4) ;

place;

top (13) :term("3aKa3 выполнен");

clcode

supply (15, none, Max) ;

place;

// =====================

// Слой: процесс «Сбыт»

//========================

top(15) : t->powr=rundum() *100;

// Объем закупаемой партии

t->summ=t->powr*The_price;

// Стоимость этой партии

attach ( "Склад гот.прод.",

t->powr,prty, 16) ;

place;

top (16) :manage ("Отпускаем товар", 17) ;

place;

top(17) :pay ("Оплата покупки",20,

t->summ, 21/none, 21, 18) ;

place; // На слой № 2: счет покупателя

top (18) : term ("Товар оплачен") ;

place;

//==========================

// Слой: процесс «Денежные операции»

//=============================

top(19) :send("Бaнк: 90", t->k1,t->summ,

t->dpr,23);

place;

top(20) : send ("Расч. счет: 51", t->kl, t->summ,

t->dpr,23);

place;

top ( 21 ): send ("Клиент: 62", t->kl, t->summ,

t->dpr,23);

place;

top ( 22 ) : send ( "Поставщик : 60 ", t->kl , t->summ,

t->dpr,23); place;

top (23) : direct ("Бухгалтерия", t->updown) ;

place; // Возврат на верхний слой

//============================

// "Дно" структурной модели

//============================

fault (123);

}

modend( "Results. doc", I, 30, page) ;

return 0;

}

Результаты моделирования, полученные автоматически после одного прогона модели, показаны в таблице 1.

Таблица 1

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

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

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

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

1. Каким образом осуществляется взаимодействие между различными процессами оптимизационной задачи?

2. Объясните логику моделирования в каждом из рассмотренных процессов.

3. Проанализируйте полученные результаты моделирования.

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

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

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

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

Загрузка...