Исследование и программная реализация моделей систем массового обслуживания

Марковские случайные процессы и потоки событий. Предельные вероятности состояний, уравнения Колмогорова. Процесс гибели и размножения. Одноканальная система с неограниченной очередью и ограниченной длиной очереди. Многоканальная система с отказами.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 24.12.2015
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

def = {'2','5','.9','.5'};

answer = inputdlg(prompt,dlg_title,num_lines,def);

%--------------------

if isempty(answer)~=1

%--------------------

n=str2num(answer{1});

m=str2num(answer{2});

lambda=str2num(answer{3});

mu=str2num(answer{4});

%Расчет характеристик СМО M/M/n

rho=lambda/mu;

rho_n=rho/n;

disp('Характеристики СМО M/M/n')

disp('------------------------')

disp('Исходные данные')

disp('---------------')

disp(['Число каналов: ',num2str(n)])

disp(['Интенсивность потока заявок: ',num2str(lambda)])

disp(['Интенсивность потока обслуживаний: ',num2str(mu)])

disp(['Коэффициент нагрузки канала: ',num2str(rho)])

disp(['Приведенный коэффициент нагрузки канала: ',num2str(rho_n)])

disp(['Число выводимых вероятностей нахождения в очереди: ',num2str(m)])

if rho_n>=1

disp('------------------')

disp('Результаты расчета')

disp('------------------')

disp('Приведенный коэффициент нагрузки канала не меньше единицы.')

disp('Стационарного режима не существует.')

disp('Очередь неограниченно возрастает.')

warndlg('Удельная нагрузка должна быть меньше единицы'...

,'Измените исходные данные')

else

k=1:n;

pv=rho.^k./factorial(k);

r=1:m;

pv(n+1:n+m)=pv(n)*rho_n.^r;

p0=1/(1+sum(pv(1:n))+pv(n)*rho_n/(1-rho_n));

p=[p0 pv*p0];

figure('Name','Вероятности состояний СМО M/M/n',...

'NumberTitle','off')

bar(0:n+m,p), hold on

bar(n+1:n+m,p(n+2:n+m+1),'g')

grid

xlim([-1 n+m+1])

xlabel('k')

ylabel('p_k')

P_idle=p0; P_block=0;

P_nq=sum(p(1:n+1));

P_q=p(n+1)*rho_n/(1-rho_n);

Q=1; A=lambda;

k_mean=rho;

r_mean=p(n+1)*rho_n/(1-rho_n)^2;

z_mean=k_mean+r_mean;

title(['\lambda = ',num2str(lambda),', \mu = ',num2str(mu)])

disp('------------------')

disp('Результаты расчета')

disp('------------------')

disp('Вероятности состояний:')

for k=0:n+m;

disp(['p(',num2str(k),') = ',num2str(p(k+1))])

end

disp(['Сумма выведенных вероятностей: ',num2str(sum(p))])

disp(['Вероятность простоя: ',num2str(P_idle)])

disp(['Вероятность отказа: ',num2str(P_block)])

disp(['Вероятность отсутствия очереди: ',num2str(P_nq)])

disp(['Вероятность наличия очереди: ',num2str(P_q)])

disp(['Относительная пропускная способность: ',num2str(Q)])

disp(['Абсолютная пропускная способность: ',num2str(A)])

disp(['Среднее число занятых каналов: ',num2str(k_mean)])

disp(['Среднее число заявок в очереди: ',num2str(r_mean)])

disp(['Среднее число заявок в системе: ',num2str(z_mean)])

disp(['Среднее время обслуживания: ',num2str(k_mean/lambda)])

disp(['Среднее время ожидания: ',num2str(r_mean/lambda)])

disp(['Среднее время пребывания в системе: ',num2str(z_mean/lambda)])

end

%--------------------

end

%--------------------

ПРИЛОЖЕНИЕ Г

Текст программы расчета характеристик СМО с неограниченной очередью на VBA

Private Sub UserForm_Click()

End Sub

Private Sub ПолеЗаявки_Change()

End Sub

Private Sub ПолеОбслуживания_Change()

End Sub

Private Sub ПолеЧисло_Change()

End Sub

Private Sub ФлажокДиаграмма_Click()

End Sub

Private Sub КнопкаОтмена_Click()

РасчетСМО.Hide

End Sub

Private Sub КнопкаРасчет_Click()

Dim N, L, M, R, S, SS, PS As Double

Dim I, NP, NM, IC As Integer

Dim P(), X() As Double

If IsNumeric(ПолеКаналы.Text) = False Then

ir = MsgBox("Введите правильно значение числа каналов!", vbExclamation)

ПолеКаналы.SetFocus

Exit Sub

End If

If IsNumeric(ПолеЗаявки.Text) = False Then

ir = MsgBox("Введите правильно значение интенсивности потока заявок!", vbExclamation)

ПолеЗаявки.SetFocus

Exit Sub

End If

If IsNumeric(ПолеОбслуживания.Text) = False Then

ir = MsgBox("Введите правильно значение интенсивности потока обслуживаний!", vbExclamation)

ПолеОбслуживания.SetFocus

Exit Sub

End If

If IsNumeric(ПолеЧисло.Text) = False Then

ir = MsgBox("Введите правильно значение числа вероятностей!", vbExclamation)

ПолеЧисло.SetFocus

Exit Sub

End If

N = CInt(ПолеКаналы.Text)

L = CDbl(ПолеЗаявки.Text)

M = CDbl(ПолеОбслуживания.Text)

NP = CInt(ПолеЧисло.Text)

R = L / M

If R / N < 1 Then

NM = N + NP

ReDim P(NM), X(NM)

For I = 0 To NM

X(I) = I

Next I

S = 0

For I = 0 To N

X(I) = I

S = S + R ^ I / Application.WorksheetFunction.Fact(I)

Next I

SS = R ^ (N + 1) / ((N - R) * Application.WorksheetFunction.Fact(N))

P(0) = 1 / (S + SS)

For I = 1 To N

P(I) = R ^ I / Application.WorksheetFunction.Fact(I) * P(0)

Next I

S = R ^ N / Application.WorksheetFunction.Fact(N)

For I = 1 To NP

P(N + I) = S * (R / N) ^ I * P(0)

Next I

PS = N * R ^ (N + 1) * P(0) / ((N - R) ^ 2 * Application.WorksheetFunction.Fact(N))

Worksheets(1).Cells(5, 1).Value = "Исходные данные:"

Worksheets(1).Cells(6, 1).Value = "-число каналов:"

Worksheets(1).Cells(6, 4).Value = N

Worksheets(1).Cells(7, 1).Value = "-интенсивность потока заявок:"

Worksheets(1).Cells(7, 4).Value = L

Worksheets(1).Cells(8, 1).Value = "-интенсивность потока обслуж.:"

Worksheets(1).Cells(8, 4).Value = M

Worksheets(1).Cells(9, 1).Value = "-коэффициент нагрузки канала:"

Worksheets(1).Cells(9, 4).Value = R

Worksheets(1).Cells(10, 1).Value = "Результаты расчета:"

Worksheets(1).Cells(11, 1).Value = "-вероятность отказа:"

Worksheets(1).Cells(11, 4).Value = 0

Worksheets(1).Cells(12, 1).Value = "-отн. пропускная способность:"

Worksheets(1).Cells(12, 4).Value = 1

Worksheets(1).Cells(13, 1).Value = "-ср. число занятых каналов:"

Worksheets(1).Cells(13, 4).Value = R

Worksheets(1).Cells(14, 1).Value = "-ср. число заявок в очереди:"

Worksheets(1).Cells(14, 4).Value = PS

Worksheets(1).Cells(15, 1).Value = "-вероятности состояний:"

For I = 0 To NM

IC = I + 16

Worksheets(1).Cells(IC, 1).Value = I

Worksheets(1).Cells(IC, 2).Value = P(I)

Next I

If ФлажокДиаграмма = True Then

For I = 0 To NM

If P(I) <= 0.000001 Then P(I) = 0

Next I

Call Diagramma(NM, X, P)

End If

Else

ir = MsgBox("Финальные вероятности не существуют и очередь неограниченно возрастает.", vbExclamation)

End If

End Sub

Private Sub ПолеКаналы_Change()

End Sub

Sub Diagramma(NM, X, P)

Range("E20").Select

Charts.Add

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("E20")

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).XValues = X

ActiveChart.SeriesCollection(1).Values = P

ActiveChart.SeriesCollection(1).Name = "Вероятности состояний СМО"

ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"

ActiveChart.HasLegend = False

End Sub

ПРИЛОЖЕНИЕ Д

Текст программы расчета характеристик СМО с ограниченной очередью в MATLAB

%Характеристики многоканальной СМО

%с ограниченной длиной очереди M/M/n:m

clc

clear all, close all

%Ввод исходных данных

prompt = {'Число каналов СМО M/M/n:m:','Число мест в очереди',...

'Интенсивность потока заявок:',...

'Интенсивность потока обслуживаний:'};

dlg_title = 'Ввод данных';

num_lines = 1;

def = {'2','3','2','2'};

answer = inputdlg(prompt,dlg_title,num_lines,def);

%--------------------

if isempty(answer)~=1

%--------------------

n=str2num(answer{1});

m=str2num(answer{2});

lambda=str2num(answer{3});

mu=str2num(answer{4});

%Расчет характеристик СМО M/M/n:m

rho=lambda/mu;

rho_n=rho/n;

k=1:n;

pv=rho.^k./factorial(k);

r=1:m;

pv(n+1:n+m)=pv(n)*rho_n.^r;

p0=1/(1+sum(pv));

p=[p0 pv*p0];

figure('Name','Вероятности состояний СМО M/M/n:m',...

'NumberTitle','off')

bar(0:n+m,p), hold on

bar(n+1:n+m,p(n+2:n+m+1),'g')

grid

xlim([-1 n+m+1])

xlabel('k')

ylabel('p_k')

P_idle=p0; P_block=p(end);

P_nq=sum(p(1:n+1)); P_q=sum(p(n+2:n+m+1));

Q=1-P_block; A=lambda*Q;

k_mean=A/mu;

r_mean=sum(r.*p(n+2:n+m+1));

z_mean=k_mean+r_mean;

title(['\lambda = ',num2str(lambda),', \mu = ',num2str(mu)])

disp('Характеристики СМО M/M/n:m')

disp('--------------------------')

disp('Исходные данные')

disp('---------------')

disp(['Число каналов: ',num2str(n)])

disp(['Число мест в очереди: ',num2str(m)])

disp(['Интенсивность потока заявок: ',num2str(lambda)])

disp(['Интенсивность потока обслуживаний: ',num2str(mu)])

disp(['Коэффициент нагрузки канала: ',num2str(rho)])

disp(['Приведенный коэффициент нагрузки канала: ',num2str(rho_n)])

disp('------------------')

disp('Результаты расчета')

disp('------------------')

disp('Вероятности состояний:')

for k=0:n+m;

disp(['p(',num2str(k),') = ',num2str(p(k+1))])

end

disp(['Вероятность простоя: ',num2str(P_idle)])

disp(['Вероятность отказа: ',num2str(P_block)])

disp(['Вероятность отсутствия очереди: ',num2str(P_nq)])

disp(['Вероятность наличия очереди: ',num2str(P_q)])

disp(['Относительная пропускная способность: ',num2str(Q)])

disp(['Абсолютная пропускная способность: ',num2str(A)])

disp(['Среднее число занятых каналов: ',num2str(k_mean)])

disp(['Среднее число заявок в очереди: ',num2str(r_mean)])

disp(['Среднее число заявок в системе: ',num2str(z_mean)])

disp(['Среднее время обслуживания: ',num2str(k_mean/lambda)])

disp(['Среднее время ожидания: ',num2str(r_mean/lambda)])

disp(['Среднее время пребывания в системе: ',num2str(z_mean/lambda)])

%--------------------

end

%--------------------

ПРИЛОЖЕНИЕ Е

Текст программы расчета характеристик СМО с ограниченной очередью на VBA

Private Sub НадписьНагрузка_Click()

End Sub

Private Sub НадписьЧисло_Click()

End Sub

Private Sub ПолеВремя_Change()

End Sub

Private Sub ПолеЗаявки_Change()

End Sub

Private Sub ПолеОбслуживания_Change()

End Sub

Private Sub ПолеЧисло_Change()

End Sub

Private Sub ФлажокДиаграмма_Click()

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub КнопкаОтмена_Click()

РасчетСМО.Hide

End Sub

Private Sub КнопкаРасчет_Click()

Dim N, NP, L, M, R, S, S1, S2, PS, NQ As Double

Dim I, NM, IC As Integer

Dim P(), X() As Double

If IsNumeric(ПолеКаналы.Text) = False Then

ICh = MsgBox("Введите правильно значение числа каналов!", vbExclamation)

ПолеКаналы.SetFocus

Exit Sub

End If

If IsNumeric(ПолеЗаявки.Text) = False Then

ir = MsgBox("Введите правильно значение интенсивности потока заявок!", vbExclamation)

ПолеЗаявки.SetFocus

Exit Sub

End If

If IsNumeric(ПолеОбслуживания.Text) = False Then

ir = MsgBox("Введите правильно значение интенсивности потока обслуживаний!", vbExclamation)

ПолеОбслуживания.SetFocus

Exit Sub

End If

If IsNumeric(ПолеЧисло.Text) = False Then

ir = MsgBox("Введите правильно значение наибольшего числа заявок в очереди!", vbExclamation)

ПолеЧисло.SetFocus

Exit Sub

End If

N = CInt(ПолеКаналы.Text)

L = CDbl(ПолеЗаявки.Text)

M = CDbl(ПолеОбслуживания.Text)

NP = CDbl(ПолеЧисло.Text)

R = L / M

NM = N + NP

ReDim P(NM), X(NM)

For I = 0 To NM

X(I) = I

Next I

S = 0

For I = 0 To N

S = S + R ^ I / Application.WorksheetFunction.Fact(I)

Next I

S1 = 0

S2 = 0

For I = 1 To NP

S1 = S1 + (R / N) ^ I

S2 = S2 + I * (R / N) ^ I

Next I

S1 = S1 * R ^ N / Application.WorksheetFunction.Fact(N)

P(0) = 1 / (S + S1)

NQ = S2 * R ^ N / Application.WorksheetFunction.Fact(N) * P(0)

For I = 1 To N

P(I) = R ^ I / Application.WorksheetFunction.Fact(I) * P(0)

Next I

For I = 1 To NP

P(N + I) = R ^ (N + I) / (N ^ I * Application.WorksheetFunction.Fact(N)) * P(0)

Next I

Worksheets(1).Cells(5, 1).Value = "Исходные данные:"

Worksheets(1).Cells(6, 1).Value = "-число каналов:"

Worksheets(1).Cells(6, 4).Value = N

Worksheets(1).Cells(7, 1).Value = "-интенсивность потока заявок:"

Worksheets(1).Cells(7, 4).Value = L

Worksheets(1).Cells(8, 1).Value = "-интенсивность потока обслуж.:"

Worksheets(1).Cells(8, 4).Value = M

Worksheets(1).Cells(9, 1).Value = "-коэффициент нагрузки канала:"

Worksheets(1).Cells(9, 4).Value = R

Worksheets(1).Cells(10, 1).Value = "-длина очереди:"

Worksheets(1).Cells(10, 4).Value = NP

Worksheets(1).Cells(11, 1).Value = "Результаты расчета:"

Worksheets(1).Cells(12, 1).Value = "-вероятность отказа:"

Worksheets(1).Cells(12, 4).Value = P(N + NP)

Worksheets(1).Cells(13, 1).Value = "-отн. пропускная способность:"

Worksheets(1).Cells(13, 4).Value = 1 - P(N + NP)

Worksheets(1).Cells(14, 1).Value = "-ср. число заявок в очереди:"

Worksheets(1).Cells(14, 4).Value = NQ

Worksheets(1).Cells(15, 1).Value = "-ср. число занятых каналов:"

Worksheets(1).Cells(15, 4).Value = R * (1 - P(N + NP))

Worksheets(1).Cells(16, 1).Value = "-вероятности состояний:"

For I = 0 To NM

IC = I + 17

Worksheets(1).Cells(IC, 1).Value = I

Worksheets(1).Cells(IC, 2).Value = P(I)

Next I

If ФлажокДиаграмма = True Then

For I = 0 To N + NP

If P(I) <= 0.000001 Then P(I) = 0

Next I

Call Diagramma(NM, X, P)

End If

End Sub

Private Sub ПолеКаналы_Change()

End Sub

Sub Diagramma(NM, X, P)

Range("E20").Select

Charts.Add

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("E13")

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).XValues = X

ActiveChart.SeriesCollection(1).Values = P

ActiveChart.SeriesCollection(1).Name = "Вероятности состояний СМО"

ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"

ActiveChart.HasLegend = False

End Sub

Размещено на Allbest.ru

...

Подобные документы

  • Торговый центр как однофазная многоканальная система с одной очередью конечной длины Структура и элементы моделей системы массового обслуживания. Очередь и дисциплины ее обслуживания. Принципы и этапы моделирования средств массового обслуживания на ЭВМ.

    лабораторная работа [93,2 K], добавлен 04.06.2009

  • Построение модели одноканальной системы массового обслуживания с отказами с использованием блоков библиотеки SimEvents. Проведение экспериментов, определение статистических и вероятностных характеристик системы в стационарном режиме; листинг моделей.

    лабораторная работа [384,4 K], добавлен 20.05.2013

  • Система массового обслуживания как одна из основных моделей, используемых инженерами-системотехниками, примеры: телефонные станции, ремонтные мастерские, билетные кассы. Характеристика и особенности многоканальной системы массового обслуживания.

    контрольная работа [404,2 K], добавлен 19.11.2012

  • Сравнительный анализ характеристик эффективности функционирования многолинейных систем массового обслуживания с отказами по пропускной способности, среднему числу заявок и времени их пребывания в системе. Оценка ожидаемого дохода и дисперсии дохода СМО.

    курсовая работа [721,8 K], добавлен 16.05.2015

  • Программные средства имитационного моделирования систем массового обслуживания. Программная среда Matlab, ее структура и основные компоненты, функциональные особенности, а также назначение. Разработка подсистем моделирования. Инструкция пользователя.

    дипломная работа [3,3 M], добавлен 10.07.2017

  • Определение назначения и описание функций имитационных моделей стохастических процессов систем массового обслуживания. Разработка модели описанной системы в виде Q-схемы и программы на языке GPSS и C#. Основные показатели работы имитационной модели.

    курсовая работа [487,4 K], добавлен 18.12.2014

  • Методика и особенности составления имитационной модели системы массового обслуживания (СМО). Анализ и статистическая обработка показателей эффективности СМО путем решения уравнения Колмогорова, их сравнение с результатами аналитического моделирования.

    курсовая работа [609,2 K], добавлен 31.01.2010

  • Понятие, назначение и классы систем массового обслуживания. Создание имитационной модели вычислительного центра коллективного пользования в среде Matlab Simulink. Построение многоканальных СМО с отказами каналами; расчет показателей их эффективности.

    курсовая работа [864,6 K], добавлен 26.06.2014

  • Проектирование и реализация модели, которая будет имитировать автозаправочную станцию с постоплатой. Подбор оптимальных параметров модели с учетом требований к сети массового обслуживания. Разработка модели в среде имитационного моделирования GPSS World.

    контрольная работа [279,5 K], добавлен 16.03.2014

  • Системы, описывающие массовое обслуживание. Разработка системы массового обслуживания для магазинов. Постановка в очередь, порядок обслуживания, выбывание из очереди, периодичность попадания в нее. Описание программного модуля, листинг программы.

    курсовая работа [171,8 K], добавлен 20.01.2010

  • Построение имитационной модели системы массового обслуживания, список и содержание ее активностей. Блок-схема алгоритма моделирования и текст процедуры. Моделирование случайных независимых величин и процессов. Оптимизация системы массового обслуживания.

    курсовая работа [4,0 M], добавлен 28.05.2013

  • Served Time Generator как генератор интервалов времени обслуживания, общая характеристика. Способы построения модели многоканальной сети массового обслуживания с отказами с использованием блоков библиотеки SimEvents, рассмотрение особенностей сетей.

    лабораторная работа [176,8 K], добавлен 20.05.2013

  • Система GPSS World как мощная универсальная среда моделирования как дискретных, так и непрерывных процессов, предназначенная для профессионального моделирования самых разнообразных процессов и систем. Системы массового обслуживания. Листинг программы.

    курсовая работа [499,6 K], добавлен 25.12.2013

  • Разработка вероятностных моделей реальных систем обслуживания. Особенности систем массового обслуживания (СМО), удовлетворяющих потребности населения в услугах определенного вида. Требования к функциям СМО на примере медицинского кабинета с тремя врачами.

    курсовая работа [3,6 M], добавлен 15.11.2015

  • Основное назначение систем массового обслуживания (СМО): обслуживание потока заявок. Моделирование СМО для стоянки такси, определение характеристик эффективности работы в качестве статистических результатов моделирования. Схема процесса функционирования.

    курсовая работа [1,2 M], добавлен 27.12.2011

  • Основные элементы системы массового обслуживания, ее модель, принципы и задачи работы. Выбор входных распределений. Построение генераторов случайных чисел. Логика работы программы, планирование эксперимента. Результаты моделирования и рекомендации.

    курсовая работа [2,5 M], добавлен 05.11.2009

  • Программа, моделирующая систему массового обслуживания. Изучение режима функционирования обслуживающей системы и исследование явлений, возникающих в процессе обслуживания. Описание программного модуля, руководство пользователя для работы с программой.

    курсовая работа [277,5 K], добавлен 20.01.2010

  • Определение характеристик системы массового обслуживания – вероятность обслуживания заявки, занятости любого канала системы, среднее число занятых каналов. Описание блок-схемы алгоритма. Разработка имитационной и аналитической моделей и их сравнение.

    курсовая работа [860,4 K], добавлен 24.12.2013

  • Создание библиотеки классов имитационного моделирования и реализация алгоритма имитационного моделирования системы массового обслуживания "Модель комиссионного магазина". Использование для разработки среды программирования C++. Словарь предметной области.

    курсовая работа [581,0 K], добавлен 23.01.2013

  • Характеристика системы массового обслуживания, куда поступают заявки обслуживания. Особенности моделирования системы массового обслуживания. Имитация работы системы массового обслуживания с относительными приоритетами. Отчеты полного факторного плана.

    курсовая работа [1,1 M], добавлен 14.07.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.