Модель бензоколонки

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

скачати

ЛАБОРАТОРНА РОБОТА № 2
МОДЕЛЬ Бензоколонки

ВСТУП

Уявімо ситуацію: підприємець збирається вкласти гроші в будівництво нової бензоколонки, проте точного уявлення про те, скільки автомашин буде щодня заправлятися на цій колонці, у нього немає. Їх число, ймовірно, може коливатися в деякому діапазоні. Але він хотів би орієнтовно знати, якою має бути оптимальна структура бензоколонки і на отримання будь-який прибуток можна розраховувати.
На ці запитання можна дати відповіді за допомогою математичної моделі. Оскільки вхідні дані мають невизначений характер, це повинна бути статистична модель.
Все починається з розробки концептуальної моделі. Перш за все потрібно вибрати математичну схему, яка найближче підходить до такої економічній системі, як бензоколонка. Потрібно також встановити, що є вхідними параметрами моделі, а що вихідними характеристиками. Далі потрібно вибрати показник і критерій ефективності майбутньої економічної системи.
Потім потрібно розробити алгоритм та програму на алгоритмічній мові, налагодити її і переконатися в тому, що вона забезпечує отримання достовірних результатів. Нарешті, потрібно вибрати конкретні вихідні дані та провести серію розрахунків при різних значеннях вхідних параметрів. Аналіз результатів моделювання дозволить дати відповідь на всі перераховані вище питання.
Для опису роботи бензоколонки найбільше підходить схема системи масового обслуговування, або скорочено СМО. Для таких систем характерні три характерні особливості:
1) є потік клієнтів, що бажають бути обслуговуваними (в даному випадку це потік автомашин);
2) є пристрої або агрегати, які забезпечують задоволення заявок клієнтів (в даному випадку одна або кілька роздавальних колонок);
3) є певний набір правил обслуговування клієнтів (в даному випадку можна, наприклад, вважати, що всі клієнти рівноправні, тобто ніхто не має права на заправку поза чергою).
СМО розрізняються перш за все за кількістю місць або каналів обслуговування (одноканальний, двоканальна і т. д.).
Підприємець поки не знає, скільки роздавальних колонок вигідніше мати. Якщо вони будуть простоювати, він буде зазнавати збитків. Значить, в моделі потрібно зробити число каналів обслуговування змінним, тобто включити його до складу вхідних параметрів. У завдання моделювання буде входити визначення оптимального числа каналів. Воно буде залежати від співвідношення між середнім часом між надходженням заявок (приїзд автомашин) і середнім часом обслуговування (час заправки), яке потрібно задати як вхідні характеристики моделі.
Середній час обслуговування можна визначити, спостерігаючи за роботою якої-небудь діючої бензоколонки. А середній час між сусідніми заявками залежить від інтенсивності потоку автомашин на тій ділянці дороги, де буде бензоколонка. Середня кількість автомашин, які будуть заправлятися, необхідно оцінити наближено. Потрібно вибрати підходящий для типового потоку автомашин на даній ділянці дороги закон розподілу випадкових величин часу між сусідніми автомашинами, що заїжджають на заправку. Досвід показує, що краще за все такий потік описується показовим розподілом з заданим середнім значенням випадкової величини. А можливі значення випадкового часу між сусідніми заявками будуть визначатися в моделі за допомогою датчика випадкових чисел.
Але час обслуговування теж не постійно для всіх автомашин. Це випадкова величина, і потрібно визначити закон її розподілу. Спостерігаючи за роботою діючої бензоколонки, можна встановити емпіричне розподіл реального часу обслуговування. Але при побудові першого варіанту моделі найчастіше зазвичай обирають один із стандартних розподілів, яке найближче підходить до отриманого емпіричного розподілу. Надалі модель може бути уточнена.
Для початку зупинимося на показовому розподілі. Ми вже вибрали його для часу між сусідніми заявками. Там було одне середнє значення для часу між заявками, а тут інше - для часу обслуговування.
Для побудови моделі потрібно також висловити припущення про те, як будуть себе вести клієнти, якщо їм доведеться стояти в черзі. У СМО зазвичай описується один з трьох варіантів режиму очікування: з необмеженим очікуванням; з обмеженим очікуванням і без очікування.
У нашому випадку більше підійде варіант з обмеженим очікуванням. При цьому досить ввести в модель як вхідної змінної максимальний час очікування. Тоді в процесі моделювання заявка з часом очікування, що перевищує максимально допустимий, буде залишати систему необслуженной.
Ми запровадили майже всі вхідні змінні. Залишилося тільки обмежити період функціонування системи. Потрібно ввести час початку і час кінця роботи, щоб розрахунки кожної випадкової реалізації проводилися в однакових умовах.
Набір вихідних характеристик залежить від того, що ми приймемо в якості показника ефективності процесу функціонування системи. Це, між іншим, найважливіший момент у процесі створення концептуальної моделі досліджуваної системи.
Ефективність - це часто вживане слово, сенс якого не завжди правильно трактується. У теорії ефективності показником ефективності називають міру ступеня досягнення поставленої мети.
Підприємець вкладає кошти в будівництво бензоколонки з метою отримання прибутку. Але будівництво пов'язане і з витратами, які залежать від структури бензоколонки, тобто від кількості роздавальних колонок. Потрібно вибрати такий показник ефективності, який відбивав би вплив на прибуток не тільки доходів, а й витрат. У першому варіанті моделі можна припустити, що всі майбутні клієнти будуть заправляти приблизно одне і те ж кількість бензину. Тоді дохід буде визначатися за формулою:
Дох = З 1 * N обс.ср,
де дох - середній дохід за період функціонування системи;
З 1 - середня вартість заправки однієї автомашини;
N обс.ср - середнє число заправлених автомашин.
Витрати можна оцінити за даними про вартість будівництва діючих бензоколонок. Припустимо, що витрати пов'язані з числом каналів N K деякою функціональною залежністю:
Расх = F (N K).
Отже, показник ефективності для нашої моделі має вигляд:
Ефф = дох - витр.
Можна сформувати безрозмірний показник ефективності. Поділимо дохід і витрати на коефіцієнт С 1. Отримаємо такий вираз для показника ефективності:
З отн.ср = N обс.ср - F1 (N K),
де С отн.ср - середня відносна прибуток;
F1 (N К) - безрозмірна функціональна залежність витрат від кількості каналів.
Але, крім показника ефективності, існує ще критерій ефективності. У теорії ефективності критерієм ефективності називають правило, за допомогою якого вибирається найвигідніший варіант структури, що моделюється. Якщо є кілька показників ефективності, то критерій об'єднує їх у єдине вираження.
У даному випадку показник один, а тому в якості критерію природно прийняти умову досягнення максимуму цього показника. На практиці це означає, що потрібно перебрати кілька варіантів структури моделі при різних значеннях вхідних параметрів і встановити, за яких умов обраний нами показник ефективності буде досягати максимуму. Для наочності можна навести вираз для визначення величини критерію ефективності. Воно буде мати вигляд:
Критерій ефект. = ,
Де u - порядковий номер варіанта розрахунку, що належить безлічі U.
Однак у самій алгоритмічної моделі ця формула використовуватися не буде. Нею має керуватися дослідник, що виробляє розрахунки різних варіантів при змінних значеннях вхідних параметрів моделі.

1. КОНЦЕПТУАЛЬНА МОДЕЛЬ
Нехай є система масового обслуговування зі змінним числом каналів N K, що може приймати будь-яке значення в діапазоні від одного до трьох. Вхідний потік заявок - найпростіший, отже, час між сусідніми заявками має показове розподіл з відомим математичним очікуванням (середнім значенням) Т з.ср.
Час обслуговування заявки в будь-якому каналі - величина випадкова, що має показове розподіл з відомим середнім часом обслуговування Т обс.ср.
Всі заявки однорідні і незалежні.
Правило (Дисципліна) обслуговування полягає в тому, що чергова заявка надходить у той канал, який раніше за інших звільнився. Якщо час очікування початку обслуговування перевищує задану величину Т очікуван. Max, то заявка залишає систему необслуженной. Період функціонування СМО характеризується величиною T кін.
Таким чином, вхідними характеристиками моделі є: число каналів N K, середній час між сусідніми заявками T з.ср, середній час обслуговування заявки Т обс.ср, максимально допустимий час очікування Т очікуван. m ах, період роботи системи Т кін., число випадкових реалізацій модельованого процесу N p.
Вихідний характеристикою моделі є середнє число обслужених заявок N обс.ср
Вибір показника і критерію ефективності
Як показник ефективності роботи системи доцільно вибрати середню прибуток, який визначається за формулою
З c р = З 1 * N обс.ср - З 2 (N K),
(1)
де С 1 - чистий прибуток, отриманий в результаті обслуговування однієї заявки;
З 2 (N K) - витрати обслуговування всіх заявок, що залежать від кількості каналів.
Розділимо обидві частини рівності (1) на величину С 1. Отримаємо такий вираз для розрахунку показника ефективності:
,
(2)
де C c р.отн - середня відносна прибуток.
Величину З 2 / С 1 (відношення витрат обслуговування до чистого прибутку, отриманої в результаті обслуговування однієї заявки) будемо розглядати як функцію кількості каналів.
Припустимо, що можливими варіантами цієї функціональної залежності є: а - лінійна залежність; б - зростаюча залежність з позитивною 2-ї похідної і в - зростаюча залежність з негативною 2-й похідної (рис. 1).

Рис.1. Залежності відносини З 2 / З 1, від N К: а - перший варіант; б - другий варіант, в - третій варіант
Виберемо другий варіант. Приймемо як конкретну залежності витрат обслуговування від кількості каналів наступну функцію:
.
(3)
Отже, для розрахунку показника ефективності будемо використовувати залежності (2) і (3).
В якості критерію вибору найвигіднішої структури СМО приймемо оптимальне число каналів, що забезпечує максимум середньої відносної прибутку:
.
(4)
де N K * - найвигідніше число каналів.
2. СХЕМИ АЛГОРИТМІВ МОДЕЛІ
В якості мови програмування для розробки комп'ютерної моделі даного процесу обраний Visual Basic 5.0.
Загальний вигляд (макет) стартовою форми зображений на рис. 2. Видно, що вона включає ряд об'єктів управління, серед яких є три командні кнопки: «Розрахунок», «Очищення» і «Вихід». Ця обставина визначає структуру алгоритму процедур обробки переривань, показану на рис. 3.
Після натискання кнопки «Start» активізується стартова форма. З цього моменту програма знаходиться в режимі очікування дій користувача.
Цифрою 1 (рис.3) позначено дія, що полягає у коригуванні вихідних даних. Необхідні зміни вносяться у відповідні текстові поля.
Цифрою 2 позначено дія, що полягає в натисканні (за допомогою миші) кнопки «Розрахунок». У процедурі, пов'язаної із цією кнопкою, оператор 3 здійснює переклад вихідних даних з символьної форми в числову. Потім оператор 4 звертається до модуля загального призначення «Model2». Схема алгоритму цього модуля наведена на рис. 4.

Рис. 2. Макет стартовою форми:
1 - текстові поля; 2 - командні кнопки
Після закінчення роботи модуля і видачі на екран результатів моделювання робота процедури, пов'язаної з кнопкою «Розрахунок», закінчується. Програма знову переходить в режим очікування дій користувача.
Цифрою 5 на схемі (рис.3) позначено дію користувача, що полягає в натисканні кнопки «Очищення». У процедурі, пов'язаної з нею, проводиться очищення текстового поля для виведення результату моделювання. Потім зазвичай виробляються зміна вихідних даних і проведення нових розрахунків з використанням кнопки «Розрахунок».

Рис.3. Схема алгоритму процедур обробки переривань
Цифрою 7 на схемі позначено дію користувача, що полягає в натисканні кнопки «Вихід». У результаті робота програми припиняється.
Оператор 1 на рис. 4 обнуляє глобальну змінну SN обс - сумарна кількість обслужених заявок. Оператор 2 активізує вікно форми № 2 і робить неактивним вікно форми № 1. Оператор 3 починає циклічний перебір випадкових реалізацій. Оператор 4 виводить на екран (у вікно форми № 2) лічильник числа розрахованих реалізацій.
Оператор 5 на початку кожної випадкової реалізації обнуляє локальні змінні, до яких відносяться: число заявок, що надходять в одній реалізації N z, число обслужених заявок в кожному з трьох каналів N обс1, N обс2, N обс3, початкові значення часу звільнення 1-го, 2-го і 3-го каналів T ок1, T ок2 і T ок3.

Рис.4. Схема алгоритму модуля «Model2»
Оператор 6 звертається до автономної процедури формування потоку заявок. У результаті роботи цієї процедури формується масив значень часу
з (1), Т з (2), Т з (3), ..., Т з (N з i)],
де N з i -Загальна кількість заявок, які надійшли для i-й випадкової реалізації.
Оператор 7 є початком циклу обслуговування заявок. Оператори 8, 9, 10 і 11 виробляють вибір номера каналу, який характеризується найменшим значенням часу звільнення від обслуговування заявки.
Оператор 12 звертається до автономної процедурі обслуговування черговий заявки. На виході цієї процедури визначається число обслужених заявок у вибраному каналі N обс (J min).
Оператор 13 служить для розрахунку сумарного числа обслужених заявок по рекурсивної формулою
SN обс = SN обс + N обс.1 + N обс.2 + N обс.3.
Після закінчення циклу випадкових реалізацій оператор 14 повертає властивість активного вікна формою № 1. Оператор 15 розраховує і виводить на екран значення вихідної змінної - середньої відносної прибутку за формулою
.
Схема алгоритму процедури формування заявок показана на рис. 5.
Оператор 1 встановлює на нуль модельне час Т. Оператор 2 є початком циклу формування заявок. Оператор 3 звертається до датчика випадкових чисел, який виробляє можливе значення випадкової величини z, рівномірно розподіленої в інтервалі (0,1).
Оператор 4 визначає можливе значення випадкової величини часу надходження чергової заявки за умови, що середній час між сусідніми заявками одно Т з. Cp. Оператор 5 перевіряє умову закінчення процесу формування заявок.
Оператор 6 підраховує кількість заявок, що надійшли, поміщає час надходження кожної заявки до спеціального масив і змінює модельне час Т.
Схема алгоритму процедури обслуговування заявок показана на рис. 6.
Оператор 1 обнуляє час очікування початку обслуговування заявки T очікуван і привласнює часу початку обслуговування T н час надходження чергової заявки T 3 (J 3).

Рис.5. Схема алгоритму формування заявок
Оператор 2 робить перевірку зайнятості каналу. Початкове значення часу звільнення каналу Т до j прирівнюється нулю в головному модулі в блоці обнулення локальних змінних.
Якщо канал зайнятий, то оператор 3 визначає час очікування T очікуван як різницю часу звільнення каналу Т до j і часу надходження заявки T 3 (J 3). Оператор 4 перевіряє умову, що час очікування Т очікуван перевищує допустимий Т очікуван. max. Якщо ця умова виконується, то управління передається на кінець процедури і заявка залишається необслуженной.
Оператор 5 служить для корекцій часу початку обслуговування заявки. Воно тепер має дорівнювати часу звільнення каналу Т до j. Оператор 6 звертається до датчика випадкових чисел з рівномірним розподілом в інтервалі (0,1), який виробляє можливе значення випадкової величини z. Оператор 7 визначає можливе значення часу закінчення обслуговування заявки Т к.
Оператор 8 перевіряє умови закінчення періоду обслуговування, а оператор 9 фіксує той факт, що даний канал буде зайнятий до кінця робочого дня. Оператор 10 збільшує на одиницю число обслужених заявок в j-му каналі і фіксує час звільнення каналу.

Рис. 6. Схема алгоритму процедури обслуговування заявок
3. ПРИКЛАД РІШЕННЯ ЗАДАЧІ МОДЕЛЮВАННЯ
Розглянемо приклад вирішення завдання дослідження системи масового обслуговування за допомогою розробленої алгоритмічної моделі. Виберемо наступні вхідні параметри:
• середній час між заявками Т з.ср = 1 год;
• максимальний час очікування Т очікуван. Max. = 0,25 год;
• число випадкових реалізацій N p = 5000.
Змінні змінні:
• середній час обслуговування заявок Т обс.ср = 0,5; 1; 2; 4 год;
• число каналів обслуговування N K = 1, 2, 3.
Результати розрахунків наведено в табл. 1.
Таблиця 1
N вар
N K
Т обс.ср
C отн.ср
1
1
0,5
6,27
2
2
0,5
7,12
3
3
0,5
5,53
4
1
1
4,24
5
2
1
5,83
6
3
1
4,74
7
1
2
2,33
8
2
2
3,61
9
3
2
2,94
10
1
4
0,95
11
2
4
1,40
12
3
4
0,65
Отже, при обраних вихідних даних, зокрема при середньому часі між сусідніми заявками, що дорівнює 1 год, найбільший прибуток досягається при числі каналів N K = 2.
Проведені дослідження показали, що оптимальне число каналів залежить від співвідношення між величинами середнього часу між сусідніми заявками і середнього часу обслуговування (рис. 7).

Рис.7. Залежність оптимального числа каналів n k від параметрів Т з.ср і Т обс.ср
4. ЗАВДАННЯ ДЛЯ САМОСТІЙНОЇ РОБОТИ
У інтегральному середовищі Visual Basic 5.0 створіть програму «Модель бензоколонки», текст якої наведено нижче. Проведіть налагодження програми із метою ліквідації формальних помилок. Проведіть перевірку програми розрахунком. Підставте ті ж вихідні дані, які були обрані у наведеному вище прикладі. Переконайтеся в тому, що результати розрахунків практично збігаються. Проведіть самостійне дослідження закономірностей функціонування фірми за допомогою алгоритмічної моделі. Виберіть вихідні дані, проведіть розрахунки і проаналізуйте результати моделювання.

Програма моделювання бензоколонки

1. Стартова форма frmForm1
1.1. Таблиця властивостей форми 1 (макет на рис. 2)

Об'єкт

Властивості
Установки
Форма 1
Name
Caption
FrmForm1
Модель СМО з 1,2 або 3 каналами
Командна кнопка 1
Name
Caption
Command1
Розрахунок
Командна кнопка 2
Name
Caption
Command2
Розрахунок
Командна Кнопка 3
Name
Caption
Command3
Вихід
1.2. Процедури обробки переривань
Private Sub Command1_Click ()
Nkan = Val (txtNk): TZcp = Val (txtTzs): TObcp = Val (txtTobs)
TWmax = Val (txtTwm): Nr = Val (txtNp)
Call Model2
End Sub
Private Sub Command2_Click ()
FrmForm1.txtResult = ""
End Sub
Private Sub Command3_Click ()
End
End Sub
2. Форма frmForm2
2.1. Таблиця властивостей форми 2

Об'єкт

Властивості
Установки
Форма 2
Name
Enabled
Form2
False
2.2. Процедура обробки переривань
Private Sub Form2_Load ()
End Sub
3. Модулі загального призначення
'Опис констант і масивів
Public Const Tfin = 10 'час закінчення роботи
Public Const NzMax = 40 'Максимальна кількість заявок
Public Tz (Nzmax) 'масив часу надходження заявок
Public Nob (3) As Integer 'число обслужених заявок в каналах
Public TKO (3) 'час закінчення обслуговування заявок
Public TScp, Tobcp, Twmax, Tkmin, TH, TK, z, Ts
Public Snob As Long, Iz As Integer, Nz As Integer, Ir As Integer
Public Nr As Integer, J As Integer, Nkan As Integer, Jmin As Integer 180
Public Sub Model2 ()
"Головний модуль
Snob = 0 'суматор числа обслужених заявок
frmForm1.Enabled = False: FrmForm1.Visible = False
frmForm2.Enabled = True: FrmForm2.Visible = True
For Ir = 1 To Nr 'початок циклу випадкових реалізацій
frmForm2.Cls 'очищення вікна форми 2
frmForm2.CurrentX = 600: frmForm2.CurrentY = 200
frmForm2.Print "Розрахунок" & Ir & "-ї реалізації" 'висновок показань' лічильника числа реалізацій у вікно форми 2 'обнулення локальних змінних
Nz = 0 'обнулення числа заявок
Nob (1) = 0: Nob (2) = 0: Nob (3) = 0 'обнулення числа обслугованих заявок
TKO (1) = 0: TKO (2) = 0: TKO (3) = 0 'час закінчення обслуговування
'Заявок в 1, 2 і 3-му каналах
Call ZAJAVKA 'процедура «Потік заявок»
For Iz = 1 To Nz 'початок циклу обслуговування заявок
'Вибір номера каналу
TKmin = TKO (1)
For J = 1 To Nkan
If TKO (J) <Tkmin Then Tkmin = TKO (J): Jmin = J
Next J
Call SERVICE 'процедура обслуговування заявки
Next Iz 'кінець циклу обслуговування заявок
'Сумарне число обслужених заявок:
Snob = Snob + Nob (1) + Nod (2) + Nob (3)
Next Ir 'кінець циклу реалізацій
FrmForm2.Enabled = False: FrmForm2.Visible = False
FrmForm1.Enabled = True: FrmForm1.Visible = True
'Показник ефективності:
Cont = Snob / Nr - 1 + 0.5 * Nkan - 0.5 * Nkan * Nkan
frmForm1.txtResult = Format $ (Cont, "#.##")
End Sub
Sub SAJAVKA
"Процедура« Потік заявок »
T = 0 'модельне час
For J = 1 To Nzmax 'початок циклу формування заявок
z = Rnd (1) 'випадкова величина з рівномірним розподілом
Ts = T - TZcp * Log (z) 'випадковий час надходження заявки
If Ts> Tfin Then Exit For 'умова припинення прийому заявок
Nz = Nz + 1 "лічильник числа заявок
Tz (Nz) = Ts 'фіксований час надходження заявки
T = Ts 'зміна модельного часу
Next J 'кінець циклу формування заявок
End Sub
Sub SERVICE
"Процедура« Обслуговування заявок »
J = Jmin 'номер каналу
DTWait = 0 'початкове значення часу очікування
TH = Tz (Iz) 'час початку обслуговування
If Tz (Iz) <TKO (J) Then 'перевірка необхідності коррктіровкі
'Коректування часу початку обслуговування:
DTWait = TKO (J) - Tz (Iz) 'період очікування
If DTWait> Twmax Then Exit Sub
'Час початку обслуговування
TH = TKO (J)
End If
Z = Rnd (1) 'випадкова величина з рівномірним' розподілом в інтервалі (0,1)
TK = TH - Tobcp * Log (z) 'час закінчення обслуговування
If TK> Tfin Then
TKO (J) = Tfin: Exit Sub
End If
Nob (J) = Nob (J) + 1 'збільшення числа обслужених заявок
TKO (J) = TK 'час закінчення обслуговування
End Sub
Додати в блог або на сайт

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

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


Схожі роботи:
Рівновага на товарному ринку Проста кейнсіанська модель модель витрати доходи
Рівновага на товарному ринку Проста кейнсіанська модель модель витрати доходи 2
Модель IS LM
Кейнсіанська модель
Шведська модель
Модель Стоуна
Модель Модільяні
Ситуативна модель
Американська модель менеджменту
© Усі права захищені
написати до нас