51265

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

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

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

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

Русский

2014-02-08

157 KB

85 чел.

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

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

Кафедра ПОИТ

Отчет

по выполнению лабораторной работы №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)

       {

       }

   }

}


 

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

36808. Электрические и магнитные явления в организме, электрические воздействия и методы исследования 160.5 KB
  По отклонению стрелки гальванометра пользуясь графиком находят температуры исследуемых объектов Дополнительная информация Общая структурная схема для регистрации съёма и передачи медицинской информации. Х  Чувствительный элемент средства измерений электрод датчик  Усилитель  Передатчик  Приёмник  Выходной измеритель регистрирующий прибор У   устройства для съёма информации Устройства для съема передачи и регистрации медикобиологической...
36809. Приготовление стандартного раствора КМnО4 иустановление его нормальности и титра по щавелевой кислоте 61 KB
  Тема: Приготовление стандартного раствора КМnО4 иустановление его нормальности и титра по щавелевой кислоте. Теоретические основы: Перманганатометрия это метод объемного анализа в котором в качестве стандартного раствора используется раствор перманганата калия. В основе метода лежит использование стандартного раствора КМnО4 . нормальность и титр раствора перманганата калия определяют по щавелевой кислоте которая является восстановителем и отдает при этом 2 электрона.
36810. Установление нормальности и титра тиосульфата по бихромату (метод йодометрия) 57 KB
  Тема: Установление нормальности и титра тиосульфата по бихромату метод йодометрия. Определение нормальности и титра тиосульфата по бихромату калия методом йодометрии. Для определения окислителей используют раствор тиосульфата натрия N2S2O3. Выделившийся йод титруют раствором тиосульфата натрия точно известной нормальности.
36811. Определение количества хлорида натрия в растворе. Метод осаждения 50 KB
  Материальнотехническое обеспечение: Штатив Бунзена титровальный набор титровальные колбы банки для слива воронки бюретка пипетки Мора капельницы раствор хлорида натрия NCL стандартный раствор 005Н gNО3 5 раствор хромата калия K2CrO4 дистиллированная вода. Расчет нормальности и титра раствора NCl. Теоретические основы: В методе Мора в качестве стандартного раствора используется 005Н gNO3 титр и нормальную концентрацию которого устанавливают по раствору NCl индикатором является 5 ый раствор К2СrO4....
36812. Определение общей жесткости воды г. Симферополя методом комплексиметрии 52.5 KB
  Тема: Определение общей жесткости воды г. Умения: Учиться проводить исследования общей жесткости воды г. Различают временную устраняемую и постоянную жесткость воды. Сумма временной и постоянной жесткости воды определяет ее общую жесткость.
36813. Приготовление раствора точной заданной концентрации 69.5 KB
  Тема: Приготовление раствора точной заданной концентрации. Умения: Используя рациональные способы ведения технологических процессов учиться готовить растворы различной концентрации уметь рассчитывать массу вещества массу раствора нормальность и титр. Титр показывает сколько граммов вещества растворено в 1мл раствора. Как приготовить 250мл 01 Н раствора перекристаллизованной чистой двухосновной щавелевой кислоты Н2С2О4 2Н2О которую используют для...
36814. ИЗУЧЕНИЕ ПОГЛАЩЕНИЯ СВЕТА 916.5 KB
  КРАТКАЯ ТЕОРИЯ Прохождение света через вещество ведет к возникновению колебаний электронов вещества под воздействием электромагнитного поля волны и сопровождается потерей энергии этой волны затрачиваемой на возбуждение колебаний электронов. Поэтому интенсивность падающего света по мере проникновения волны в вещество уменьшается. Действительно интенсивность световой волны прошедшей среду толщиной d уменьшается по закону: I=I0ekd 1 где I0 ...
36815. Моделирование командных генераторов гармонических сигналов 55.5 KB
  Цель работы: определить схемы с помощью которых можно задать воздействие и рассчитать их параметры. схема моделирования Определим параметры модели: задание сигнала 2. схема моделирования Определим параметры модели: Таким образом данная схема не реализует синусоидальный сигнал невозможно скомпенсировать косинусоидальную составляющую. схема моделирования Определим параметры модели: задание сигнала 4.
36816. Информационно – образовательная среда вуза 73.5 KB
  Содержание работы: Задание №1 Сформируйте электронный глоссарий по тематике Информационно образовательная среда: База данных Банк данных Дистанционное обучение Индивидуальный образовательный маршрут Индивидуальная образовательная траектория Информатизация образования Информационная деятельность Информационная подготовка Информационно коммуникационная среда Информационно коммуникационная предметная среда Информационно методическое обеспечение учебно воспитательного процесса Информационнообразовательная...