Контрольная работа на тему Программа имитационного моделирования работы банка
Работа добавлена на сайт bukvasha.net: 2014-07-03Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Программа имитационного моделирования работы банка
Содержание
1. Постановка задачи 3
2. Метод решения задачи 4
3. ПРОГРАММНОЕ РЕШЕНИЕ 6
4. Инструкция пользователю 7
5. РУКОВОДСТВО ПРОГРАММИСТА 8
6. ПРИЛОЖЕНИЕ А – «Блок-схема имитационного моделирования работы банка»_ 9
Содержание
1. Постановка задачи 3
2. Метод решения задачи 4
3. ПРОГРАММНОЕ РЕШЕНИЕ 6
4. Инструкция пользователю 7
5. РУКОВОДСТВО ПРОГРАММИСТА 8
6. ПРИЛОЖЕНИЕ А – «Блок-схема имитационного моделирования работы банка»_ 9
1. Постановка задачи
В современном мире гарантией эффективной работы любого предприятия служит рациональное использование денежных средств и трудового фактора. Так для расчета экономического эффекта работы банка необходимо провести имитационное моделирование на основании предварительно установленных зависимостей.Допустим, что клиенты в банк прибывают с интервалом, исчисляемым в минутах (см. рис. 1).
|
|
|
|
|
|
Рис. 1 – «Приход клиентов в банк»
Приход клиентов в банк описывается пуассоновским потоком с интенсивностью r, который определяется следующим образом:
где: r – интенсивность потока;
k – время между приходами клиентов.
Параметр k может принимать дискретные значения от нуля до бесконечности. Причем k=0 означает приход сразу двух клиентов.
Предположим, в банке имеется N касс. Математическое ожидание обслуживания клиентов в банке обозначим
Примечание:
Если в банке есть свободные кассы, то клиент становится на обслуживание к ближайшей из них (т.е. к кассе с минимальным номером). Если все кассы заняты – клиент становится в очередь к той кассе, где очередь минимальна. Если очереди одинаковы, то клиент становится в любую из них.
Для решения поставленной задачи необходимо разработать алгоритм имитационного моделирования работы банка за восьмичасовой рабочий день. А также определить время простоя касс и количество клиентов в очереди не обслуженных на момент закрытия банка.
2. Метод решения задачи
Имитационное моделирование на ЭВМ процесса функционирования автоматизированной системы управления работой банка позволяет получить численное решение поставленной задачи. Суть рассматриваемого приближенного метода решения состоит в проведении ряда случайных испытаний вероятностной модели исследуемой системы и получении совокупности реализаций случайных процессов изменения состояния.В результате многократной реализации случайных процессов определяются оценки вероятности тех или иных событий и средние значения случайных величин. Имитационное моделирование связано с необходимостью воспроизведения случайных событий и величин, распределенных по произвольному закону. Существует несколько способов генерации случайных величин и формирования их распределений. Модель системы управления работой банка включает в себя:
· Приход клиентов в банк
· Время обслуживания клиентов у касс
По условию поставленной задачи приход клиентов в банк описывается пуассоновским потоком с интенсивностью r. Для лучшего понимания сути распределения Пуассона необходимо знать основные определения:
Интенсивность потока – среднее число событий, которое появляется в единицу времени.
Поток – последовательность событий, которые наступают в случайные моменты времени.
Закон распределения Пуассона выражается формулой (1.1).
Будем моделировать интервал времени между двумя последовательно зашедшими в банк клиентами методом Монте-Карло с датчиком случайных чисел на интервале [0 - 1].
Совокупность
Причем
Так как опыт проводится многократно, то, очевидно, что частота попадания случайных чисел на каждый из отрезков, определяющихся их длиной, и соответствует полученным вероятностям.
Моделирование времени обслуживания клиентов у касс происходит по экспоненциальному закону распределения, формула которого представлена выше (формула (1.2)).
Время обслуживания клиентов
Эта вероятность рассматривается как функция
|
|
1 |
Рис. 3 – «Функция распределения экспоненциального закона»
Так как значения
где
Соответственно плотность распределения:
Для моделирования времени обслуживания клиента у кассы проинтегрируем функцию распределения
От датчика случайных чисел равномерно распределенных на интервале [0 - 1] получаем очередное число Х, которое подставляем в формулу (1.5) и вычисляем
Из соотношения (1.6) найдем
3. ПРОГРАММНОЕ РЕШЕНИЕ
Программа имитационного моделирования работы банка написана на языке 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) – моделирование времени прихода очередного клиента;
4. Инструкция пользователю
1. Программа имитационного моделирования работы банка расположена по следующему адресу:С:\П – 00 – 51\К&F\Bank.exe
2. На запрос программы:
« Введите количество касс : »
Вводим предполагаемое (данное) количество касс обслуживающих клиентов.
3. На запрос программы:
« Введите интенсивность потока r: »
Вводим r - интенсивность потока, равную среднему числу событий, которые появляются в единицу времени.
4. На запрос программы:
« Введите параметр распределения lambda: »
Вводим
5. На запрос программы:
« Введите максимальное время ожидания клиента: »
Вводим k равное максимальному времени в минутах ожидания клиентов.
5. РУКОВОДСТВО ПРОГРАММИСТА
Несмотря на то, что программа предназначена для создания имитационной модели работы банка, она также может использоваться для других целей, к примеру, для моделирования работы магазина. Вследствие этого может возникнуть необходимость в модернизации или изменении программы.– Для изменения продолжительности рабочего дня необходимо изменить значение константы WORK_TIME, описанную в файле engine.c;
– Для изменения закона распределения, использующегося для моделирования времени прихода следующего клиента необходимо изменить содержимое функции int Ksi(void), подставив в тело реализацию необходимого распределения;
– Для изменения закона распределения, использующегося для моделирования времени обслуживания клиента кассиром необходимо изменить содержимое функции int TObsl(void), подставив в тело реализацию необходимого распределения;
– В случае возникновения необходимости ввода времени работы банка пользователем при каждом запуске программы необходимо сделать следующие изменения:
1. Добавить название соответствующего поля ввода к массиву названия полей *ZagolPol[];
2. Добавить окно поля ввода в функцию void ZovnVydProg(void);
3. Увеличить верхнюю границу счетчика в цикле перерисовки названий полей функции void ZovnVydProg (void);
4. Добавить соответствующий обработчик в функцию void Zapusk(void);
5. В файле engine.c изменить строку #define WORK_TIME 8*60 строкой #define WORK_TIME timevar, где timevar – имя переменной, содержащей введенное пользователем время работы банка;
– В случае возникновения необходимости получения более детальной информации о работе банка необходимо добавить соответствующие переменные в структуру ZVIT и обеспечить заполнение этих переменных значениями в соответствующих функциях.
6.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ввод кол-ва касс N |
|
|
|
|
Длина очереди у касс |
Время обслуж-я у касс |
Время прихода очередного клиента |
|
|
|
|
T480 |
Подсчет очереди |
Выдача L и Stпр |
Выход |
2 |
да |
Процедура постановки клиента в очередь
SHAPE \* MERGEFORMAT
SHAPE \* MERGEFORMAT
Вычисляем tj время обслуживания клиентов |
начало |
j:=1 |
tj = 0 |
j:=j+1 |
j £ m |
jmin=1, lmin = l1 |
j:=1 |
lj < lmin |
lmin=lj; |
j:=j+1 |
j £ m |
lmin= l +1 |
Вычисл x-время очередного прихода клиента |
tкл:=t + x |
конец |
да |
да |
нет |
да |
Блок схема корректировки времени обслуживания клиентов у касс и продвижения очереди.
SHAPE \* MERGEFORMAT
Уменьшаем на 1 время его обслуживания |
конец |
i = 0 |
начало |
i = i +1 |
|
|
|
|
Вычисляем |
|
i< n |
да |
да |
да |
да |
Есть ли клиент у кассы |
Проверяем есть ли очередь |
Вычисляем новое время обслуживания клиента |
Уменьшаем очередь на одного человека |