Автор: Пользователь скрыл имя, 20 Ноября 2012 в 17:20, курсовая работа
При дослідженні систем основоположними поняттями є система і модель. Система являє собою сукупність об'єктів разом з відносинами між ними і їх атрибутами. Під об'єктами ми розуміємо частини або компоненти, якими можуть бути підсистеми або елементи. Атрибути це властивості об'єктів. Відношення задають певний закон взаємодії об'єктів. Науковою основою моделювання є теорія подібності, в якій основну роль відіграє метод аналогій, тобто схожості об'єктів по якихось ознаках. Подібні об'єкти називаються аналогами. Метод аналогій дає можливість встановити співвідношення еквівалентності.
1 АНАЛІЗ МОЖЛИВИХ МЕТОДІВ ВИРІШЕННЯ ПОСТАВЛЕНОЇ ЗАДАЧІ 7
2 РОЗРОБКА КОНЦЕПТУАЛЬНОЇ МОДЕЛІ 10
2.1 ВИЗНАЧЕННЯ СТРУКТУРИ МОДЕЛІ 10
2.2 ВХІДНІ И ВИХІДНІ ЗМІННІ 11
2.3 ПАРАМЕТРИ МОДЕЛІ 11
2.4 ФУНКЦІОНАЛЬНІ ЗАЛЕЖНОСТІ, ЩО ОПИСУЮТЬ ПОВЕДІНКУ ЗМІННИХ І ПАРАМЕТРІВ 11
2.5 ОБМЕЖЕННЯ НА ЗМІНУ ВЕЛИЧИН 11
2.6 ЦІЛЬОВА ФУНКЦІЯ СИСТЕМИ 12
3 ВИБІР МОВИ МОДЕЛЮВАННЯ 13
3.1 ЗАСОБИ ГЕНЕРАЦІЇ ВИПАДКОВИХ ЧИСЕЛ 13
3.2 СБІР СТАТИСТИКИ 13
3.3 ВІДЛАДКА ПРОГРАМИ 14
3.4 НАЯВНІСТЬ ЗАСОБІВ СТВОРЕННЯ ПРОГРАМ 14
3.5 МОЖЛИВІСТЬ РЕДАГУВАННЯ МОДЕЛІ 15
4 РОЗРОБКА ІМІТАЦІЙНОЇ МОДЕЛІ І ОПИС ЇЇ ФУНКЦІОНУВАННЯ 16
4.1 СТРУКТУРНА СХЕМА ІМІТАЦІЙНОЇ МОДЕЛІ 16
4.2 ОПИС ІМІТАЦІЙНОЇ МОДЕЛІ 18
4.2 ОПИС ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ІМІТАЦІЙНОЇ МОДЕЛІ 18
Згідно умови N1+N2 має бути величина стала. Оскільки ми оперуємо величинами багатоканальних пристроїв то N1≥1 і N1≥1. Отже маємо таку систему нерівностей:
Розв’язком задачі є якнайбільше збільшення доходу. Виклик таксі коштує 3 руб і проїзд 1 км коштує 60 коп. Але також заробітна платня кожного робітника 14 руб. Тож цільова функція буде мати такий вид:
В якості мови моделювання була обрана мова GPSS\World Plus, на якій можна розробити імітаційне моделювання складних дискретних систем
Мова GPSS – мова декларативного типу, побудована по принципу об’єктно-орієнтованої мови. Основними елементами цієї мови є транзакти і блоки, які відображають, відповідно, динамічні і статичні об’єкти змодельованої системи.
Вона була вибрана за наступних міркувань:
Імітаційне моделювання забезпечує можливість випробувань, оцінки і проведення експериментів з припущенною системою без будь-яких безпосередніх впливів на неї. При імітаційному моделюванні виконується експеримент з програмою, яка є моделлю системи.
В процесі
моделювання інтерпретатор
До них відноситься і числовий атрибут RNj – число, підраховане j-м датчиком випадкових чисел. Всі датчики генерують послідовність рівномірно розподілених випадкових чисел. Це ціле число змінюється від 0 до 999 включно, крім двух випадків:в якості аргументу функції або елемента змінної. В цих випадках RNj буде змінюватись від 0 до 0.999999.
Також мова GPSS\Word Plus статистично обробляє данні – знаходить середнє значення змінної, будує для неї 95% ймовірнісний інтервал, визначає рівень впливу параметра на вихідну величину моделі. Варто зазначити, що GPSS не гарантує надійність отриманих оцінок. Про це має потурбуватися користувач.
Для імітаційних стохастичних моделей,
працюючих в перехідному
В мові GPSS\Word Plus для трасування використовують два безоперндних блока TRACE(ввімкнути трасування) і UNTRACE(вимкнути трасування). Цих блоків може бути декілька в моделі. Видаються траси проходження транзактів, тим самим можно подивитись рух транзактів по блокам. За допомогою кнопки STEP можна по крокам рухати транзакти по моделі.
Не варто запускати модель на тривалий час моделювання для більшого числа транзактів. Якщо в моделі є неузгоджені умови по швидкості входу транзактів в блок и швидкості їх обслуговування в цьому блоці, то будуть виникати нескінченні черги.
За допомогою програми GPSS легко можна редагувати модель. Наприклад за допомогою вставки блоків, яку можна виконати наступним чином: Edit->Insert Blocks, отримаємо можливість вставити будь-який із існуючих у мові блоків (див. рис. 4.5.1).
Рисунок 4.5.1 – Блоки мови GPSS
У мові GPSS простий інтерфейс та саме розуміння її засобів. Тобто, програміст може легко редагувати та перетворювати модель в залежності від необхідних йому результатів та даних.
В нашій моделі транзакти імітують клієнтів, які телефонують в службу таксі. Поява клієнтів забезпечується блоками GENERATE та SPLIT. Після появи нового клієнт, він деякий час набирає номер служби – це забезпечує блок ADVANCE. Якщо лінія не зайнята і черга перед таксі не перевищує кількість наявних служби машин (ці умови перевіряє блок TEST), то клієнт з’єднується з оператором і залишає своє замовлення. Це забезпечують блоки ENTER та ADVANCE. Після чого, якщо немає вільних машин, клієнт стає в чергу, звільняючи оператора,за допомогою блоку LEAVE, для прийому наступних замовлень. Коли з’являється вільна машина, вона починає обслуговувати наступного клієнта. Спочатку вона прямує до місця виклику, після чого відвозить клієнта за замовленням.
Після обслуговування транзакт клієнта поступає на блок TERMINATE.
Розглянемо випадок, коли лінія була зайнята, чи черга занадто велика. В цьому випадку клієнт чекає 50 секунд, після чого повторює виклик. Якщо після 12 викликів клієнт так і залишився не обслуженим, транзакт поступає на блок TERMINATE.
Таблиця 4.1 Таблиця визначення моделі
Елементи GPSS |
Трактування |
| |
блок GENERATE |
Допоміжний транзакт |
блок SPLIT |
Надходження клієнтів |
Пристрої: | |
telephon |
Оператори служби таксі |
taxes |
Водії таксі |
| |
wt |
кількість викликів клієнтом |
sp |
швидкість руху автомобіля |
rd |
шлях проїзду до клієнта |
tm |
час обслуговування клієнта |
| |
summ |
прибуток за добу |
| |
xpdis |
експоненційний розподіл |
speed |
швидкість руху автомобіля |
time |
час обслуговування клієнта |
road |
шлях проїзду до клієнта |
Одиниця модельного часу – 1 секунда
telephon storage 4 ;БКП телефонних операторів
taxes storage 12 ;БКП водіїв таксі
xpdis FUNCTION RN1,C24 ;експоненційний розподіл
0,0/.1,.104/.2,.222/.3,.355/.
.75,1.38/.8,1.6/.84,1.83/.88,
.95,2.99/.96,3.2/.97,3.5/.98,
.999,7/.9998,8
speed FUNCTION RN2,C2 ;функція розподілу швидкості руху автомобіля
0,30/1,61
time FUNCTION RN3,C2 ;функція розподілу часу обслуговування клієнта
0,36/1,51
road FUNCTION RN4,C6 ;функція розподілу шляху проїзду до клієнта
0,5/0.1,8/.3,9/.55,11/.72,12/.
AllTime TABLE (MP1/60),0,5,50 ;таблиця повного часу обслуговування клієнта
GENERATE ,,,1 ;генерація допоміжного транзакту
SAVEVALUE summ,0 ;Обнуління змінної
clients ADVANCE 75,fn$xpdis ;розподіл Ерланга 2го порядку
ADVANCE 75,fn$xpdis
SPLIT 1,clients ;копіювання транзакту для надходження наступних клієнтів
ASSIGN wt,1
caled ADVANCE 25 ;набор номеру
TEST NE R$telephon,0,repeat ;чи вільна лінія?
TEST L Q$service,(R$taxes+S$taxes),
MARK 1 ;почати відлік часу обслуговування
ENTER telephon ;початок обслуговування оператором
ADVANCE 120 ;час прийому заявки
LEAVE telephon ;завершення прийому заявки
TRANSFER ,serv ;направлення на обслуговування
repeat TEST NE P$wt,12,term ;клієнт ще не зробив 12 викликів?
ASSIGN wt+,1 ;збільшуємо лічильник викликів на 1
ADVANCE 50 ;час очікування клієнтом
TRANSFER ,caled ;направлення на повторний виклик
serv QUEUE service ;черга на обслуговування таксі
ENTER taxes ;обслуговування таксі
DEPART service
ASSIGN sp+,(fn$speed) ;розрахунок швидкості руху автомобіля
ASSIGN rd+,(fn$road) ;розрахунок шляху проїзду до клієнта
ASSIGN tm+,((fn$time)#60) ;розрахунок часу обслуговування клієнта
ADVANCE (P$rd/P$sp#3600) ;час проїду до клієнта
ADVANCE P$tm ;час обслуговування клієнта
ASSIGN paid,(300+P$tm#P$sp/60) ;
LEAVE taxes ;звільнити таксі
SAVEVALUE summ+,(P$paid/100) ;
TABULATE AllTime ;Вивід повного часу обслуговування клієнта в таблицю
term TERMINATE ;знищення транзактів
GENERATE (60#60#24) ;час генерації - доба
SAVEVALUE summ-,(14#(S$telephon+R$
TERMINATE 1
START 1