Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Контрольная по моделированию вар9

.docx
Скачиваний:
178
Добавлен:
15.09.2014
Размер:
137.39 Кб
Скачать

Учреждение образования

«Белорусский государственный университет информатики и радиоэлектроники»

Контрольная работа по моделированию

Вариант №9

Выполнила: Калачева Анна Борисовна

студентка 3 курса ФЗО,

специальность ( ВМСиС )

группа № 000501-14

31 марта 2013 года

Домашний адрес, телефон,

электронный адрес:

213807 Могилевская обл., г. Бобруйск, б-вар Приберезинский, д. 26, кв. 97. (8029)1293099, ashka.90@mail.ru

Проверил: Мельник Николай Иосифович

Минск 2013

Задание 1. Аналитическое моделирование дискретно – стохастической СМО. Построить граф состояний СМО. Смысл кодировки состояний раскрыть (время до выдачи заявки, число заявок в накопителе и т.д.).

Вариант

ρ

π1

π2

Цель исследования

9

-

0,4

0,4

Q

Р-схема

Граф состояний кодируется четырехкомпонентным вектором abcd, где a– время до выдачи очередной заявки источником, a={2,1}; b – количество заявок, находящихся в накопителе (длина очереди), b={0,1};c и d – состояние каналов обслуживания, принимает следующие значения: 0 – канал свободен, 1 – канал занят обслуживанием заявки.

Граф состояний представлен на рисунке ниже.

(1-)(1-)+(1-)+ (1-)

Рисунок 1 – граф состояний СМО

Задание 2. Для СМО из задания 1 построить имитационную модель и исследовать ее (разработать алгоритм и написать имитирующую программу, предусматривающую сбор и статистическую обработку данных для получения оценок заданных характеристик СМО). Распределение интервалов времени между заявками во входном потоке и интервалов времени обслуживания –геометрическое с соответствующим параметром (ρ, π1, π2). Если ρ не задано, то входной поток – регулярный (с указанным в обозначении источника числом тактов между заявками).

Исходя из графа состояний, построим СЛАУ для нахождения вероятностей состояний:и дополним ее нормировочным уравнением

Подставив в СЛАУ значения и и, приведя СЛАУ к каноническому виду, получим:

Или в матричном виде:

Решив данную СЛАУ с помощью пакета MathCad, получим значения вероятностей состояний:

Используя данные значения, подсчитаем относительную пропускную способность

Относительная пропускная способность – это то вероятность того, что заявка будет обслужена, т.е. не получит отказ. Обозначим через вероятность того, что заявка получит отказ, т.е. не будет обслужена. Тогда

Таким образом, вероятность того, что заявка будет принята к обслуживанию, 84,3%

Имитационная модель.

// молелирование.cpp: определяет точку входа для консольного приложения.

//

#include <fstream>

#include "stdafx.h"

#include "stdio.h"

#include <iostream>

#include<cstdlib>

#include<ctime>

using namespace std;

int kk1=0, kk2=0, och=0, k1=0,k2=0, Zstop=1;

float otv,otb=0, otb1=0, pi1, pi2;

int random(){

int rd;

rd= rand() % 100 + 1;

return rd;

}

void K1(){

int a;

a=random();

cout<<"kanal 1="<<a<<endl;

if(a<=(pi1*100)) kk1=0;

else kk1=1;

}

void K2(){int a;

a=random();

cout<<"kanal 2="<<a<<endl;

if(a<=(pi2*100)) kk2=0;

else kk2=1;

}

void Generator (){

if (Zstop==1) {if (och==0 && k1==0) {k1=1;och=0;} else

if (och==0 && k1==1 ) {och=1; k1=1;} else

if (och==1 && k1==1) { cout<<"otbroshena";otb++;}

Zstop++;}

else Zstop--;

cout<<"iz gen "<<och<<" "<<k1<<" "<<k2<<endl;

}

void Obrabotka (){

if (och==0 && k1==1 && k2==0){

if (kk1==1)

{

k2=1;

k1=0;

och=0;

}else

{k1=1;

k2=0;

och=0;

}

} else

if (och==0 && k1==1 && k2==1)

if ((kk1==1 && kk2==1) ||(kk1==0 && kk2==1)||(kk1=1 && kk2==0))

{

if (kk1=1 && kk2==0) {otb1++;cout<<endl<<"otb1";}

och=0; k1=0; k2=1;

} else

if (kk1==0 && kk2==0) {och=0;k1=1;k2=1;}

if (och==1 && k1==1 && k2==0)

if (kk1==1) {och=0;k1=1;k2=1;}

if (och==1 && k1==1 && k2==1){

if ((kk1==1 && kk2==1 )|| (kk1==1 && kk2==0))

{

if (kk1==1 && kk2==0) {otb1++; cout<<endl<<"otb1";}

och=0; k1=1;k2=1;

} else

if (kk1==0 && kk2==1) {

och=1; k1=1; k2=0;

}

}

if (och==0 && k1==0 && k2==1){

if(kk2==1) {och=0; k1=1; k2=0;} else

if (kk2==0){och=0; k1=1; k2=1;}

}

if (och==0 && k1==0 && k2==0){

och=0; k1=1;k2=0;

}

}

int _tmain(int argc, _TCHAR* argv[])

{

cout<<"VVedite verojatnost P1"<<endl;

cin>>pi1;

cout<<"VVedite verojatnost P2"<<endl;

cin>>pi2;

double v,y=0;

int x=0;

while (x<1000) {

K1();

K2();

Generator();

Obrabotka();

cout<<" "<<och<<" "<<k1<<" "<<k2<<endl;

x++;

}

otv= (500-otb1)/(500-otb);

cout<<"otbrosh:"<< otb<< " "<<otb1<<endl;

cout<<" "<<otv<<endl;

system("pause");

return 0;

}

Скриншот выполнения программы представлен на рисунке 2. В результате выполнения программы получаем вероятность того, что заявка будет принята к обслуживанию, равную 79,66%

Рисунок 2 – Скриншот выполнения программы.

Задание 3. Построить аналитическую модель для СМО заданной структуры и рассчитать показатели ее эффективности. Входной поток простейший.

λ=3,0; М/M/1; Показательное; μ =3,5

Решение

Рисунок 2 – ДИП для системы М/M/1

Рассчитаем финальные вероятности состояний

Рассчитаем показатели эффективности СМО

  1. Cреднее число заявок А, обслуживаемое СМО в единицу времени, или абсолютная пропускная способность СМО

  1. вероятность обслуживания поступившей заявки Q, или относительная пропускная способность СМО

  1. вероятность отказа Ротк т.е вероятность того, что поступившая заявка не будет обслужена, получит отказ

  1. среднее число занятых каналов