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)

       {

       }

   }

}


 

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

54480. Урок музыки. Группы. Композиторы 64.5 KB
  Today at the lesson we’ll listen and repeat the names of the musical instruments, after that we’ll give names of the musical instruments of four groups, we’ll listen to music and name name the styles of popular music you listen to. We’ll speak about structure of the music lesson.
54481. Music in our life 91 KB
  Objectives: to revise and enrich students’ vocabulary on the topic; to improve students’ reading, speaking, writing skills; to practice students’ listening skills; to train students’ habits in group work; to cultivate students’ aesthetic tastes, awareness and respect to the world culture; to enhance students’ cognitive abilities and memory.
54482. Музика 55 KB
  Мета: ознайомити учнів з лексичними одиницями і навчити оперувати ними у мовленні; вчити учнів взаємодіяти в заданій ситуації за змістом прочитаного тексту, повторити граматичний матеріал та тренувати учнів оперувати граматичними структурами у мовленні; розвивати логічне мислення і мовленнєву реакцію, розвивати навики читання; виховувати культуру спілкування, інтерес до культури країни, мова якої вивчається.
54483. WORLD MUSIC 53 KB
  Nowadays many people enjoy music as their hobby. Thanks to this fact you can make many new friends, you can exchange cd’s, records, listen to music together and visit different concerts. For my person, music plays more important role in life than good pastime. It is something, which helps me to be in a good mood, understand different things and remove from tension. Music brings me pleasure and keen delight and fills my life with great expectations of joy and happiness.
54484. Музика охоплює весь світ 45 KB
  Мета: активізувати та розширити знання учнів про економіку країн, які є Батьківщиною видатних композиторів світу, узагальнити знання учнів про композиторів – класиків кінця 17 – початку 20 століття, розвивати навички самостійної роботи з інформаційним матеріалом, навички зв’язного мовлення, вчити співвідносити знання з різних галузей науки та мистецтва, виховувати культуру поведінки, формувати потребу сприймати та виконувати високохудожні музичні твори, виховувати інтерес до знань, залучати учнів до проведення нестандартних типів уроку.
54485. Героические образы в симфонической музыке 280 KB
  Цель. На примере творчества Д. Шостаковича и А. Пашкевича нацелить учащихся на понимание жизненного содержания музыки, которая воплощает образы реальных исторических событий – Великой Отечественной войны. Учить анализировать образное содержание и звучание музыки, находить общее в содержании разножанровых произведений.
54486. Музыка Чайковского как символ красоты, правды, искренности 81.5 KB
  Чайковского совершенствовать умения сравнивать музыкальные произведения формировать эмоциональнооценочное отношение к музыкальному произведению в процессе его интерпретации развивать способности творческого комбинирования воспитывать ценностные ориентации в сфере музыки. Оборудование: портрет Чайковского фонограммы карточки для составления модели музыкального произведения фильм Доживем до понедельника иллюстрации с сюжетом про вальс. Определение темы и задач урока 3 минуты Кто может назвать композитора чья музыка звучала...
54487. Предмет и метод экономической теории 17.71 KB
  В условиях рыночной экономики субъект, выполняющий экономические функции, называется экономическим субъектом (государство, различные фонды, объединения, ассоциации, фирмы и предприятия, домохозяйства, отдельный человек). В процессе деятельности экономических субъектов возникает экономическое явление.
54488. Музичні захоплення 157.5 KB
  Many people like music but “lovers of music” love it and try to fill every minute of their life with music. As a rule they don’t have much free time so they are very categorical in their choice of favourite music. A real “lover of music” chooses the best. And what about you? Do you belong to the category of “Music lovers”.