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;

                       }

               }

           }

       }  }}


 

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

15865. ФИЛОСОФСКАЯ ИННОВАТИКА КАК ВИД ФИЛОСОФСКОГО ДИСКУРСА 60.5 KB
  ФИЛОСОФСКАЯ ИННОВАТИКА КАК ВИД ФИЛОСОФСКОГО ДИСКУРСА В современных публицистических научных экономических политических публикациях и комментариях все большее внимание уделяется инновациям и инновационной деятельности. Это уже не столько общее место сколько н...
15866. Специфика отбора в социально-биологическом кризисе в эпоху турбулентного капитализма 53 KB
  Тезис об инновационном характере философского знания в отношении науки и образования лишь на первый взгляд кажется странным. В действительности же, по нашему мнению, концепты «социальное прогнозирование и проектирование», «прогностический конструктивизм», «совершенствование деятельности общества и государства по управлению»
15869. Роль научной философии в становлении и развитии социологии религии 156 KB
  РОЛЬ НАУЧНОЙ ФИЛОСОФИИ В СТАНОВЛЕНИИ И РАЗВИТИИИ СОЦИОЛОГИИ РЕЛИГИИ Социологическое конкретнонаучное исследование процессов религиозности и секуляризации в современном глобальном обществе рискующем окончательно зайти в тупик этноконфессионального партикуля
15871. Марксизм VS экзистенциализм 227.33 KB
  В.С. Гриценко к. филос. н. доц. МАРКСИЗМ VS ЭКЗИСТЕНЦИАЛИЗМ2 Меня всегда настораживала мнимая непримиримость теоретических оснований экзистенциализма и марксизма старательно подчеркиваемая как той так и другой стороной. Я не ставлю себе целью помирить эти фило...
15872. Эволюция физической формы материи и единый закономерный мировой процесс 74 KB
  В.Ф. Панов д. физ.мат. н. проф. ЭВОЛЮЦИЯ ФИЗИЧЕСКОЙ ФОРМЫ МАТЕРИИ И ЕДИНЫЙ ЗАКОНОМЕРНЫЙ МИРОВОЙ ПРОЦЕСС Уровень изучения природы и общества в современном мире требует от философии перехода от абстрактновсеобщей диалектики доказавшей что развитие во всем мире осу...