Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Звіт
До лабораторної роботи № 3
На тему: “ Імітаційне моделювання виробничих систем з використанням моделей систем масового обслуговування ”
З дисципліни : "Моделювання програмного забезпечення"
Мета роботи:
Сформувати реалізації випадкових потоків однорідних подій із заданим законом розподілу, необхідних для моделювання виробничої системи з використанням моделі у вигляді системи масового обслуговування.
Реалізувати моделюючий алгоритм імітаційного моделювання системи масового обслуговування, що представляє виробничу систему.
Провести імітаційне моделювання системи масового обслуговування і статистичний аналіз результатів моделювання.
Код програми
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace Lab3_MPZ
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class Zajavku
{
protected Random Rand;
protected double L, Last;
public double MaxElem { get;set;}
protected List<double> posl;
public List<double> Posl
{
get { return posl; }
set { ;}
}
public Zajavku(int nL)
{
L = nL;
MaxElem = 0;
Rand = new Random((int)DateTime.Now.Ticks);
posl = new List<double>();
Last = 0;
}
public double Next()
{
double Xi = (double)Rand.Next() / int.MaxValue;
Last += ((-1.0) / L) * Math.Log(1 - Xi);
posl.Add(Last);
return Last;
}
public double NextElement()
{
double Xi = (double)Rand.Next() / int.MaxValue;
return (((-1.0) / L) * Math.Log(1 - Xi));
}
}
private void button2_Click(object sender, EventArgs e)
{
Zajavku Come;
Zajavku Wait;
Zajavku Work;
double T;
T = double.Parse(textBox1.Text);
int L;
L = int.Parse(textBox2.Text);
// час очікування приходу і роботи
Come = new Zajavku(L);
Wait = new Zajavku(L);
Work = new Zajavku(L);
int Prujniati = 0;
int Vidhuleni= 0;
double Tj = 0, Tzv = 0, TMaxWait = 0, Tbegin = 0, Twork = 0, Twait = 0;
do
{
Tj = Come.Next();
if(Tj < T)
{ if(Tj < Tzv)
{ TMaxWait = Wait.NextElement();
if( (Tj+TMaxWait) < Tzv)
{
Vidhuleni++;
continue; }
else
{Twork = Work.NextElement();
if ( (Tzv + Twork) < T)
{ Tbegin = Tzv;
Tzv = Tbegin + Twork;
Prujniati++;
Twait += (Tbegin - Tj);
continue; }
else
{
Vidhuleni++;
continue;}}}
else
{ Twork = Work.NextElement();
if ((Tj + Twork) < T)
{ Tbegin = Tj;
Tzv = Tbegin + Twork;
Prujniati++;
Twait += (Tbegin - Tj);
continue;}
else
{
Vidhuleni++;
continue;}
} }
else
{
break;}}
while(true);
textBox3.Text = Prujniati.ToString();
textBox4.Text = Vidhuleni.ToString();
textBox5.Text = (Twait / (double)Prujniati).ToString();
textBox6.Text = ((double)Vidhuleni / (double)(Prujniati + Vidhuleni) * 100).ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
}
}
Результат виконання завдання:
Висновок: в даній роботі я навчився формувати реалізації випадкових потоків однорідних подій із заданим законом розподілу, необхідних для моделювання виробничої системи з використанням моделі у вигляді системи масового обслуговування. Реалізував моделюючий алгоритм імітаційного моделювання системи масового обслуговування, що представляє виробничу систему та провів імітаційне моделювання системи масового обслуговування і статистичний аналіз результатів моделювання.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!