Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема Вивчення можливостей математичного пакету MthCd

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

Лабораторна робота № 1 Тема. Вивчення можливостей математичного пакету MathCad.

Функції для обробки випадкових величин

У пакеті MathCad багато функцій, призначених для обробки випадкових величин. Наведемо тільки кілька з них, розбиваючи на чотири групи.

Функції для генерування випадкових чисел:

runif(m, a, b) – повертає вектор m випадкових чисел, що мають рівномірний розподіл на інтервалі [a, b];

rnd(x) – повертає рівномірно розподілене випадкове число між 0 та x (еквівалент runif(1, 0, x) );

rnorm(m, µ, σ) – повертає вектор m випадкових чисел, що мають нормальний розподіл (µ – середнє,  σ > 0 – середнє квадратичне відхилення);

rexp(m, λ) – повертає вектор m випадкових чисел, що мають експоненціальний розподіл (λ > 0 – параметр розподілення);

rpois(m, µ) – повертає вектор m випадкових чисел, що мають розподіл Пуассона (µ > 0 – середнє).

Щільності розподілу ймовірності:

dunif(x, a, b) – функція від x щільності розподілу ймовірності для рівномірного закону на інтервалі [a, b];

dnorm(x, µ, σ) – функція від x щільності розподілу ймовірності для нормального закону з параметрами µ, σ;

dexp(x, λ) – функція від x щільності розподілу ймовірності для експоненціального закону з параметром λ;

dpois(x, µ) – функція від x щільності розподілу ймовірності для закону Пуассона з параметром µ;

Функції розподілу:

punif(x, a, b) – функція від x розподілу для рівномірного закону на інтервалі [a, b];

pnorm(x, µ, σ) – функція від x розподілу для нормального закону з параметрами µ, σ;

pexp(x, λ) – функція від x розподілу для експоненціального закону з параметром λ;

ppois(x, µ) – функція від x розподілу для закону Пуассона з параметром µ.

Функції, обернені до функції розподілу:

qt(p, n) – функція від p, обернена до функції розподілу для t-розподілу Стьюдента, де n – число ступенів свободи;

qchisq(p, n) – функція від p, обернена до функції розподілу для хі-квадрат розподілу, де n – число ступенів свободи.

Функції для розв'язання задач лінійної алгебри

Функції, призначені для розв'язання задач лінійної алгебри, можна розділити на три групи.

Функції визначення матриць та операції з блоками матриць:

matrix(m, n, f) – створює та заповнює матрицю розмірності m x n, елемент якої, розташований в i-му рядку, j-му стовпці, дорівнює значенню f(i, j) функції f(x, y);

diag(v) – створює діагональну матрицю, елементи головної діагоналі якої зберігаються в векторі v;

identity(n) – створює одиничну матрицю порядку n;

augment(A, B) – формує матрицю, в перших стовбцях якої міститься матриця A, а в останніх – матриця B (матриці A і B мають однакове число рядків);

stack(A, B) – формує матрицю, в перших рядках якої міститься матриця A, а в останніх – матриця B (матриці A і B мають однакове число стовбців);

submatrix(A, ir, jr, ic, jc) – формує матрицю, котра є блоком матриці A, розташованим в рядках з ir по jr та в стовбцях з ic по jc, ir <= jr, ic <= jc.

Функції пошуку різноманітних числових характеристик матриць:

last(v) – визначення номера останнього елемента вектора v;

lenght(v) – визначення кількості елементів v вектора;

rows(A) – визначення числа рядків в матриці A;

cols(A) – визначення числа стовпців в матриці A;

max(A) – визначення найбільшого елемента в матриці A;

tr(A) – обчислення сліду квадратної матриці A (слід матриці дорівнює сумі її діагональних елементів);

rank(A) – обчислення рангу матриці A;

norm1(A), norm2(A), norme(A), normi(A) – обчислення норм квадратної матриці A.

Функції, що реалізують чисельні методи розв’язання задач лінійної алгебри:

rref(A) – приведення матриці до східчастого виду с одиничним базисним мінором;

eigenvals(A) – обчислення власних значень квадратної матриці А;

eigenvecs(A) – обчислення власних векторів квадратної матриці А; значенням функції є матриця, стовпці якої є власні вектори матриці А; порядок розташування векторів відповідає порядку розташування власних значень, обчислених функцією eigenvals(A);

eigenvec(A, l) – обчислення власного вектора матриці А, відповідного власному значенню l;

lsolve(A, b) – розв'язання системи лінійних алгебраїчних рівнянь виду Ax=b.

В Mathcad розв’язати задачу Коші для такої системи можна, наприклад, за допомогою функцій:

rkfixed(y, x1, x2, npoints, D) – розв'язання задачі на відрізку методом Рунге-Кутта с постійним кроком;

Rkadapt(y, x1, x2, npoints, D) – розв'язання задачі на відрізку методом Рунге-Кутта с автоматичним вибором кроку;

Stiffr(y, x1, x2, acc, D, J) – розв'язання задачі для жорстких систем на відрізку з застосуванням алгоритму Розенброка.


Лабораторна робота №
2 Обробка й аналіз даних експеримента. Підбір параметрів розподілів

hist процедура пакета MathCad, що підраховує частоту попадання елементів вибірки V в  інтервали (intj, intj+1 ), j=0,…,m–1...

1. Згенеруємо вибірку V із 100 значень випадкової величини, розподіленої за рівномірним законом на відрізку [2, 13]

2. Побудуємо гістограму для вибірки V.

 

a=Vmin, b=Vmax

Перевіряємо цю гіпотезу за критерієм Пірсона з рівнем значимості =0.95.

         

Оскільки 2 2, то висунута  гіпотеза приймається. Таким чином, можна з імовірністю 95% вважати, що випадкова величина, для якої в нас є вибірка, розподілена рівномірно на відрізку [2.01, 12.945].


Лабораторна робота № 3. Ідентифікація параметрів моделей методом найменших квадратів.

Если по условию задан x и b. Как найти у…и считаем дальше G

Знайдемо згенеровані данні експерименту  y


Виконаємо завдання з використанням процедури
minimize пакета MathCad.

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

Лабораторна робота № 4.Побудова багатофакторної регресійної моделі

Побудувати двофакторну лінійну регресійну модель виду

при даних експерименту (n = 9, фактор x1 приймає значення з 1-го рядка таблиці, фактор x2 приймає значення з 1-го стовпця, що відповідають значенню змінної y перебувають на перетині).


Лабораторна робота №
5 Моделі, засновані на диференціальних рівняннях (D-схеми).

1. Динамічна модель, у загальному випадку, з декількома виходами y1=y1(t),…, ylk=yk(t) описується за допомогою системи звичайних диференційних рівнянь:

………………………………….         (2)

Якщо відомі значення y=(y1,y2,…,ylk)T у деякий момент часу t0, y(t0)=y0, то, розв'язавши систему диференційних рівнянь (2), буде знайдена траєкторія поводження вихідних змінних y=y(t) на заданому інтервалі [t0, t1].

2. Динамічна модель (1) описується одним рівнянням і має одну вихідну змінну . Визначаємо параметри моделі, виходячи із загального виду (2) Для розв‘язання диференційного рівняння (1) скористаємося процедурою rkfixed. Задаємо параметри процедури rkfixed, виходячи з того, що рівняння в завданні одне. Будуємо графік, визначивши масиви значень часу і відповідних значень змінної y.


Лабораторна робота №
6 Оцінка якості імітаційної моделі.

Оцінка адекватності моделі.

Визначимо й згенеруємо вибірку відгуку системи (Ys ):

У лабораторній роботі №3 була побудована модель:

Згенеруємо за нею вибірку відгуку моделі (Ym ):

Обчислимо за отриманими вибірками оцінки для середніх значень і дисперсій відгуків системи й моделі:

Перевіримо гіпотезу про рівність середніх Yscp й Ymcp за критерієм Стьюдента:

Оскільки Tkp < T, то гіпотеза з імовірністю 95% не приймається. Таким чином, побудована модель неадекватна системі.

Оцінка чутливості моделі до вхідного впливу факторів.

1. Обчислюється величина відносного середнього збільшенняпараметра Xk

2. Проводиться пара модельних експериментів при значеннях

Xk = Xk max й Xk = Xk min і середніх фіксованих значеннях інших

параметрів. Визначаються значення відгуку моделі Y f ( Xk max ) = 1 і

Y f ( Xk min ) = 2 .

3. Обчислюється відносне збільшення спостережуваної змінної Y

У результаті для k -го параметра моделі мають пари значень (DXk , DYk ), що характеризує чутливість моделі за цим параметром. Аналогічно формуються пари для інших параметрів моделі, які утворять множину { Xk , Yk } D D . Дані, отримані при оцінці чутливості моделі, можуть бути використані, зокрема, при плануванні експериментів. А саме, більша увага має приділятися тим параметрам, за якими модель є більш чутливою.


Лабораторна робота №7 Дослідження імітаційних моделей

Лабораторна робота № 9 Моделювання найпростіших систем масового обслуговування.

Блок GENERATE вводить транзакти в модель.

Синтаксис блока: GENERATE A,B,C,D,E

A – середнє значення інтервалу часу, через який кожний наступний транзакт надходить до моделі;

B – поле допуску для значення операнда А;

С – задає час появи в моделі першого транзакта;

D – задає максимальне число транзактів, яке має бути згенероване в блоці GENERATE;

Е – визначає пріоритет транзактів.

Блок TERMINATE видаляє транзакти з моделі.

Синтаксис блока: TERMINATE A

А – число, що віднімається з лічильника завершень.

Блок SEIZE моделює зайняття пристрою.

Синтаксис блока: SEIZE А

А – ім'я або номер пристрою.

Блок RELEASE призначений для вивільнення пристрою тим транзактом, яким він був зайнятий.

Синтаксис блока: RELEASE А

А – ім'я або номер пристрою.

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

Синтаксис блока: ADVANCE А,В

А – середній час перебування транзакта в блоці;

В – поле допуску для операнда А.

Для збору статистики за чергами використовуються блоки QUEUE (стати в чергу) і DEPART (покинути чергу).

Синтаксис блоків: QUEUE А,В і DEPART А,В

А – ім'я або номер черги;

В – число одиниць, на яке збільшується (зменшується) довжина черги.

Пріоритет назначається транзактам при генерації (операнд Е блока GENERATE) або блоком PRIORITY у будь-якому місці моделі.

Блок PRIORITY змінює пріоритет активного транзакта.

Синтаксис блока: PRIORITY А,В. Блок встановлює пріоритет А активному транзакту. Якщо в полі В записано BUFFER, то призначений пріоритет діє негайно.

Переривання та подальше відновлення початого обслуговування організується блоками PREEMPT і RETURN. Заявка, яка є причиною переривання, сама не може бути перерваною.

Синтаксис блока: PREEMPT А,B,C,D,E

А – ім'я або номер пристрою, що переривається;

В – режим зайняття пристрою. Операнд (необов'язковий) має бути PR або Null;

С – блок нового призначення транзакта, який в цей час володіє пристроєм;

D – номер параметра перерваного транзакта, який запам'ятовує недоданий час обслуговування, якщо перерваний транзакт видаляється з ланцюга майбутніх подій;

Е – при значенні RE виключає перерваний транзакт з боротьби за пристрій (тоді операнд С необов'язковий).

Блок RETURN А звільняє пристрій А або видаляє переваний транзакт з боротьби за пристрій.

*Сегмент 1: Обслуговування клієнтів

      GENERATE 30,10

      QUEUE Q_PERUKAR

      SEIZE PERUKAR

      DEPART Q_PERUKAR

      ADVANCE 45,15

      RELEASE PERUKAR

      TERMINATE

* Сегмент 2: Таймер

      GENERATE 480

      TERMINATE 1


Лабораторна робота №
10 Моделювання багатоканальних систем масового обслуговування.

Оператор опису БКП має вигляд: <ім'я БКП> STORAGE A.

Операнд А визначає місткість БКП, під якою розуміють кількість обслуговуючих каналів у БКП або кількість пристроїв, об'єднаних у БКП.

Для моделювання багатоканальних систем використовуються наступні блоки ENTER (увійти в БКП) і LEAVE (вийти з БКП).

Синтаксис блока: ENTER А,В

А – ім'я або номер БКП;

В – обсяг запиту транзакта (число одиниць, на яке зменшується місткість доступного БКП).

Синтаксис блока: LEAVE А,В

А – ім'я або номер БКП;

В – кількість пристроїв, що вивільняється.

PERUKARI STORAGE 2

*Сегмент 1 Обслуговування клієнтів 1-го типу (чоловіки)

      GENERATE 50,15

      QUEUE Q_PERUKARI

      ENTER PERUKARI

      DEPART Q_PERUKARI

      ADVANCE 30,5

      LEAVE PERUKARI

      TERMINATE

*Сегмент 2 Обслуговування клієнтів 2-го типу (жінки)

      GENERATE 30,10

      QUEUE Q_PERUKARI

      ENTER PERUKARI

      DEPART Q_PERUKARI

      ADVANCE 40,15

      LEAVE PERUKARI

      TERMINATE

* Сегмент 3 Таймер

      GENERATE 480

      TERMINATE 1

Лабораторна робота № 12 Використання функцій в GPSS World.

Моделювання випадкових величин

Розподіл, оператор, тип

Функції

Дискретно-рівномірний DUniform(A,B,C)

Цілий

А* – номер генератора випадкових чисел, А≥1;

[B*,C*] – інтервал генерованих значень, В>C.

Показниковий Exponential(A,B,C)

Дійсний

А* - номер генератора випадкових чисел, А>1;

B** – величина зсуву, яка визначає місцезнаходження розподілу; С** – величина, яку використовують для стискання або розтягування розподілу, C>0, B+C – cереднє значення, при В=0 C – середнє значення.

Нормальний

Normal(A,B,C)

Дійсний

А* – номер генератора випадкових чисел, А≥1;

B** – середнє значення розподілу; С** – стандартне відхилення розподілу, C>0;

Пуассона

Poisson(A,B)

Цілий

А* – номер генератора випадкових чисел, А≥1;

B** – середнє значення розподілу.

Рівномірний

Uniform(A,B,C)

Дійсний

А* – номер генератора випадкових чисел, А≥1;

[B*,C*] – інтервал генерованих значень, В<C;

Uniform(A,B,C)=Beta(A,B,C,1,1).

<ім'я функції> FUNCTION A,B

Операнди:

А задає аргумент функції (може бути значення будь-якої іншої функції, іменем, додатним цілим числом, рядком, виразом у дужках, СЧА або СЧА*параметром);

В задає тип функції й кількість координат (пара точок аргумент-функція X[i] й Y[i]).

Типи функцій

С – неперервна числова функція. Значення функції знаходиться методом лінійної інтерполяції й береться як ціле число.

D – дискретна числова функція. Значення функції береться рівним значенню на правому кінці інтервалу як ціле число.

Е – розширення поняття дискретної функції; у ній можна використати будь-який СЧА, крім матриць.

L – спискова числова функція, аргументом якої є відрізок натурального ряду, починаючи з 1.

Мрозширення поняття спискової функції; значенням функції може бути будь-який СЧА.

Значення

випадкової

величини

Відносна частота

Накопичена частота

Діапазон

Інтервал

3

0,14

0,14

0,0...0,14

1

6

0,21

0,35

0,14...0,35

2

8

0,23

0,58

0,35...0,58

3

9

0,22

0,8

0,58...0,8

4

11

0,2

1,0

0,8...1,0

5

Неперервні числові функції (Cn)

myfunc     FUNCTION     RN3,C6

0,0/.14,3/.35,6/.58,8/.8,9/1,12

Дискретні числові функції (Dn)

Myfunc  FUNCTION  RN3,D5

.14,3/.35,6/.58,8/.8,9/1,11

Дискретні атрибутивні функції (Еn)

Хконстанта

YСЧА

myfunk    FUNCTION     P2,E4

1,V$User1/5,V$User2/10,R$Corp/12,FN$Chas

подібні дискретним числовим функціям (Dn)

Відмінність:

після ідентифікування аргументу Х відбувається обчислення відповідного СЧА або виразу в дужках.

Приклад: для Р2, який дорівнює 11, відбувається обчислення функції з іменем Chas.

Спискові числові функції (Ln)

myfunk  FUNCTION Q$Dovzh,L4

1,Stan1/2,Stan2/3,Stan3/4,Stan4

Спискові атрибутивні функції (Мn)

Oplata     FUNCTION     X$Kvart,M5

1,Q$Drog/2,N$Term2/3, S$Uta/4,V$Zvan/5, FN$Ost


Лабораторна робота № 13 Використання в процесі моделювання стандартних числових атрибутів, збережуваних величин, змінних і виразів. Реалізація в моделях зміни маршрутів просування транзактів.

Збережувані значення. Транзакты не можуть безпосередньо посилатися один на одного. Їхнє спілкування реалізується через збережувані значення.

SAVEVALUE А,В

Блок змінює значення комірки А. Операнд А може супроводжуватися знаком «+» або «-» для вказівки додавання або віднімання від існуючого значення. Операнд В вказує значення, що повинне бути занесене, додане або відняте.

ASSIGN A,B,C

Блок використовується для задання або зміни значення параметра транзакта. Операнди:

А – номер параметра активного транзакта;

В – привласнюване значение;

С – номер функції (не обов'язковий).

PLUS A,B

Блок оцінює вираз А и поміщає результат в операнд В.

MARK A

Блок зчитує абсолютний час із системного годинника у параметр А активного транзакта.

INDEX A,B

Блок додає до параметра А активного транзакта числове значення, що зазначене у В. Результат поміщається в перший параметр активного транзакта.

SELECT О A,B,C,D,E,F

Блок вибирає об'єкт за умовою й поміщає його номер у параметр активного транзакта. Операнди:

О – стандартний логічний атрибут або відношення;

А – операнд для запису номера обраного елемента;

В – нижня межа діапазону пошуку;

С – верхня межа діапазону пошуку;

D – опорне значення (база порівняння) з операндом Е;

Е – ім'я класу СЧА, обов'язковий тільки для умовної форми;

F – номер блоку призначення, якщо не відібраний жоден об'єкт.

COUNT О A,B,C,D,E

Блок заносить число об'єктів у параметр активного транзакта. Операнди

О – логічний оператор або покажчик відношення;

А – операнд для прийняття результату;

В – нижня межа діапазону об'єктів, що перевіряються;

С – верхня межа діапазону;

D – опорне значення для операнда Е, обов'язкове тільки при наявності умови;

Е – специфікатор класу об'єктів (для умовного режиму перевірки).

LOGIC О А

Блок призначений для вмикання, вимикання або інвертування стану логічного ключа. Якщо логічний оператор О дорівнює S або R, то ключ А встановлюється в стан «увімкнений» (Set) або «вимкнений» (Reset) відповідно. Якщо логічний оператор – I, то стан ключа інвертується. Блок LOGIC у режимі інвертування дозволяє чергувати альтернативи різного роду – маршрути, функції числові значення й т.п.

Збережувані величини і матриці.

Засоби задання й зміни значень, оброблюваних моделлю.

Команда EQU створює іменований об'єкт і привласнює йому обумовлене вираженням числове значення.

Синтаксис: <ім'я> EQU <вираження>

Команда VARIABLE задає правило для одержання числового значення (BVARIABLE – логічного). При посиланні типу V$<ім'я> цей вираз обчислюється при поточних значеннях параметрів активного транзакта, збережуваних знвчень, тощо.

<ім'я> VARIABLE <вираз>

Матриця являє собою прямокутний масив чисел. Розмір матриці повинен бути оголошений попередньо в пропозиції MATRIX:

<ім'я> MATRIX ,B,C

Мітка <ім'я> визначає ім'я матриці. Значення поля повинне бути ім'ям.

Операнд А не використається в даній версії GPSS, оскільки немає необхідності специфікувати точність матриці збережуваних елементів. Він залишений для сумісності з більш старими версіями GPSS.

Наступні операнди (до шести) задають довжину по вимірах. При необхідності у векторі останній оголошується як двовимірна матриця з одним рядком (стовпцем).

У поле В задається число рядків матриці, у поле С – число стовпців. Операнди В і С можуть бути додатнівми цілими.

Індексування елементів по всіх вимірах починається з одиниці. Команда MATRIX повинна передувати першому посиланню на цю матрицю.

Оператор MATRIX створює матрицю в поточній моделі.

Матриця не може бути вилучена з поточної моделі.

Якщо оператор MATRIX віддаляється з виконуваної програми, зв'язок з матрицею в поточній моделі залишається.

Матриця може бути перевизначена або ініціалізована повторно іншим оператором MATRIX з тією ж міткою. Перевизначення, при якому розмір матриці змінюється, викликає виділення пам'яті під нову матрицю. При цьому раніше розподілена оперативна пам'ять залишається зайнятою.

Комірки й матриці використаються для зберігання й подальшого використання значень стандартних числових атрибутів. Початкові значення комірок і матриць можна задати за допомогою оператора опису INITIAL.

INITIAL А,В

А – елемент матриці, В – значення, що записується в зазначену комірку.

Оператор INITIAL привласнює елементам матриці початкові значення:

Наступні зміни значень робляться блоком MSAVEVALUE.

MSAVEVALUE A,B,C,D

Блок змінює значення елемента матриці (довільний доступ можливий тільки по першим двом вимірам інші індекси маються на увазі одиничними). Операнди блоку

А – ім'я або номер матриці з необов'язковим знаком «+» або «-»,

В, С – номера рядка й стовпця відповідно,

D – значення, що повинне бути записане, додане або відняте.

Змінні й вирази. Алфавіт мови GPSS складається з латинських букв, цифр і спеціальних символів. Рядкові й заголовні букви розрізняються тільки в строкових константах і коментарях. Рекомендуються службові слова набирати заголовними буквами, а індивідуальні імена об'єктів – рядковими, починаючи із заголовної.

При записі виразів використовуються наступні знаки операцій (у порядку убування пріоритету): ^ – піднесення до степеня; # – множення; / – ділення; \ – ділення націло; @ – віднімання по модулю; + , – – додавання й віднімання; >=, 'GE' – більше або дорівнює; <=, 'LE' – менше або дорівнює; >, 'G' – більше; <, 'L' – менше; =, 'Е' – дорівнює;!=, 'NE' – не дорівнює; &, 'AND' – логічне множення; |, 'OR' – логічне додавання; 'NOT' – заперечення.

З математичних функцій дозволений ABS, ATN (арктангенс), COS, SIN, TAN, EXP, LOG (натуральний), SQR (корінь), INT (виділення цілого числа). Аргументи математичних функцій повинні бути заключені в дужки. Всі кути задаються в радіанній мірі.


Лабораторна робота №14. Моделювання систем зі

зміненою дисципліною обслуговування

TRANSFER A,B,C,D

Блок змінює траєкторію руху активного транзакта. Операнди:

А – режим блоку, обираний з множини {BOTH, ALL, PICK, FN, P, SBR, SIM}, може бути також дробовим числом ім'ям, константою, СЧА.

В – номер або ім'я блоку (у режимі Р – ім'я параметра).

С – номер або ім'я блоку. У режимі функції (FN) або параметра – збільшення.

D – збільшення номера блоку для режиму ALL. За замовчуванням дорівнює 1.

Блок TRANSFER може діяти в одному з дев'яти режимів. При необхідності випадкового вибору номер ДСЧ установлюється на вкладці RANDOM.

Режим безумовного переходу. При відсутності операнда А активний транзакт переходить за адресою, специфікованою операндом В.

Статистичний режим. Якщо операнд А не є ключовим словом, то транзакт переходить за адресою, вказаною операндом С, з імовірністю, заданою операндом А. Якщо останній – ціле число, воно інтерпретується як кількість тисячних і перетвориться в дробову ймовірність. Альтернативне призначення специфікується операндом В. Його значення за замовчуванням – блок, наступний за TRANSFER.

Режим BOTH. Тут спочатку перевіряється блок, заданий операндом В. Якщо він не може прийняти активний транзакт, то перевіряється зазначений у С. Якщо обидва блоки відмовляться прийняти транзакт, то він залишиться в блоці TRANSFER, поки не зможе ввійти в один із блоків, що перевіряються.

Режим ALL. Перевіряється послідовність блоків між операндами В и С включно до першого успіху. Адреса кожного наступного блока, що первіряється, обчислюється додаванням операнда D (за замовчуванням 1) до адреси попереднього блоку. Якщо операнд С не використовується, перевіряється тільки один блок. Якщо жоден із блоків не зможе прийняти транзакт, він залишається в поточному блоці.

Режим PICK вибирає подальше призначення транзакта в інтервалі від В до С (послідовні номери) з рівними ймовірностями незалежно від можливого блокування.

Режим функції діє, коли операнд А є FN. Нове призначення вибирається обчисленням заданої операндом В цілочисельної функції, що потім складається з необов'язковим зсувом з операнда С.

Режим параметра задає операнд А=Р. Активний транзакт переходить за адресою, що дорівнює сумі значення параметра і операнда С. Ім'я або номер параметра зазначені операндом В.

Режим підпрограми реалізується при A=SBR. У цьому випадку активний транзакт завжди переходить за адресою, зазначеною операндом В. Адреса поточного блоку поміщається в параметр транзакта, зазначений операндом С. Ця технологія дозволяє організувати перехід транэакта з поверненням, аналогічний передачі керування на підпрограму з поверненням на продовження основної програми. Повернення забезпечується блоком TRANSFER у параметричній моді.

У режимі SIM перехід залежить від «індикатора затримки» транзакта, безпосередньо не доступного програмістові. Цей індикатор вмикається, коли транзакт одержує відмову у вхід у який-небудь блок, і може бути вимкнений блоком TRANSFER. При увімкненому індикаторі (Set) транзакт переходить за адресою, зазначеній в С, і індикатор переводиться в Reset. У противному випадку виконується перехід за адресою, зазначеною у В. Цей режим є рудиментом ранніх версій GPSS. Координовану оцінку стану декількох об'єктів простіше організувати через булеву змінну.

LOOP A,В

Блок LOOP (зациклити) модифікує параметр й управляє рухом активного транзакта, виходячи з результату цієї модифікації. Операнд А містить посилання на параметр транзакта, що грає роль лічильника, і значення параметра зменшується на 1. Якщо нове значення параметра не дорівнює нулю й операнд В специфікований то планується перехід транзакта за адресою, зазначеною в В. Інакше транзакт перходить до наступного блока. Таким чином, блок LOOP можна використати для задання циклічних маршрутів (не обчислень) з відомим числом повторень. Цикли виходять із від'ємним кроком і нижнім закінченням (обов'язковим проходженням тіла циклу). Допускаються вкладені цикли.

TEST О А,В,С

Блок порівнює значення зазначених СЧА й управляє напрямком руху транзакта, ґрунтуючись на результаті порівняння. Його операнди

О – перевіряє відношення числових  значень операндів А і В (в апострофи не заключається),

А,В – значення, що зіставляються;

С – альтернативний блок призначення.

Оскільки логічні значення в GPSS/W кодуються нулем й одиницею, у блоці TEST можна зіставляти й логічні значення.

При невиконанні умови, якщо операнд С не використовується, TEST діє в режимі відмови – блокує вхід активного транзакта, а при заданому С робить перехід по цьому операнду.

При заданому операнде С реалізується режим альтернативного виходу. При неуспішному порівнянні транзакт планується до передачі згідно операнду С и поміщається в ЦТС у початок своєї пріоритетної групи.

Блоки TEST й GATE мають більші можливості, але неуспішні перевірки умови можуть викликати великі витрати машинного часу. Для скорочення їхньої частоти можна помістити транзакти в ПЦ за допомогою блоків LINK й UNLINK.

GATE О А,В

Блок GATE (впустити) змінює рух транзакта по стану об'єкта, який перевіряє – логічного ключа, пристрою або БКП, але не черги. Стан завжди має логічне значення. Операнди

О – вид умови, що перевіряється (див. список СЧА). При виконанні умови активний транзакт переходить до наступного блоку.

А – ім'я або номер об'єкта, що повинен бути перевірений. Тип елемента повинен бути погоджений з умовою.

В – номер блока, до якого направляється транзакт при невиконанні умови.

Якщо операнд В не використовується, GATE діє в режимі відмови й затримує транзакт до виконання умови В сполученні з БКП GATE може використовуватися для формування пачок постійного обсягу, рівного ємності БКП.

Для розгалуження маршруту на два напрямки використовуються двопозиційні логічні ключі: замок є/немає, червоний або зелений сигнал світлофора, табличка «Місць немає», «Перерва» У випадку триколірного світлофора прийдеться використати блок TEST і числову змінну (VARIABLE).

DISPLACE A,B,C,D

Блок переміщає транзакт у будь-який блок зі збереженням інтервалу модельного часу. Його операнди:

А – номер переміщуваного транзакта;

В – блок призначення;

С – параметр переміщуваного транзакта, у якому може бути записаний залишковий час перебування у вихідному блоці;

D – альтернативне призначення для активного транзакта.


Лабораторна робота №15.
Моделювання динамічних систем типу "СМО без відмов". Моделювання систем з обмеженнями на довжину черги

Оператор опису таблиці TABLE має наступний формат:

<ім'я таблиці> TABLE A,B,C,D

Операнди:

А – аргумент таблиці – елемент даних, чий частотний розподіл

табулюватиметься. Операнд може бути ім'ям, цілим, СЧА або

СЧА*<параметр>;

В – верхня межа першого інтервалу. Операнд може бути цілим або ім'ям;

С – ширина частотного інтервалу (різниця між верхньою і

нижньою межею кожного частотного класу). Операнд може бути додатнім цілим;

D – число частотних інтервалів. Це число не може перевищувати 8 191. Операнд може бути додатнім цілим.

При необхідності побудови гістограми розподілу часу очікування

в черзі відповідна таблиця має бути описана управляючим оператором

QTABLE. Оператор QTABLE є засобом отримання розподілу перебування транзакта в черзі.

<ім'я таблиці> QTABLE A,B,C,D

Операнди:

А – ім'я черги. Операнд може бути додатнім цілим числом або ім'ям;

В – верхня межа першого частотного класу. Операнд може бути нулем або додатнім цілим;

С – розмір частотного інтервалу – різниця між верхньою і

нижньою межею кожного частотного класу. Операнд може бути додатнім цілим.

У полі D задається число частотних інтервалів. Воно не може перевищувати 8 191. Операнд може бути додатнім цілим числом.

Для збору елементів даних транзакт має увійти в блок TABULATE з тим же ім'ям таблиці, що визначене в блоці TABLE.

TABULATE А,В

Блок TABULATE табулює поточне значення заданого аргументу.

Спосіб табуляції залежить від режиму роботи таблиці, який

визначається оператором опису таблиці TABLE.

А – номер або ім'я таблиці, в яку табулюється значення

аргумента;

В – число одиниць, які повинні бути занесені в той частотний інтервал, куди потрапило значення аргумента. За замовчуванням В дорівнює одиниці. Операнд В може бути ім'ям, додатнім цілим, СЧА

або СЧА*<параметр>.

*Багатоканальний пристрій

LINES STORAGE 2

*Таблиця для запису часу, проведеного одним транзактом у моделі

CHAS TABLE M1,5,5,20

*Сегмент 1: Модель телефонної системи

GENERATE 1.5,1

POPITKA GATE SNF LINES,OGIDANIE

ENTER LINES

ADVANCE 3,1

LEAVE LINES

TABULATE CHAS

TERMINATE 1

OGIDANIE ADVANCE 5,1

TRANSFER ,POPITKA

*Запуск імітації

START 200


Лабораторна робота №16. Моделювання списками правил планування

LINK А,В,С

Блок LINK вводить транзакти до списку користувача. Блок може

бути використаний у двох режимах: умовному й безумовному.

Операнди:

А – ім’я або номер списку користувача;

В – визначає принцип упорядкованості. Допустимі значення: FIFO (транзакт передається в кінець списку); LIFO (транзакт передається на початок списку); PR (транзакти впорядковуються за спаданням пріоритету); Р (транзакти розташовуються у порядку зростання значення параметра); М1 (транзакти розташовуються в порядку зростання відносного часу перебування в моделі). У полі операнда В можна використовувати й інші СЧА, крім зазначених вище СЧА транзактів: арифметичну змінну, функцію, а також вираз у дужках. У цьому випадку здійснюється обчислення вказаного СЧА для активного транзакта й для решти транзактів, які вже перебувають у списку користувача, починаючи з початку черги. Після цього відбувається впорядкування транзактів у списку користувача за спаданням обчисленого значення. Прямої можливості побудувати список за спаданням значень параметра немає, проте опція BACK блока UNLINK при виборі зі списку сповна її замінює. При визначенні порядку включення в список пріоритет поточного транзакта в загальному випадку ігнорується;

С – блок призначення для активного транзакта у випадку, коли

він не приєднується до списку користувача (індикатор зв'язку списку користувача встановлений у нуль); індикатор зв’язку вмикається (встановлюється в 1) якщо він був вимкнений. У найпростішому варіанті (С не використовується) транзакт

завжди поміщається в список користувача А і видаляється зі всіх інших списків, виключаючи групи транзактів і списки переривань.

UNLINK О A,B,C,D,E,F

Блок виводить транзакти зі списку користувача.

Операнди:

О – відношення між числовими значеннями D і Е, при якому

відбувається видалення;

А – номер або ім'я списку користувача, з якого виводять

транзакти;

В – блок призначення для виведених транзактів;

С – максимальне число транзактів, що підлягають виведенню (за замовчуванням ALL);

D – порівнюваний атрибут (атрибут транзакта, що підлягає

перевірці, булева змінна для перевірки або BACK для виведення членів з кінця списку користувача);

Е – довідкове значення, з яким порівнюється операнд D (не

потрібний, якщо D – булева змінна);

F – блок альтернативного призначення для транзакта, що

увійшов в UNLINK.

Операнди D і Е і умова необов'язкові. Якщо вони відсутні,

виводяться всі транзакти від початку списку до його кінця або до досягнення ліміту (операнд С).

Операнд D можливий у трьох варіантах:

1. Якщо це булева змінна із значенням 1, то транзакт зі списку

виводиться.

2. Якщо D=BACK, то витягуються транзакти з кінця списку і до

вичерпання ліміту.

3. У решті випадків операнд D обчислюється стосовно транзакта зі списку користувача і використовується як номер параметра цього транзакта, значення якого і є кінцевий результат. Цей результат порівнюється з операндом Е.

BUFFER

Блок поміщає активний транзакт у список поточних подій услід за транзактами з таким же пріоритетом, і перегляд списку поточних подій починається спочатку. Остання обставина і є основною метою застосування BUFFER.

Блоки для обробки транзактів, що належать до однієї групи

Між транзактами, що перебувають у моделі, може існувати деякий зв'язок. Наприклад, незалежні роботи, які виконуються паралельно, не можуть забезпечуватися одним транзактом. Транзакт, що запускає їх, повинен розщеплюватися з подальшим збиранням компонентів. Очевидною є необхідність розпізнавання приналежності останніх до єдиного агрегату. Операції об'єднання необхідні також для системи з порогом обслуговування (наприклад, зібрати складний виріб можливо за наявності всіх деталей; автобус відправиться, коли буде зайнято в ньому не менше заданої кількості місць, тощо). З іншого боку, бажано мати можливість виконувати деякі групові дії над однорідними транзактами. Усі транзакти в моделях належать до множин, що називають групами (ансамблями, сім'ями). Як правило, в моделі співіснують декілька різних груп. Кожен транзакт є членом тільки однієї групи.

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

Групи корисні, коли процес повинен чекати настання деяких

подій. З поняттям групи пов'язані списки парності – у цьому випадку транзакти чекають у них членів своєї групи. У груп немає імен, на які можна було б посилатися при описі логіки моделі. У блоці ADOPT можна змінити групову приналежність транзакта. Управляти рухом транзактів залежно від їх приналежності до груп можна за допомогою блоків ASSEMBLE, GATHER, MATCH. За допомогою блока GATE і логічних умов M / NM вхід транзакта в будь-який блок можна поставити в залежність від наявності елементів тієї ж групи в іншому блоці.

SPLIT А,В,С

Блок SPLIT виконує функцію копіювання транзакта, що входить

до нього і називається початковим, або породжуючим. Операнди:

А – задає число створюваних копій. Усі копії формуються в

момент входу породжуючого транзакта до блока SPLIT. Сам транзакт робить спробу перейти до наступного за номером блока;

В – задає номер наступного блока, до якого переходять копії

транзакта, причому значення операнда В обчислюється для кожної копії окремо;

С – може бути номер параметра, що використовується для

присвоєння копіям послідовних номерів. Крім значень параметрів до кожної копії записуються значення пріоритету та позначка часу вихідного транзакта. Копії почергово надходять до списку поточних подій, причому кожна копія розміщується в кінець відповідного пріоритетного класу. Кожна нова копія стає членом групи транзактів, породженої одним вихідним транзактом, який було створено блоком GENERATE. Транзакти, що належали до однієї групи, об'єднуються інтерпретатором у список. За зв'язками усередині групи транзактів неможливо встановити, який із транзактів групи породжуючий. Якщо копія транзакта входить до блока SPLIT, то вторинна копія стає членом тієї самої групи, що й первинна.

ASSEMBLE A

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

Операнд А задає лічильник транзактів, що беруть участь у

збиранні. Значення лічильника необов'язково має дорівнювати

чисельності групи. Відмітимо, що:для кожної групи в даному блоці ASSEMBLE одночасно може виконуватися тільки одна операція з'єднання; у даному блоці ASSEMBLE може паралельно виконуватися операція з'єднання двох і більше груп; для кожної групи операції з'єднання можуть одночасно

виконуватися в декількох ASSEMBLE.

Транзактам, перерваним на пристрої, які завершили збирання в блоці ASSEMBLE, не дозволяється покинути блок до тих пір, поки всі переривання не будуть зняті.

Приклади використання блоків SPLIT і ASSEMBLE

Розглянемо фрагмент програми моделювання паралельних операцій введення-виведення:

SEIZE CPU

SPLIT 1,PCA2

ADVANCE FN$TIM1

RELEASE CPU

PAE1 ASSEMBLE 2

PCA2 SEIZE ARM

ADVANCE FN$TIM2

SEIZE CHAN

ADVANCE FN$TIM3

RELEASE CHAN

RELEASE ARM

TRANSFER ,PAE1

Транзакт займає пристрій (центральний процесор – CPU), і породжує одну копію, за допомогою якої моделюється операція введення-виведення. Потім вихідний транзакт моделює виконання програми процесором, затримуючись на відповідний час у блоці ADVANCE, після чого транзакт вивільнює процесор і входить до блока ASSEMBLE, в якому очікує закінчення операції введення-виведення. Тим часом копія моделює виконання операції введення-виведення і займає пристрій доступу (пристрій ARM), канал, затримується на час моделювання операцій зчитування або запису в блоці ADVANCE, потім вивільнює канал і пристрій доступу та надходить до блока ASSEMBLE. Після цього вихідний транзакт може продовжувати рух.

Блок GATHER (зібрати) діє аналогічно ASSEMBLE і має ті ж властивості. На відміну від ASSEMBLE в ньому при накопиченні заданого в першому операнді числа транзактів рух продовжують всі вони в порядку FIFO.

ADOPT A

Блок змінює групову приналежність активного транзакта на А.

MATCH A

Блоки MATCH – це парні блоки, які примушують транзакти синхронізуватися. Кожен з них посилається в своєму операнді на ім'я іншого. Коли транзакт входить в один з них, обчислюється операнд А і знаходиться спряжений блок MATCH. Якщо останній містить транзакт з того ж сімейства, що і активний, спряжений транзакт видаляється зі списку парності і переноситься в СПП. Активний транзакт продовжує рух. Якщо спряженого блока немає, відбувається останов з видачею повідомлення про помилку. Якщо транзакти у нинішній момент витиснені за пріоритетом, їм не дозволяється покинути блоки MATCH.

JOIN A,B

Блок додає активний транзакт до групи транзактів або число – до числової групи. Операнди:

А – номер групи, в яку буде доданий новий член;

В – значення, яке включається в числову групу. Якщо В специфікує число, блок JOIN оперує з числами, інакше – з транзактами. Працюючи з числами, JOIN обчислює операнди А і В. Потім число, задане в операнді В, включається в числову групу, вказану А. Оперуючи з транзактами, блок JOIN включає вхідний транзакт у групу, специфіковану операндом А. Нові члени поміщаються в список групи в порядку їх надходження.

REMOVE О A,B,C,D,E,F

Блок видаляє члени з груп. Його  _______операнди:

О – відношення між D і Е, при якому виконується видалення;

А – номер групи, з якої проводиться видалення;

В – максимальне число транзактів (може бути ALL, ім'я, константа СЧА), що видаляються;

С – значення, яке має бути видалене з числової групи, в режимі транзактів поле С не використовується;

D – номер параметра транзакта, який визначає члени групи, що видаляються, або PR, якщо ознакою для видалення є пріоритет;

Е – довідкове значення, з яким порівнюється операнд D активного транзакта;

F – альтернативний блок для активного транзакта, коли F не заданий, а також при результативному видаленні, тразакт продовжує рух по моделі.

Блок REMOVE діє в числовому режимі, якщо використовується операнд С. Інакше він працює з групою транзактів.

Найбільш споживані комплексні варіанти:

самовидалення – якщо В, D, Е не задані, транзакт видаляється; лічильник – D, E не задані, кількість транзактів вказана у В, видаляється з групи (якщо не вистачає – всі) ALL в цьому полі видаляє всю групу; управління за параметром або пріоритетом – використовуються поля B, D, E. Поле В указує кількість (можливо, ALL), D – параметр, що вивчається, або PR, E – порівнюваний __________СЧА. Умова видалення записується після REMOVE, за замовчуванням мається на увазі рівність;

екстремаль – умова має вигляд МАХ або MIN. Аналогічно попередньому випадку В, С, Е не застосовуються; у чисельній моді REMOVE використовує А, С і, можливо, F. У полі С указується шукане числове значення. Знайдений елемент покидає групу, за відсутності – активний транзакт переходить за адресою F.

EXAMINE A,B,C

Блок застосовується для перевірки членства в числовій групі або в групі транзактів і визначає рух транзакта, не змінюючи склад групи. Він працює або в "числовому" режимі, або в режимі "транзакта". Якщо використовується операнд В, режим числовий. Операнди:

А – ідентифікатор групи, що перевіряється;

В – вказує, яке числове значення розшукується;

С – альтернативний блок для активного транзакта, якщо члени

групи не знайдені.

SCAN О A,B,C,D,E,F

Блок працює тільки з групами транзактів. Він дозволяє тому транзакту (не обов'язково членові групи А), що увійшов до блока, вибрати перший елемент групи, параметр або пріоритет (В) якого задовольняють умові. Операнди:

О – відношення між В і С для вибору члена групи;

А – група, що перевіряється;

В – атрибут __________(PR або параметр), що перевіряється;

С – довідкове значення, з яким порівнюватиметься операнд В;

D – PR або номер параметра, значення якого має бути призначене параметру активного транзакта;

Е – номер параметра, що набуває значення;

F – нове призначення для того транзакта, що увійшов до блока SCAN, при неуспіху.

ALTER О A,B,C,D,E,F,G

Блок змінює пріоритет або параметр вибраних членів групи транзактів. Операнди:

О – покажчик відношення;

А – група транзактів, члени якої перевіряються на необхідність зміни;

В – максимальне число змін транзактів (за замовчуванням ALL);

С – змінний атрибут (PR або номер або ім'я параметра транзакта – члена групи);

D – замінююче значення;

Е – PR або параметр, який використовується для перевірки відношення;

F – базове значення, з яким порівнюється операнд Е;

G – альтернативний вихід для активного транзакта за відсутності змін.__


EMBED Mathcad  




1. тематически элегантный метод работающий в объектном пространстве
2. лицо одутловатое красное с синюшным оттенком особенно после злоупотреблений алкоголем
3.  Приятный женский голос эхом прокатился через Голубой зал НьюЙоркского вокзала ПортОсорити
4. Петербургский государственный университет Факультет Международных отношений Пособие
5. Утверждаю Согласовано Проректор по УР и КОД Начальник учебного отдела Коновалова Г
6. Тема- Ціни і ціноутворення в ринкових умовах Література- Посібники- Бойчик І
7. Лекция 2. Источники гражданского права Согласно п
8. 1дать необходимые для работы педагога знание анатома физиологических особенностей детей и подростков
9. Организация процесса приготовления и приготовление полуфабрикатов для сложной кулинарной продукции
10. Исследование потребительского кредитования на примере филиала
11. Электрический импеданс
12. х все производство сладостей в России было сконцентрировано в небольших кондитерских
13. Тема порядок и условия исполнения наказаний не связанных с изоляцией от общества
14. Культура это специфика человеческой деятельности это то что характеризует человека как вид
15. Самоуправление в системе структур управления в УО
16. ОН ЭМОЦИЯ [8
17. Тема Дошкольная педагогика как наука Выполнила Шаповалова Н
18. Разложение многочленов на множители Разложить многочлен на множители значит представить его в виде про
19. философия происходит от греческих слов phileo ~ любовь и sophi ~ мудрость и означает любовь к мудрости
20. Лекция 2 Законодательная номинальная ставка ~ это ставка установленная законом