51190

Построить аналитическую модель и, решив ее, определить вероятности состояний

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

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

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

Русский

2014-02-10

100.94 KB

13 чел.

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра ПОИТ

Отчёт

по лабораторной работе №3

Вариант 8

Проверил:          Выполнил:

Огородник Р.В.        ст.гр. 050504

Краснов А.Ю.                    

Минск 2013

Задание: 

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

   Р1

  P           2    

   Р2     

P – вероятность неприхода заявки

P1- вероятность необработки

P2-вероятность необработки

Аналитические расчеты:

Таблица переходов:

Результаты работы программы:

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Mylabs_model_3

{

   public partial class Form1 : Form

   {

       List<double> massivR = new List<double>();

       int pozition = 0;

       List<Knot> Tree = new List<Knot>();

       Knot root;

       List<string> text = new List<string>();

       string[] state= new string[10000];

       double p1;

       double p2;

       double r;

       public Form1()

       {

           InitializeComponent();

           // * * * * * * * * * * * * * * * * * *

           this.textBox_state.ScrollBars = ScrollBars.Vertical;

           generator();

           //ConstructTree();

       }

       private void generator()

       {

           double a = 31234;           

           double m = 512354231;       

           double R0 = 1235;           

           double Rn = 0;

           int size = 10000;           

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

           {

               Rn = (a * R0) % m;

               double R = Rn / m;

               massivR.Add(R);

               R0 = Rn;

           }

       }

       private int RandomOfDiapozon(List<double> SpisDia)

       {

           double R = massivR[pozition];

           pozition++;

           double a = 0;

           for (int i = 0; i < SpisDia.Count; i++)

           {

               a += SpisDia[i];

               if (R < a)

               {

                   return i;

               }

           }

           return 0;

       }

       private void ConstructTree()

       {

           int size = 7;

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

           {

               Knot a = new Knot();

               Tree.Add(a);

           }

           root = Tree[0];

           //0000

           int[] a0    = { 0,3 };

           double[] b0 = { r,1.0-r };

           Tree[0].Sets(M(b0),P(a0),"0000");

           //0001

           int[] a1 = { 0 ,1,2,3};

           double[] b1 = { r * (1 - p2), r * p2, (1 - r) * p2, (1 - r) * (1 - p2) };

           Tree[1].Sets(M(b1), P(a1),"0001");

           //0011

           int[] a2 = { 0,1,2,3,4 };

           double[] b2 = {r*(1-p1)*(1-p2), r*(1-p1)*p2, r*p1*p2+(1-r)*(1-p1)*p2+(1 - r) * (1 - p2) * p1,

                             r * p1 * (1 - p2) + (1 - r) * (1 - p1) * (1 - p2), (1 - r) * p1*p2 };

         

           

           Tree[2].Sets(M(b2), P(a2),"0011");

           //0010

           int[] a3 = { 0,2,3};

           double[] b3 = { r * (1 - p1), (1 - r) * p1, r*p1 + (1 - r)*(1 - p1) };

           Tree[3].Sets(M(b3), P(a3),"0010");

           //0111

           int[] a4 = { 2,3,4,5};

           double[] b4 = {r*(1-p1)*p2+r*(1-p2)*p1+(1-r)*(1-p1)*(1-p2), r*(1-p1)*(1-p2),r*p1*p2+(1-r)*(1-p1)*p2+(1-r)*(1-p2)*p1,(1-r)*p1*p2 };

           Tree[4].Sets(M(b4), P(a4),"0111");

           //0211

           int[] a5 = { 2,4,5,6};

           double[] b5 = {r*(1-p1)*(1-p2),r*(1-p1)*p2+r*(1-p2)*p1+(1-r)*(1-p1)*(1-p2),(1-r)*p1*(1-p2)+(1-r)*(1-p1)*p2+r*p1*p2,(1-r)*p1*p2  };

           Tree[5].Sets(M(b5), P(a5),"0211");

           //2111

           int[] a6 = {4,5,6  };

           double[] b6 = {(1-p1)*(1-p2),p1*(1-p2)+p2*(1-p1),p1*p2  };

           Tree[6].Sets(M(b6), P(a6), "1211");

         

       }

       

       private List<double> M(double[] spis)

       {

           List<double> m = new List<double>();

           for (int i = 0; i < spis.Length; i++)

           {

               m.Add(spis[i]);

           }

           return m;

       }

       private List<Knot> P(int[] v)

       {

           List<Knot> m = new List<Knot>();

           for (int i = 0; i < v.Length; i++)

           {

               m.Add(Tree[v[i]]);

           }

           return m;            

       }

       private void button1_Click(object sender, EventArgs e)

       {

           pozition = 0;

           textBox1.Clear();

           text.Clear();

           Tree.Clear();

           this.textBox_state.Clear();

           if (this.textBox_p1.Text == "" || this.textBox_p2.Text == "")

           {

               MessageBox.Show("Error!!! p1 or p2 is NoN");

               return;

           }

           p1 = double.Parse(this.textBox_p1.Text);

           p2 = double.Parse(this.textBox_p2.Text);

           r = double.Parse(this.textBox_r.Text);

           ConstructTree();

        

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

           {

               root.inc();

               state[i] = root.GetName();

               root = root.GetChild()[RandomOfDiapozon(root.GetProbability())];

           }

           this.textBox_A.Text = ((1 - r) * (1 - (Tree[6].GetKol() / 10000.0))).ToString();

           double L = 0;

           

           for (int i = 0; i < Tree.Count; i++)

           {

               string rst = "Состояние:    " + Tree[i].GetName() ;

        

               Printf(rst + "   Веротяность = " + (Tree[i].GetKol() / 10000.0).ToString());

               string str = "";

               L += Tree[i].GetKol() / 10000.0 * double.Parse((str += Tree[i].GetName()[1]));

         

           }

           this.textBox_state.Lines = state;

           this.textBox_Loch.Text = L.ToString();

       }

       private void Printf(string str)

       {

           text.Add(str);

           textBox1.Clear();

           textBox1.Lines = VecToStr(text);

       }

       private string[] VecToStr(List<string> str)

       {

           string[] ms = new string[str.Count];

           for (int i = 0; i < str.Count; i++)

           {

               ms[i] = str[i];

           }

           return ms;

       }

 

   }

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Mylabs_model_3

{

   class Knot

   {

       List<double> Probability = new List<double>();

       List<Knot> child = new List<Knot>();

       string name;

       int kolvo = 0;

       public Knot(List<double> P,List<Knot> ch)

       {

           Probability = P;

           child = ch;

       }

       public Knot()

       {

           

       }

       public void Sets(List<double> P, List<Knot> ch,string str)

       {

           Probability = P;

           child = ch;

           name = str;

       }

       public List<double> GetProbability()

       {

           return Probability;

       }

       public List<Knot> GetChild()

       {

           return child;

       }

       public string GetName()

       {

           return name;

       }

       public void inc()

       {

           kolvo++;

       }

       public void Dec()

       {

           kolvo = 0;

       }

       public int GetKol()

       {

           return kolvo;

       }

   }

}

Вывод:

В результате лабораторной  работы были построены имитационная и аналитическая модели,

Были исследованы характеристики данных моделей.


 

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

39922. ТИПОЛОГО-ТЕХНОЛОГІЧНІ ОСОБЛИВОСТІ НОВИХ МЕДІА В УКРАЇНІ 77.5 KB
  Зміни у сучасній інформаційній системі не носять тотального характеру що обумовлено економічною нестабільністю як усієї країни взагалі так і розвитком окремих підприємств. У той же час стає очевидною необхідність формулювання нової структури системи масмедіа і внесення істотних змін із зазначеного питання до журналістських підручників. Як правило до складових системи засобів масової інформації відносять газети радіо телебачення....
39923. Інтернет-медіа як новий вид ЗМІ 66.5 KB
  Городенко Інтернетмедіа як новий вид ЗМІ Твердження про те що сучасний світ переходить від індустріального суспільства з його автомобілями і машинами до нового інформаційного побудованого на компютерах та мережах це вже не гіпотеза чи позиція Д. Нині ця концепція втілена у сучасній мережі Інтернет. Інтернет як сегмент інформаційного ринку сформувався досить недавно сучасний інтерфейс існує трохи більше десяти років2 і перебуває на стадії активного розвитку і поширення.
39924. Пошук знань 93 KB
  Інструменти для корпоративних масивів Отже на жорстких дисках окремих компютерів або на серверах в корпоративних мережах накопичуються величезні масиви документів навігація в яких із зрозумілих причин утруднена. Для забезпечення комфортності роботи із такими масивами документів зазвичай намагаються класифікувати розподілити їх по тематичних папка або каталогах. Поряд з пошуком великого значення набувають завдання угрупування тематично близьких документів автоматичного реферування перекладу виявлення ключових понять проведення...
39925. Що таке WEB 2.0 350.5 KB
  0 Усього лише декілька років тому цього терміну не існувало в природі зараз пошукова система Google видає мільйони посилань на документи де згадується поняття Web 2. Він пророчив WiFi пошукову систему Google і книжковий магазин mzon при цьому студенти які зробили Yhoo пропонували купити у них цей сайт за мільйон але О'Рейллі поскупився. Google Ще недавно це була просто фантастична success story і саме яскраве досягнення доткоміндустрії а зараз взагалі невідомо як до неї ставитися: ще трохи і Google все охопить. Google випустив...
39926. СЕМАНТИЧНИЙ ВЕБ 122 KB
  Тому подальший розвиток Internet багато вчених повязують з концепцією Семантичного Web Semntic Web яка багато в чому завдяки уніфікації обміну даними імовірно дасть можливість інтегрувати в Internet навіть обєкти реального світу Концепцію Семантичного Web висунув Тім БернерсЛі один з основоположників World Wide Web і голова консорціуму W3C на міжнародній конференції XML2000 що відбулася у 2000 році у Вашингтоні. В процесі реалізації концепції Семантичного Web отримали широкий розвиток синтаксичні методи представлення інформації...
39927. Соціальні мережі 100.5 KB
  З цієї зачатковою нейромережі виріс колосальний коллаборативный інтерфейс обєднуючий всю цивілізацію механізм здібний до пізнання і відчуття могутніший ніж всі попередні винаходи. Але не тільки: Інтернет виступив майданчиком на якому люди об'єднані в тісні взаємодіючі мережі змогли користуючись лише віртуальними сервісами змінити реальність. Іншими словами віртуальне нарешті вийшло за межі комп'ютерної мережі і стало реальним знайшло відчутні риси політичну потужність здатну управляти реальністю.
39928. Блог 235.5 KB
  Підтримка російського WordPress. Тут ви знайдете найсвіжішу версію російського WordPress. Форум підтримки російського WordPress. Розсилка Використовуєм WordPress для створення свого сайту .
39929. Вікіпедія – модель обміну знаннями 48.5 KB
  Проте ситуація склалася набагато краще причому не тільки для окремо узятої Вікіпедії але і для модного тренда в цілому.0 то завжди називають вікі це один з його елементів. Кінець 80 х років минулого століття вважають початком розробки першої в світі вікітобто тоді коли Каннінгем працював над проектом HyperCrd.