51265

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

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

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

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

Русский

2014-02-08

157 KB

43 чел.

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

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

Кафедра ПОИТ

Отчет

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

       {

       }

   }

}


 

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

18617. Функции модема, виды модуляции и передачи данных модемом. Технология DSL 15.52 KB
  Функции модема виды модуляции и передачи данных модемом. Технология DSL/ Моде́м аббревиатура составленная из слов модулятордемодулятор устройство применяющееся в системах связи и выполняющее функцию модуляции и демодуляции. Модулятор осуществляет модуляцию то е
18618. Математическое моделирование. Основные соотношения математических моделей 13.56 KB
  Математическое моделирование. Основные соотношения математических моделей. Мат моде под ним понимается процесс установления соответствия данной реальной системе некоторого мат объекта называемого мат моделью и исследования этой модели позволяющее получить характе...
18619. Задачи реинжиниринга и ее связь с автоматизацией предприятия 13.53 KB
  Задачи реинжиниринга и ее связь с автоматизацией предприятия. РЕИНЖИНИРИНГ 1 процесс оздоровления предприятий фирм компаний посредством подъема технических решений на новый уровень; 2 создание принципиально новых эффективных бизнеспроцессов в управлении. Задачи р...
18620. Понятие оболочки пакета 24.3 KB
  Понятие оболочки пакета. Оболочка операционной системы от англ. shell оболочка интерпретатор команд операционной системы ОС обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. Комплекс программ ориентированных на определенную операцио...
18621. Маркетинг – микс 13.32 KB
  Маркетинг микс. Для воплощения общей стратегии маркетинга в реальность необходимо выполнить практические действия. Комбинация этих действий называется маркетингом микс и часто он определяется 4ми понятиями: 1 Продукт микс включающий продукты их ассортимент и
18622. Структура, топология глобальных сетей. Принципы адресации в глобальных сетях 21 KB
  Структура топология глобальных сетей. Принципы адресации в глобальных сетях. Глобальная сеть wide area network WAN охватывает значительную географическую область часто целую страну или даже континент. Она объединяет набор машин предназначенных для выполнения программ пол...
18623. Общая характеристика б/у и требования, предъявляемые к б/у и методы 17.68 KB
  Общая характеристика б/у и требования предъявляемые к б/у и методы. Бух учет представляет собой упорядоченную систему сбора регистрации и обобщения инфы в денежном выражении об имуществе обязательствах организации и их движении. Объекты бух учета имущество организ
18624. Проблемы создания информационных систем управленческого учета 15.49 KB
  Проблемы создания информационных систем управленческого учета. Должен отражать динамику изменения всех процессов происходящих на предприятии отслеживание их При составлении отчетности руководителя заботит доверительное отношение к платежеспособности организаци
18625. Анализ предметной области для проектирования базы данных 16.56 KB
  Анализ предметной области для проектирования базы данных. Существует 2 подхода к выбору состава и структуры п.о. функциональный подход. Он реализует принцип движения от задачи т.е. анализируются и исследуются функции некоторой группы лиц и комплексы задач для обсл