183622 (584741)
Текст из файла
Программа имитационного моделирования работы банка
Содержание
1. Постановка задачи 3
2. Метод решения задачи 4
3. ПРОГРАММНОЕ РЕШЕНИЕ 6
4. Инструкция пользователю 7
5. РУКОВОДСТВО ПРОГРАММИСТА 8
6. ПРИЛОЖЕНИЕ А – «Блок-схема имитационного моделирования работы банка» 9
-
Постановка задачи
В современном мире гарантией эффективной работы любого предприятия служит рациональное использование денежных средств и трудового фактора. Так для расчета экономического эффекта работы банка необходимо провести имитационное моделирование на основании предварительно установленных зависимостей.
Допустим, что клиенты в банк прибывают с интервалом, исчисляемым в минутах (см. рис. 1).
t
800






Рис. 1 – «Приход клиентов в банк»
Приход клиентов в банк описывается пуассоновским потоком с интенсивностью r, который определяется следующим образом:
(1.1)
где: r – интенсивность потока;
k – время между приходами клиентов.
Параметр k может принимать дискретные значения от нуля до бесконечности. Причем k=0 означает приход сразу двух клиентов.
Предположим, в банке имеется N касс. Математическое ожидание обслуживания клиентов в банке обозначим . Обслуживание клиентов у касс происходит по экспоненциальному закону распределения случайной величины
(
- время обслуживания клиентов) с плотностью распределения
:
(1.2)
Примечание:
Если в банке есть свободные кассы, то клиент становится на обслуживание к ближайшей из них (т.е. к кассе с минимальным номером). Если все кассы заняты – клиент становится в очередь к той кассе, где очередь минимальна. Если очереди одинаковы, то клиент становится в любую из них.
Для решения поставленной задачи необходимо разработать алгоритм имитационного моделирования работы банка за восьмичасовой рабочий день. А также определить время простоя касс и количество клиентов в очереди не обслуженных на момент закрытия банка.
-
Метод решения задачи
Имитационное моделирование на ЭВМ процесса функционирования автоматизированной системы управления работой банка позволяет получить численное решение поставленной задачи. Суть рассматриваемого приближенного метода решения состоит в проведении ряда случайных испытаний вероятностной модели исследуемой системы и получении совокупности реализаций случайных процессов изменения состояния.
В результате многократной реализации случайных процессов определяются оценки вероятности тех или иных событий и средние значения случайных величин. Имитационное моделирование связано с необходимостью воспроизведения случайных событий и величин, распределенных по произвольному закону. Существует несколько способов генерации случайных величин и формирования их распределений. Модель системы управления работой банка включает в себя:
-
Приход клиентов в банк
;
-
Время обслуживания клиентов у касс
.
По условию поставленной задачи приход клиентов в банк описывается пуассоновским потоком с интенсивностью r. Для лучшего понимания сути распределения Пуассона необходимо знать основные определения:
Интенсивность потока – среднее число событий, которое появляется в единицу времени.
Поток – последовательность событий, которые наступают в случайные моменты времени.
Закон распределения Пуассона выражается формулой (1.1).
Будем моделировать интервал времени между двумя последовательно зашедшими в банк клиентами методом Монте-Карло с датчиком случайных чисел на интервале [0 - 1].
Совокупность независимых случайных событий, образующих полную группу, характеризуется вероятностями появления каждого из событий
, причем
. Для моделирования этой совокупности случайных событий используется генератор случайных чисел, равномерно распределенных в интервале [0 - 1]. При делении отрезка [0 - 1] на n частей, численно равных
, возникновение события
устанавливается путем определения нахождения случайного числа Х в пределах интервала при проверке условия
, где
изменяется от нуля до n. При
имеем
; при
имеем
и так далее. При подстановке
в формулу (1.1) получим:
;
;
и так далее.
Причем (мин.) – максимальное количество ожидания клиентов.
Так как опыт проводится многократно, то, очевидно, что частота попадания случайных чисел на каждый из отрезков, определяющихся их длиной, и соответствует полученным вероятностям.
Моделирование времени обслуживания клиентов у касс происходит по экспоненциальному закону распределения, формула которого представлена выше (формула (1.2)).
Время обслуживания клиентов , как и любая иная случайная величина, описывается функцией распределения
, определяемая как вероятность
случайного события, заключающегося в том, что время обслуживания клиентов
меньше некоторого заданного времени
:
Эта вероятность рассматривается как функция во всем диапазоне возможных значений величины
. Функция распределения любой случайной величины является неубывающей функцией времени
. Примерный вид функции
дан на рисунке 3.
Рис. 3 – «Функция распределения экспоненциального закона»
Так как значения не могут быть отрицательными, то
. При
величина
стремится к единице. Таким образом, функция распределения времени обслуживания клиентов:
(1.3)
где - параметр распределения (среднее время обслуживания клиентов у кассы).
Соответственно плотность распределения:
(1.4)
Для моделирования времени обслуживания клиента у кассы проинтегрируем функцию распределения :
(1.5)
От датчика случайных чисел равномерно распределенных на интервале [0 - 1] получаем очередное число Х, которое подставляем в формулу (1.5) и вычисляем :
(1.6)
Из соотношения (1.6) найдем соответствующее Х, которое будем принимать за случайное число, обозначающее время обслуживания данной кассой.
-
ПРОГРАММНОЕ РЕШЕНИЕ
Программа имитационного моделирования работы банка написана на языке C с помощью среды разработки Borland C++ 3.1.
Исходный текст программы состоит из следующих файлов:
– main.c – содержит реализацию основных функций программы:
void ZovnVydProg (void) – перерисовка интерфейса программы;
void InZminnyh (void) – очистка переменных;
void Zapusk (void) – прием входных данных и их обработка.
Данный файл содержит так же описание используемых глобальных переменных.
– main.h – файл содержит прототипы основных функций, реализованных в файле main.c, а так же прототипы функций вычисления, реализованных в файле engine.c;
– engine.c – файл содержит реализацию функций вычисления:
ZVIT* Obchyslennya (void) – функция, содержащая основной цикл вычисления;
void KorChasuObsl (void) – коррекция времени обслуживания каждого клиента;
int TObsl(void) – моделирование времени обслуживания для очередного клиента;
int MinCherga (void) – определение номера кассы с минимальной очередью;
void DobKlUChergy (void) – постановка клиента в очередь, либо к свободной кассы;
int Ksi(void) – моделирование времени прихода очередного клиента;
-
Инструкция пользователю
-
Программа имитационного моделирования работы банка расположена по следующему адресу:
С:\П – 00 – 51\К&F\Bank.exe
-
На запрос программы:
« Введите количество касс : »
Вводим предполагаемое (данное) количество касс обслуживающих клиентов.
-
На запрос программы:
« Введите интенсивность потока r: »
Вводим r - интенсивность потока, равную среднему числу событий, которые появляются в единицу времени.
-
На запрос программы:
« Введите параметр распределения lambda: »
Вводим равное среднему времени обслуживания клиентов у кассы.
-
На запрос программы:
« Введите максимальное время ожидания клиента: »
Вводим k равное максимальному времени в минутах ожидания клиентов.
-
РУКОВОДСТВО ПРОГРАММИСТА
Несмотря на то, что программа предназначена для создания имитационной модели работы банка, она также может использоваться для других целей, к примеру, для моделирования работы магазина. Вследствие этого может возникнуть необходимость в модернизации или изменении программы.
– Для изменения продолжительности рабочего дня необходимо изменить значение константы WORK_TIME, описанную в файле engine.c;
– Для изменения закона распределения, использующегося для моделирования времени прихода следующего клиента необходимо изменить содержимое функции int Ksi(void), подставив в тело реализацию необходимого распределения;
– Для изменения закона распределения, использующегося для моделирования времени обслуживания клиента кассиром необходимо изменить содержимое функции int TObsl(void), подставив в тело реализацию необходимого распределения;
– В случае возникновения необходимости ввода времени работы банка пользователем при каждом запуске программы необходимо сделать следующие изменения:
-
Добавить название соответствующего поля ввода к массиву названия полей *ZagolPol[];
-
Добавить окно поля ввода в функцию void ZovnVydProg(void);
-
Увеличить верхнюю границу счетчика в цикле перерисовки названий полей функции void ZovnVydProg (void);
-
Добавить соответствующий обработчик в функцию void Zapusk(void);
-
В файле engine.c изменить строку #define WORK_TIME 8*60 строкой #define WORK_TIME timevar, где timevar – имя переменной, содержащей введенное пользователем время работы банка;
– В случае возникновения необходимости получения более детальной информации о работе банка необходимо добавить соответствующие переменные в структуру ZVIT и обеспечить заполнение этих переменных значениями в соответствующих функциях.
-
П
начало
Ввод r, k,
t=0
t::=0
tкл::=0
Stпр::=0
да
да
Поставить клиента к кассам или в очередь
нет
t=0
да
Скорр-ть, выч-ть простой касс Stпр
2
Скорр-ть время обслуж-я у касс
Передвинуть очередь
1
РИЛОЖЕНИЕ А – «Блок-схема имитационного моделирования работы банка»
t::=t+1


1




Процедура постановки клиента в очередь
Блок схема корректировки времени обслуживания клиентов у касс и продвижения очереди.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.