Задание на лабораторные работы (1086521), страница 19
Текст из файла (страница 19)
По размеченному графу состояний можно составить также алгебраические уравнения относительно стационарных (финальных, конечных, предельных) вероятностей по следующему мнемоническому правилу: потоки вероятностей между любыми двумя соседними состояниями равны. Для применения этого мнемонического правила для графа состояний рисунка 2.1 следует между двумя состояниями провести воображаемую вертикальную черту и приравнять между собой потоки вероятностей, пересекающие эту черту слева и справа.
II ПРАКТИЧЕСКАЯ ЧАСТЬ
Рассмотрим пример моделирования многоканальной системы с ограниченной очередью и ограниченным временем ожидания. Сначала это моделирование проведем в системе MATLAB, а затем в системе GPSS/PC с целью получения операционных характеристик. В системе MATLAB применим аналитическое моделирование на основе решений соответствующих дифференциальных уравнений Колмогорова. В системе GPSS/PC (GPSS World) моделирование будет имитационное. В обоих случаях должны быть получены операционные характеристики системы, которые по своим значениям должны быть достаточно близки между собой.
2.1 Моделирование в системе MATLAB
П
усть дана система М/М/4/7 с ограниченным временем ожидания в очереди. Параметры системы следующие: λ = 2.5 с-1, = 0.8 с-1, v = 0.5 c-1. Размеченный граф состояний системы показан на рисунке 2.2.
Рисунок 2.2 — Граф состояний системы М/М/4/7 с ограниченным
временем ожидания
На рисунке 2.2 вокруг состояния 4 проведена воображаемая окружность, чтобы применить мнемоническое правило для составления дифференциальных уравнений Колмогорова. Такие окружности можно проводить вокруг каждого состояния. В соответствии с мнемоническим правилом получаем следующую систему дифференциальных уравнений:
Для существования стационарного состояния в исследуемой системе необходимо выполнение следующего нормировочного условия:
Для интегрирования системы дифференциальных уравнений (2.2) зададим естественные граничные условия:
Решение поставленной задачи может быть найдено по следующей MATLAB–программе, которая имеет две части: первая — это М-сценарий, а вторая — М-функция описания правых частей дифференциальных уравнений (2.2).
Приведем М-функцию описания правых частей дифференциальных уравнений:
function f=Lab2(t,P)
global A
f=A*P;
М-сценарий (скрипт–файл) решения задачи моделирования системы М/М/4/7 с ограниченным временем ожидания:
%Script-file Lab2
% M/M/4/7 with limit time of wait at queue
clear,clc,close all
% System's parameters
L = 2.5; M = 0.8;v = 0.5;
m = 4; K = 7;
global A
A=[-L M zeros(1,6);
L -(L+M) 2*M zeros(1,5);
0 L -(L+2*M) 3*M zeros(1,4);
0 0 L -(L+3*M) 4*M zeros(1,3);
zeros(1,3) L -(L+4*M) (4*M+v) 0 0;
zeros(1,4) L -(L+4*M+v) (4*M+2*v) 0;
zeros(1,5) L -(L+4*M+2*v) (4*M+3*v);
zeros(1,6) L -(4*M+3*v)];
% Procedure of integration call model
T=[0 14];
P0=[1;zeros(length(A)-1,1)];
[t,P]=ode45(@Lab2,T,P0);
Pcm = P(end,:);
k = linspace(0,K,K+1);
Ncp = sum(k.*Pcm);
Nq = 0;
for J = 0:(K - m)
Nq = Nq + J*Pcm(m+J);
end
Pomk = Pcm(end);
fprintf('\n\t Значени%s стационарных веро%sтностей:',char(255),char(255))
for J = 1:length(Pcm)
fprintf('\n\t\t P%d = %g',J-1,Pcm(J))
end
fprintf('\n\t Нормировочное условие: %g\n',sum(Pcm))
fprintf('\t Нормировочное условие выполн%sетс%s.\n',char(255),char(255))
disp('-----------------------------------------------------')
fprintf('\t ОПЕРАЦИОННЫЕ ХАРАКТЕРИСТИКИ:\n')
fprintf('\t Среднее число требований в системе Ncp = %1.5f\n',Ncp)
fprintf('\t Средн%s%s длина очереди Nq = %1.5f\n',char(255),char(255),Nq)
fprintf('\t Среднее врем%s пребывани%s требовани%s в системе T = %1.5f %s\n',char(255),char(255),char(255),Ncp/L,'c')
fprintf('\t Среднее врем%s пребывани%s требовани%s в очереди Tq = %1.5f %s\n',char(255),char(255),char(255),Nq/L,'c')
fprintf('\t Веро%sтность отказа P7 = Pomk = %1.5f\n',char(255),Pcm(end))
fprintf('\t Относительна%s пропускна%s способность Q = 1 - Pomk = %1.5f\n',char(255),char(255),1-Pomk)
% Diagram of probabilities
plot(t,P,'k','linew',2.2),grid on,
title('\bf\fontsize{12} System M/M/4/7 with limit time of wait at queue'),
text(0.35,0.5,'\bf\fontsize{12}\leftarrow P_0(t)'),
axis([-0.2 T(2) 0 1.05])
text(6.2,0.8,['\bf\fontsize{12}',' \lambda = ',sprintf('%g',L),...
'\newline \mu = ',sprintf('%g',M),'\newline v = ',sprintf('%g',v)])
xlabel('\bf\fontsize{14} Time'),ylabel('\bf\fontsize{14} Probability')
set(gca,'fontsize',12)
set(gcf,'color','w')
hold off
Результаты моделирования:
Значения стационарных вероятностей:
P0 = 0.0431039
P1 = 0.134697
P2 = 0.210465
P3 = 0.21922
P4 = 0.171284
P5 = 0.115703
P6 = 0.068895
P7 = 0.0366331
Нормировочное условие: 1
Нормировочное условие выполняется.
-------------------------------------------------------------------------
ОПЕРАЦИОННЫЕ ХАРАКТЕРИСТИКИ:
Среднее число требований в системе Ncp = 3.14674
Средняя длина очереди Nq = 0.60937
Среднее время пребывания требования в системе T = 1.25869 c
Среднее время пребывания требования в очереди Tq = 0.24375 c
Вероятность отказа P7 = Pomk = 0.03663
Относительная пропускная способность Q = 1 - Pomk = 0.96337
Диаграмма вероятностей состояний системы приведена на рисунке 2.3.
Рисунок 2.3 — Вероятности состояний системы М/М/4/7
с ограниченным временем ожидания
Задание:
-
В соответствии с номером компьютера произвести расчет операционных характеристик системы со следующими параметрами:
-
№1: λ=1.25, =1, v=2; №2: λ=1.25, =2, v=0.2;
-
№3: λ=0.25, =1, v=0.5; №4: λ=1.25, =0.1, v=2.5;
-
№5: λ=25, =5, v=10; №6: λ=12.5, =0.1, v=25;
-
№7: λ=0.1, =0.1, v=2.5; №8: λ=8, =2, v=5;
-
В программе предусмотреть "привязку" обозначения Р0(t) к своему графику.
-
Построить зависимость среднего времени пребывания в очереди от интенсивности входного потока требований.
-
Построить зависимость среднего времени пребывания в очереди от интенсивности обслуживания.
-
Построить зависимость среднего времени пребывания в очереди от интенсивности ухода из очереди "нетерпеливых" требований.
-
Построить зависимость средней величины очереди от интенсивности входного потока требований.
-
Построить зависимость средней величины очереди от интенсивности обслуживания.
-
Построить зависимость средней величины очереди от интенсивности ухода из очереди "нетерпеливых" требований.
2.2 Моделирование в системе GPSS/PC
Моделирование в системе GPSS различных версий будет представлять собой имитационное моделирование. Поэтому результаты моделирования носят частный характер, аналогичный разыгрыванию случайной величины. Например, при нечетном числе разыгрывании "орла" и "решки" вероятность выпадения (орла или решки) никогда не будет равняться 0.5, соответствующей теоретической вероятности. Даже при четном числе испытаний вероятность (частота) появления орла или решки может заметно отличаться от своей теоретической величины 0.5. То же самое можно сказать о результатах имитационного моделирования. При этом следует учитывать операционные возможности используемой системы моделирования. Например, различные версии GPSS могут давать различные результаты при моделировании одной и той же системы.
Ниже рассматривается программа моделирования системы М/М/4/7 с ограниченным временем ожидания в GPSS/PC v.2. Для проведения эксперимента в GPSS сначала сформируем массивы данных функций распределения входного потока требований, обслуживания и ухода из очереди "нетерпеливых" требований. Для этого используем следующую MATLAB–программу:
X=0:0.2:8;
px1=(1-exp(-X));
fprintf('\n\t ;CDF for Input:\n')
% L — ИНТЕНСИВНОСТЬ ВХОДНОГО ПОТОКА
q = [px1',1/L*X'];
dlmwrite('zx1',q) 1-st method
type zx1
C1=size([px1',1/L*X']);
fprintf('\t ;Row = g\t Col = g',C1)
fprintf('\n')
Y=0:0.2:8;
py1 = 1-exp(-Y);
fprintf('\n\t ;CDF for Service:\n')
% М — ИНТЕНСИВНОСТЬ ОБСЛУЖИВАНИЯ
C2=size([py1',1/M*Y']);
w = [py1',1/M*Y'];
dlmwrite('zx2',w) 1-st method
type zx2
fprintf('\t ;Row = g\tCol=g',C2)
fprintf('\n\t ;CDF for Limit time:\n')
V = 0:0.2:8;
pv = 1 - exp(-V);
% v — ИНТЕНСИВНОСТЬ УХОДА ИЗ ОЧЕРЕДИ
vv = [pv',1/v*V'];
C3 = size(vv);
dlmwrite('zx3',vv)
type zx3
Результаты выполнения этой программы не приводятся. Они будут использованы в GPSS–программе.
Задание:
-
Написать программу по формированию данных функций распределения входного потока требований, обслуживания и ухода из очереди "нетерпеливых" требований на основе команды fprintf в цикле с помощью for и end.
Программа для GPSS/PC:
simulate
exp1 function rn21,c41
0,0
0.18127,0.08
0.32968,0.16
0.45119,0.24
0.55067,0.32
0.63212,0.4
0.69881,0.48
0.7534,0.56
0.7981,0.64
0.8347,0.72
0.86466,0.8
0.8892,0.88
0.90928,0.96
0.92573,1.04
0.93919,1.12
0.95021,1.2
0.95924,1.28
0.96663,1.36
0.97268,1.44
0.97763,1.52
0.98168,1.6
0.985,1.68
0.98772,1.76
0.98995,1.84