• Скорр-ть, вич-ть простий кас
  • Блок схема коригування часу обслуговування клієнтів біля кас і просування черги.


  • Дата конвертації24.03.2017
    Розмір22.68 Kb.
    Типконтрольна робота

    Скачати 22.68 Kb.

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

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


    зміст

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

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

    3.ПРОГРАММНОЕ рішення6

    4.Інструкція пользователю7

    5.Керівництво ПРОГРАММІСТА8

    6.ПРІЛОЖЕНІЕ А - «Блок-схема імітаційного моделювання роботи банку» _ 9



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

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

    Припустимо, що клієнти в банк прибувають з інтервалом, що обчислюються в хвилинах (див. Рис. 1).

    8 00
    t

    Мал. 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.


    Мал. 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
    Введення r, k,
    початок
    Додаток А - «Блок-схема імітаційного моделювання роботи банку»


    1
    t :: = t + 1

    Процедура постановки клієнта в чергу


    Блок схема коригування часу обслуговування клієнтів біля кас і просування черги.