50341

Постройка графа состояний P-схемы

Лабораторная работа

Информатика, кибернетика и программирование

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

Русский

2014-01-21

166 KB

23 чел.

Белорусский государственный университет

информатики и радиоэлектроники

Кафедра ПОИТ

Отчет

по выполнению лабораторной работы №3

Выполнила: ст. гр. 950503                                                                           Проверил:

Трутнёва А. А.                                                                 Мельник Н.И.

Минск

2012 г.

Задание

Задание 1. Построить граф состояний P-схемы .

 Смысл кодировки состояний раскрыть (время до выдачи заявки, число заявок в накопителе и т.д.).

На схеме условно обозначены:

По графу построить аналитическую модель и, решив ее, определить вероятности состояний. Рассчитать теоретическое значение показателя эффективности, заданного целью исследования задания 2.

13.

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

13

-

0,55

0,5

Рбл, А

Граф СМО


Расчёт параметров:


Вероятность блокировки  =  0.071

Абсолютная пропускная способность = 0.297

Имитация работы СМО:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Collections;

namespace Modeling3

{

   class SMO

   {

       public int tics = 0;    //количество повторений

       int s1 = 0;             //источник

       int j1=0;               //очередь

       int t1=0;               //1 канал

       int t2=0;               //2 канал

       int maxJ=0;             //максимальное кол-во заявок в очереди

       public int deny = 0;    //блокировка

       int p=0;           //через сколько тактов источник дает заявку

       double p1=0;

       double p2=0;

       public int c2000 = 0;

       public int c1000 = 0;

       public int c2010 = 0;

       public int c1010 = 0;

       public int c1001 = 0;

       public int c2110 = 0;

       public int c2011 = 0;

       public int c1110 = 0;

       public int c0110 = 0;

       public int c1011 = 0;

       public int c2111 = 0;

       public int c1111 = 0;

       public int c0111 = 0;

       

       Random rnd1;

       Random rnd2;

       public int orders;          //кол-во поступивших заявок

       public int accepted;        //кол-во принятых заявок (заявки, которые прошли систему полностью)

      

       public SMO(int p, double p1, double p2, int maxJ)

       {

           this.p = p;

           this.p1 = p1;

           this.p2 = p2;

           this.maxJ = maxJ;

           orders = 0;

           accepted = 0;

           rnd1 = new Random(2);

           rnd2 = new Random(3);

       }

       public void tick(int counter)

       {

           s1=p;     //считает сколько тактов осталось до выдачи заявки

           bool pw=false;      //сработал источник

           bool p1w=false;     //сработал первый канал

           bool p2w=false;     //сработал второй канал

           bool locked = false; //заявка блокирована

           double tmp=0;       // буфер для записи результата рандома

           c2000 = 1;          // сработал источник

           string currentState = "";

           for (tics = 0; tics < counter; tics++)

           {

               pw=false;

               p1w=false;

               p2w=false;

               if (s1 != 0) s1--;

               if (s1 == 0) pw = true;

               if (t1 == 1)

               {

                   tmp = rnd1.NextDouble();

                   if (tmp > p1) p1w = true;

               }

               if (t2 == 1)

               {

                   tmp = rnd2.NextDouble();

                   if (tmp > p2) p2w = true;

               }

               

               if (p2w)

               {

                   t2 = 0;

                   accepted++;

                   

               }

               if (p1w)

               {

                   t1 = 0;

                   if (t2 == 0) t2 = 1;

                   if (j1 > 0)

                   {

                       j1--;

                       t1 = 1;

                   }

               }

               if (pw)

               {

                   orders++;

                   if ((j1 == 0) && (t1 == 0))

                   {

                       t1 = 1;

                       s1 = p;

                       locked = false;

                   }

                   else if (j1 < maxJ)

                   {

                       j1++;

                       s1 = p;

                       locked = false;

                   }

                   else

                   {

                       if(!locked) deny++;

                       locked = true;

                       s1 = 0;

                       orders--;

                   }

               }

               currentState = s1.ToString() + j1.ToString() + t1.ToString() + t2.ToString();

               switch(currentState)

               {

                   case "2000":

                       {

                           c2000++;

                           break;

                       }

                   case "1000":

                       {

                           c1000++;

                           break;

                       }

                   case "2010":

                       {

                           c2010++;

                           break;

                       }

                   case "1010":

                       {

                           c1010++;

                           break;

                       }

                   case "1001":

                       {

                           c1001++;

                           break;

                       }

                   case "2110":

                       {

                           c2110++;

                           break;

                       }

                   case "2011":

                       {

                           c2011++;

                           break;

                       }

                   case "1110":

                       {

                           c1110++;

                           break;

                       }

                   case "0110":

                       {

                           c0110++;

                           break;

                       }

                   case "1011":

                       {

                           c1011++;

                           break;

                       }

                   case "2111":

                       {

                           c2111++;

                           break;

                       }

                   case "1111":

                       {

                           c1111++;

                           break;

                       }

                   case "0111":

                       {

                           c0111++;

                           break;

                       }

                   default:

                       {

                           break;

                       }

               }

           }

       }  }}


 

А также другие работы, которые могут Вас заинтересовать

78575. Охрана природы 10.03 MB
  Много животных там стало водиться: Змеи слоны черепахи и птицы. За 1000 лет наша Земля изменилась до неузнаваемости: обмелевшие реки вырубленные леса нефтяные пятна на поверхности морей и океанов сотни исчезнувших растений и животных.
78576. Допоможемо природі 37 KB
  На мелодію з мультфільму Бременські музики Весь світ у нас в руках Керують ним лиш люди Дізнатись хочем ми Що завтра з світом буде Ось ми прийшли сюди до Вас Привіт Бонжур Хеллоу Те що розкажемо в цей час Хвилює всіх давно Нумо в цей час Слухайте нас Загітувати...
78577. Водойми рідного краю. Охорона водойм 64.5 KB
  Виховувати любов до природи та дбайливе ставлення до водойм. Формувати в учнів поняття «водойми». З’ясувати значення водойм рідного краю у житті людини. Ознайомити з різноманітністю водойм рідного краю. Розвивати пізнавальний інтерес, уміння аналізувати, порівнювати, робити висновки.
78578. Водойми України 67.5 KB
  Мета: розкрити значення води в житті людини та природи; ознайомити учнів із поняттями водойми, джерела, річки, озера, болота, моря та їх значенням в житті людини; розвивати вміння спостерігати, робити висновки, узагальнювати; виховувати дбайливе ставлення до водойм.
78579. Які бувають рослини? 184 KB
  Ознайомити учнів з різноманітним світом рослин; навчати порівнювати дерева кущі травянисті рослини; розкрити значення рослин у житті людини; розвивати звязне мовлення мислення дітей; виховувати дбайливе ставлення до рослин бажання доглядати охороняти природу.
78580. Сонце, сонечко та соняшник 51 KB
  Мета: формувати в учнів уявлення про Сонце про залежність життя рослин і тварин від сонячного світла і тепла; розвивати мовленнєві здібності уміння декламувати; виховувати інтерес до знань. Сонце Девіз уроку: Веди нас сонечко в політ Більше дізнаємось про світ.
78581. Почва. Почва – это место, где живут мелкие животные 84 KB
  Цель: продолжить формировать представление о предметах неживой природы, сформировать понятие о почве и её значении в жизни живых существ, познакомить с составом почвы; развивать логическое мышление, внимание, связную речь, навыки исследовательской работы, познавательный интерес...
78582. Різноманітність рослин. Значення рослин у житті людини 87 KB
  Навчати учнів розпізнавати рослини найближчого оточення. Плакат із записом шифрограми; малюнки із зображенням листяних і хвойних дерев; матеріали для ігор; повязки із зображенням квітів; дитяча енциклопедія Рослини.
78583. Тварини. Різноманітність тварин 14.53 MB
  Мета: розширити і уточнити знання учнів про різноманітність тварин середовище їхнього існування; про тварин які живуть поряд з людиною; розкрити цінність тварин для людини; розвивати вміння спостерігати за тваринами порівнювати тварин групувати їх; виховувати шанобливе ставлення до тварин.