51265

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

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

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

Задание 1. Построить граф состояний P-схемы. Смысл кодировки состояний раскрыть (время до выдачи заявки, число заявок в накопителе и т.д.). На схеме условно обозначены:

Русский

2014-02-08

157 KB

47 чел.

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

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

Кафедра ПОИТ

Отчет

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

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

Прищепо И. А.                                                                       Мельник Н.И.

Минск

2012 г.

Задание

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

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

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

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

7.

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

7

-

0,75

0,6

Lоч, А

Граф СМО:


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

Таким образом абсолютная пропускная способность равна 0.49 заявок в такт времени, а средняя длина очереди равна 0.32 заявки.

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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

namespace Laba_3_Model

{

   public partial class MainWindow : Window

   {

       private int N;

       

       private double pi1;

       private double pi2;

       private string[] conditions = {"2 0 0 0",

                                      "1 0 0 0",

                                      "2 0 1 0",

                                      "2 0 0 1",

                                      "1 0 1 0",

                                      "1 0 0 1",

                                      "2 0 1 1",

                                      "1 0 1 1",

                                      "2 1 1 1",

                                      "1 1 1 1",

                                      "2 2 1 1",

                                      "1 2 1 1",

                                      "0 2 1 1"

                                     };        

       private List<string> condLog;

       public MainWindow()

       {

           InitializeComponent();

       }

       private void generateButton_Click(object sender, RoutedEventArgs e)

       {

           try

           {

               N = int.Parse(nBox.Text);

               pi1 = double.Parse(pi1Box.Text);

               pi2 = double.Parse(pi2Box.Text);

           }

           catch (Exception ex)

           {

               MessageBox.Show("Ошибка: " + ex.Message);

               return;

           }

           double[,] chances = {{-1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

                               {-1, -1, 0.5, 0.5, -1, -1, -1, -1, -1, -1, -1, -1, -1},

                               {-1, (double)((double)1-pi1), -1, -1, pi1, -1, -1, -1, -1, -1, -1, -1, -1},

                               {-1, 1-pi2, -1, -1, -1, pi2, -1, -1, -1, -1, -1, -1, -1},

                               {-1, -1, (double)((double)1-pi1)/(double)2, (double)((double)1-pi1)/(double)2, -1, -1, pi1, -1, -1, -1, -1, -1, -1},

                               {-1, -1, (double)((double)1-pi2)/(double)2, (double)((double)1-pi2)/(double)2, -1, -1, pi2, -1, -1, -1, -1, -1, -1},

                               {-1,(double)((double)1-pi1)*((double)1-pi2), -1, -1, (double)((double)1-pi2)*pi1, (double)((double)1-pi2)*pi1, -1, pi1*pi2, -1, -1, -1, -1, -1},

                               {-1, -1, (double)((double)1-pi2)*((double)1-pi1)/(double)2, ((double)1-pi2)*((double)1-pi1)/(double)2, -1, -1,((double)1-pi1)*pi2+((double)1-pi2)*pi1, -1, pi1*pi2, -1, -1, -1, -1},

                               {-1, -1, -1, -1, ((double)1-pi1)*((double)1-pi2)/(double)2, ((double)1-pi1)*((double)1-pi2)/(double)2, -1, ((double)1-pi1)*pi2+((double)1-pi2)*pi1, -1, pi1*pi2, -1, -1, -1},

                               {-1, -1, -1, -1, -1, -1, ((double)1-pi1)*((double)1-pi2), -1, ((double)1-pi1)*pi2+((double)1-pi2)*pi1, -1, pi1*pi2, -1, -1},

                               {-1, -1, -1, -1, -1, -1, -1, ((double)1-pi1)*((double)1-pi2), -1, ((double)1-pi1)*pi2+((double)1-pi2)*pi1, -1, pi1*pi2, -1},

                               {-1, -1, -1, -1, -1, -1, -1, -1, ((double)1-pi1)*((double)1-pi2), -1, ((double)1-pi1)*pi2+((double)1-pi2)*pi1, -1, pi1*pi2},

                               {-1, -1, -1, -1, -1, -1, -1, -1, ((double)1-pi1)*((double)1-pi2), -1, ((double)1-pi1)*pi2+((double)1-pi2)*pi1, -1, pi1*pi2}

                              };

           string curCond = "2 0 0 0";

           double A = new double();

           double L = new double();

           condLog = new List<string>();

           condLog.Add("2 0 0 0");

           int condNumber = 0; // номер состояния в массиве состояний

           Random rnd = new Random();

           int[] pCount = new int[13]; //подсчет нахождений в каждом из состояний

           pCount[condNumber]++;

           for (int i = 0; i < N; i++)

           {

               double buf = rnd.NextDouble();

               for (int j = 0; j < 13; j++)

               {

                   if (chances[condNumber, j] != -1)

                       buf -= chances[condNumber, j]; //отнимаем вероятности пока не найдем то что выдал рандом

                   if (buf <= 0)

                   {

                       int lastCondNumber = condNumber;

                       condNumber = j;

                       L += double.Parse(conditions[condNumber].ElementAt(2).ToString());

                       if (conditions[condNumber].ElementAt(0) == '2')

                       {

                               A++;

                       }

                       break;

                   }

               }

               curCond = conditions[condNumber];

               pCount[condNumber]++;

               condLog.Add(curCond);

           }

           listBox1.ItemsSource = condLog;

           double[] pChances = new double[13]; // вероятности каждого состояния

           for (int i = 0; i < 13; i++)

           {

               pChances[i] = (double)pCount[i] / (double)N;

           }

           P2000Label.Content = "P2000 = " + pChances[0].ToString();

           P1000Label.Content = "P1000 = " + pChances[1].ToString();

           P2010Label.Content = "P2010 = " + pChances[2].ToString();

           P2001Label.Content = "P2001 = " + pChances[3].ToString();

           P1010Label.Content = "P1010 = " + pChances[4].ToString();

           P1001Label.Content = "P1001 = " + pChances[5].ToString();

           P2011Label.Content = "P2011 = " + pChances[6].ToString();

           P1011Label.Content = "P1011 = " + pChances[7].ToString();

           P2111Label.Content = "P2111 = " + pChances[8].ToString();

           P1111Label.Content = "P1111 = " + pChances[9].ToString();

           P2211Label.Content = "P2211 = " + pChances[10].ToString();

           P1211Label.Content = "P1211 = " + pChances[11].ToString();

           P0211Label.Content = "P0211 = " + pChances[12].ToString();

           A /= (double)N;

           L /= (double)N;

           ALabel.Content = "A = " + A.ToString();

           LLabel.Content = "L = " + L.ToString();

       }

       private void Window_Loaded(object sender, RoutedEventArgs e)

       {

       }

   }

}


 

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

32220. Понятие осмотра МП, его цели и задачи 42.5 KB
  Осмотр места происшествия это неотложное следственное действие заключающееся в непосредственном восприятии исследовании и фиксации следователем обстановки места происшествия относящихся к делу следов и объектов их индивидуальных особенностей и взаимосвязей в целях выяснения сущности происшедшего события механизма преступления и отдельных обстоятельств имеющих значение для правильного разрешения дела. Понятие Место происшествия шире понятия Место преступления. Место происшествия любой участок местности территория где обнаружены...
32221. Организация группового обыска и тактические особенности его производства 40 KB
  Организация группового обыска и тактические особенности его производства. К проведению обыска необходимо относиться очень осторожно проводить его только при наличии достаточных оснований. В отношении обыска основания разделяются на: тактические фактические данные дающие возможность предполагать что в определённом месте у определённого лица имеется то что нас интересует; процессуальные те документы. Для исключения просчетов в ходе группового обыска привлекается несколько следователей один из которых ответствен за всю тактическую...
32222. Тактич особенности допроса подозреваемого 44.5 KB
  Для эффективного его проведения следователю необходимо хорошо разбираться в психологии допрашиваемых уметь устанавливать с ними правильные взаимоотношения варьировать с учетом конкретной ситуации личности допрашиваемого имеющихся доказательств различные тактические приемы и методы психологического воздействия. Общей задачей допроса является получение от каждого допрашиваемого всех известных ему достоверных сведений об обстоятельствах при которых произошло расследуемое событие и лицах к нему причастных. Поэтому особенно на первом...
32223. Виды обыска. Подготовка следователя к производству обыска 44.5 KB
  Виды обыска. Подготовка следователя к производству обыска. К проведению обыска необходимо относиться очень осторожно проводить его только при наличии достаточных оснований. В отношении обыска основания разделяются на: тактические фактические данные дающие возможность предполагать что в определённом месте у определённого лица имеется то что нас интересует; процессуальные те документы.
32224. Особенности производства обыска по делам о преступлениях несовершеннолетних 39 KB
  Особенности производства обыска по делам о преступлениях несовершеннолетних. К проведению обыска необходимо относиться очень осторожно проводить его только при наличии достаточных оснований. В отношении обыска основания разделяются на: тактические фактические данные дающие возможность предполагать что в определённом месте у определённого лица имеется то что нас интересует; процессуальные те документы. Следователь должен быть уверен в успехе осуществляемого обыска максимально сосредоточен.
32225. Особенности допроса потерпевшего 38 KB
  Особенности допроса потерпевшего. Тактика допроса потерпевшего Особенности тактики допроса потерпевших. При допросе потерпевшего необходимо в каждом случае учитывать глубину его психических переживаний и те факторы которые предопределяют его психическое состояние. Поскольку сразу же после совершения преступления психическое состояние потерпевшего может помешать даче им полных и достоверных показаний рекомендуется по возможности не торопиться с первым допросом.
32226. Тактика предъявления обвинения и тактические основы допроса обвиняемого 40.5 KB
  Для эффективного его проведения следователю необходимо хорошо разбираться в психологии допрашиваемых уметь устанавливать с ними правильные взаимоотношения варьировать с учетом конкретной ситуации личности допрашиваемого имеющихся доказательств различные тактические приемы и методы психологического воздействия. Предметом допроса могут быть: обстоятельства входящие в предмет доказывания место время обстоятельства субъекты; обстоятельства необходимые для достижения промежуточных целей расследования; обстоятельства с помощью...
32227. Подготовка следователя к проведению следственного эксперимента 30 KB
  Подготовка следователя к проведению следственного эксперимента. При этом подготовительные действия обеспечиваемые следователем можно подразделить на два этапа: подготовка до выезда на место проведения эксперимента и непосредственно на месте до совершения самих опытных действий. На первом этапе следователь должен определить цель эксперимента т. Тщательное изучение этих материалов позволяет определить место время и условия производства эксперимента круг его участников и роль каждого из них.
32228. Составление плана расследования. Основные и вспомогательные формы планов 35 KB
  Составление плана расследования. Это приводит к необходимости планирования расследования различных дел во времени подготовка документов отчётов и т. 2 План расследования по конкретному преступлению. Составляется план расследования по версиям.