51265

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

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

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

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

Русский

2014-02-08

157 KB

41 чел.

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

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

Кафедра ПОИТ

Отчет

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

       {

       }

   }

}


 

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

1054. Специфика работы по развитию графических умений в процессе обучения старших дошкольников изобразительной деятельности 389 KB
  Организация деятельности по формированию графических умений у детей старшего дошкольного возраста. Анализ собственной практической деятельности по формированию у старших дошкольников графических умений и навыков. Методы диагностики по формированию технических навыков и умений у детей старшего дошкольного возраста на контрольном этапе. Графические материалы и техника их использования.
1055. Система обробки аудіоінформації. Підсистема фільтрації і обробки сигналу 1.36 MB
  Обґрунтування доцільності розробки системи обробки аудіоінформації. Основні цілі створення системи та критерії ефективності її функціонування. Опис системи програмного забезпечення. Опис постановки задачі обробки та фільтрації звукового сигналу. Математичний опис алгоритму створення ефекту реверберації. Призначення і характеристика алгоритму створення ефекту луни. Математичний опис алгоритму створення ефекту затухаючої гучності.
1056. Процесс стратегического управления компании ТОО Зерде-Фито 486.5 KB
  Теоретические основы стратегического управления. Сущность стратегического управления и его ключевые понятия. Порядок разработки и реализации стратегии развития предприятия. Анализ факторного воздействия внешнего окружения на организацию. Выбор и разработка стратегии развития организации.
1057. Життя і творчість В.Ф. Войно-Ясенецького 128.09 KB
  Вихідною методологічною установкою даного дослідження є метод цілісного філософського аналізу творчості та світогляду мислителя, оскільки спосіб мислення і спосіб життя В.Ф. Войно-Ясенецького, постають в органічній єдності. Такий підхід дає можливість аналізу етичних поглядів В.Ф. Войно-Ясенецького як систематичного, цілісного релігійно-морального світогляду
1058. Политология Белоруссии 459 KB
  Политическая мысль в эпоху Возрождения. Общественно-политическая мысль Беларуси периода ВКЛ, РП, РИ. Политические идеи мыслителей Беларуси, ее периодизация и первые памятники. Власть как социальное явление, ее функции, структура. Государство в политической системе общества. Роль СМИ в политике. Либерализм и неолиберализ. Формы государственного устройства.
1059. Методика аудиторской проверки расчетов с бюджетом (на примере НОУ СПО Учебный центр, Омск 443 KB
  Процесс планирования аудиторской проверки учета расчетов с бюджетом по налогам и сборам. Экономическая характеристика объекта исследования. Организация бухгалтерского и налогового учета расчетов с бюджетом. Аудиторская проверка учета расчетов с бюджетом по единому социальному налогу в НОУ СПО Учебный центр.
1060. Обработка статистической информации о надежности линии привода 3-го формирующего ролика 1-й моталки 265 KB
  Упорядочение исходной выборки наработок до отказа. Проверка статистической гипотезы о соответствии экспоненциальному распределению. Проверка статистической гипотезы о соответствии нормальному или логарифмически нормальному распределению. Графическое оценивание параметров распределений.
1061. Расчет и выбор конструкции кожухотрубного теплообменного аппарата 267 KB
  Тепловой расчет и выбор конструкции теплообменного аппарата. Устройство, передающее теплоту от одного теплоносителя к другому. Проверочный тепловой расчет теплообменного аппарата. Гидравлический расчет теплообменного аппарата. Расчет падения давления теплоносителей в трубном и межтрубном пространстве ТА.
1062. Учет финансовой отчетности в процессе управления предприятием ООО Стиль 411 KB
  Финансовая отчетность и ее роль в информационном обеспечении управления предприятием. Методы анализа устойчивости финансового состояния в процессе управления предприятием. Составление и анализ финансовой отчетности в процессе управления предприятием (на материалах ООО Стиль). Анализ устойчивости финансового состояния по данным финансовой отчетности.