Програма імітаційного моделювання роботи банку

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Програма імітаційного моделювання роботи банку

Зміст
1. Постановка завдання 3
2. Метод рішення задачі 4
3. ПРОГРАМНЕ РІШЕННЯ 6
4. Інструкція користувачеві 7
5. КЕРІВНИЦТВО ПРОГРАМІСТА 8
6. ДОДАТОК А - «Блок-схема імітаційного моделювання роботи банку» _ 9

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

У сучасному світі гарантією ефективної роботи будь-якого підприємства є раціональне використання грошових коштів і трудового фактора. Так для розрахунку економічного ефекту роботи банку необхідно провести імітаційне моделювання на основі попередньо встановлених залежностей.
Припустимо, що клієнти в банк прибувають з інтервалом, що обчислюються у хвилинах (див. рис. 1).




Серпень 2000
t
SHAPE \ * MERGEFORMAT
Рис. 1 - «Прихід клієнтів до банку»
Прихід клієнтів у банк описується пуассоновским потоком з інтенсивністю r, який визначається наступним чином:
(1.1)
де: r - інтенсивність потоку;
k - час між парафіями клієнтів.
Параметр k може приймати дискретні значення від нуля до нескінченності. Причому k = 0 означає прихід відразу двох клієнтів.
Припустимо, у банку є N кас. Математичне сподівання обслуговування клієнтів у банку позначимо . Обслуговування клієнтів біля кас відбувається за експоненціальним законом розподілу випадкової величини ( - Час обслуговування клієнтів) з щільністю розподілу :
(1.2)
Примітка:
Якщо в банку є вільні каси, то клієнт стає на обслуговування до найближчої з них (тобто до каси з мінімальним номером). Якщо всі каси зайняті - клієнт стає в чергу до тієї каси, де черга мінімальна. Якщо черги однакові, то клієнт стає в будь-яку з них.
Для вирішення поставленого завдання необхідно розробити алгоритм імітаційного моделювання роботи банку за восьмигодинний робочий день. А також визначити час простою кас і кількість клієнтів у черзі не обслужених на момент закриття банку.

2. Метод рішення задачі

Імітаційне моделювання на ЕОМ процесу функціонування автоматизованої системи управління роботою банку дозволяє отримати чисельний розв'язок поставленої задачі. Суть даного методу наближеного рішення полягає в проведенні низки випадкових випробувань ймовірнісної моделі досліджуваної системи та отриманні сукупності реалізацій випадкових процесів зміни стану.
У результаті багаторазового реалізації випадкових процесів визначаються оцінки ймовірності тих чи інших подій і середні значення випадкових величин. Імітаційне моделювання пов'язане з необхідністю відтворення випадкових подій і величин, розподілених за довільним законом. Існує кілька способів генерації випадкових величин і формування їх розподілів. Модель системи управління роботою банку включає в себе:
· Прихід клієнтів до банку ;
· Час обслуговування клієнтів біля кас .
За умовою поставленого завдання прихід клієнтів у банк описується пуассоновским потоком з інтенсивністю r. Для кращого розуміння суті розподілу Пуассона необхідно знати основні визначення:
Інтенсивність потоку - середнє число подій, що з'являється в одиницю часу.
Потік - послідовність подій, які настають у випадкові моменти часу.
Закон розподілу Пуассона виражається формулою (1.1).
Будемо моделювати інтервал часу між двома послідовно зайшли в банк клієнтами методом Монте-Карло з датчиком випадкових чисел на інтервалі [0 - 1].
Сукупність незалежних випадкових подій, що утворюють повну групу, характеризується ймовірностями появи кожного з подій , Причому . Для моделювання цієї сукупності випадкових подій використовується генератор випадкових чисел, рівномірно розподілених в інтервалі [0 - 1]. При розподілі відрізка [0 - 1] на n частин, чисельно рівних , Виникнення події встановлюється шляхом визначення знаходження випадкового числа Х в межах інтервалу при перевірці умови , Де змінюється від нуля до n. При маємо ; При маємо і так далі. При підстановці у формулу (1.1) отримаємо:
;
* ;
* і так далі.
Причому (Мін.) - максимальна кількість очікування клієнтів.
Так як досвід проводиться багаторазово, то, очевидно, що частота потрапляння випадкових чисел на кожний з відрізків, що визначаються їх довжиною, і відповідає отриманим ймовірностями.
Моделювання часу обслуговування клієнтів біля кас відбувається за експоненціальним законом розподілу, формула якого представлена ​​вище (формула (1.2)).
Час обслуговування клієнтів , Як і будь-яка інша випадкова величина, описується функцією розподілу , Обумовлена ​​як ймовірність випадкової події, яка полягає в тому, що час обслуговування клієнтів менше деякого заданого часу :

Ця ймовірність розглядається як функція у всьому діапазоні можливих значень величини . Функція розподілу будь-якої випадкової величини є неубутною функцією часу . Зразковий вид функції дан на малюнку 3.


1


Рис. 3 - «Функція розподілу експоненціального закону»
Так як значення не можуть бути негативними, то . При величина прагне до одиниці. Таким чином, функція розподілу часу обслуговування клієнтів:
(1.3)
де - Параметр розподілу (середній час обслуговування клієнтів біля каси).
Відповідно щільність розподілу:
(1.4)
Для моделювання часу обслуговування клієнта біля каси проінтегруємо функцію розподілу :

(1.5)
Від датчика випадкових чисел рівномірно розподілених на інтервалі [0 - 1] отримуємо чергове число Х, яке підставляємо у формулу (1.5) і обчислюємо :

(1.6)
Зі співвідношення (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.
2
1
Пересунути чергу
Скорр-ть час обслуг-я біля кас
Скорр-ть, обч-ть простий кас S t пр
та
t = 0
немає
Поставити клієнта до кас або в чергу
та
та
S t пр:: = 0
t кл:: = 0
t:: = 0
t = 0
Введення кол-ва кас N
Введення r, k,
початок
ДОДАТОК А - «Блок-схема імітаційного моделювання роботи банку»

SHAPE \ * MERGEFORMAT
Довжина черги біля кас
Час обслуг-я біля кас
Час приходу чергового клієнта


1
t:: = t +1
SHAPE \ * MERGEFORMAT
T480
Підрахунок черзі
Видача L і S t пр
Вихід
2
та


Процедура постановки клієнта в чергу
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
та
та
та
та
Чи є клієнт біля каси
Перевіряємо чи є чергу
Обчислюємо новий час обслуговування клієнта
Зменшуємо чергу на одну людину

Додати в блог або на сайт

Цей текст може містити помилки.

Економіко-математичне моделювання | Контрольна робота
54кб. | скачати


Схожі роботи:
Моделювання роботи двох касирів у банку
Досвід імітаційного моделювання по оптимізації бази і фінансів системи охорони здоров я
Організація касової роботи в банку Процес кредитування клієнтів банку та його етапи
Програма для роботи з файловою системою
Моделювання роботи цеху
Програма емуляції роботи командного процесора операційної системи
Моделювання роботи системи управління запасами
Імітаційне моделювання роботи обчислювального центру
Програма роботи Служби Соціальної допомоги молоді з педагогами шкіл з профілактики наркотичної
© Усі права захищені
написати до нас