DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Імітаційне моделювання виробничих систем з використанням моделей систем масового обслуговування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2009
Тип роботи:
Звіт
Предмет:
Моделювання
Група:
ПІ
Коротко про документ

Про що ця робота

У роботі здійснено імітаційне моделювання виробничих систем за допомогою систем масового обслуговування. Розроблено програмну реалізацію алгоритмів та проведено статистичний аналіз результатів моделювання.

У роботі розглядаються

  • Імітаційне моделювання
  • Системи масового обслуговування
  • Виробничі системи
  • Випадкові потоки подій
  • Закон розподілу
  • Моделюючий алгоритм
  • Статистичний аналіз

Зміст і розділи

  1. Мета роботи
  2. Код програми
  3. Результат виконання завдання
  4. Висновок
Для кого:Студенти спеціальності програмна інженерія та комп'ютерні науки
Викладачі:Не вказано

Ключові поняття

імітаційне моделюваннясистема масового обслуговуваннявиробнича системавипадковий потікзакон розподілуалгоритмчергазаявкастатистичний аналізC#

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ  Звіт До лабораторної роботи № 3 На тему: “ Імітаційне моделювання виробничих систем з використанням моделей систем масового обслуговування ” З дисципліни : "Моделювання програмного забезпечення" Мета роботи: Сформувати реалізації випадкових потоків однорідних подій із заданим законом розподілу, необхідних для моделювання виробничої системи з використанням моделі у вигляді системи масового обслуговування. Реалізувати моделюючий алгоритм імітаційного моделювання системи масового обслуговування, що представляє виробничу систему. Провести імітаційне моделювання системи масового обслуговування і статистичний аналіз результатів моделювання. Код програми using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Lab3_MPZ { class ExponentDistribution { protected Random Rand; protected double L; protected double Last; protected double maxElem; public double MaxElem { get { return maxElem; } set { maxElem = value; } } protected List<double> sequence; public List<double> Sequence { get { return sequence; } set { ;} } protected ExponentDistribution() { } public ExponentDistribution(int nL) { L = nL; MaxElem = 0; Rand = new Random((int)DateTime.Now.Ticks); sequence = new List<double>(); Last = 0; } public ExponentDistribution(int nL, int nMaxElem) { L = nL; MaxElem = nMaxElem; Rand = new Random((int)DateTime.Now.Ticks); sequence = new List<double>(); Last = 0; } public virtual double Next() { double Xi = (double)Rand.Next() / int.MaxValue; Last += ((-1.0) / L) * Math.Log(1 - Xi); Sequence.Add(Last); return Last; } public virtual double NextElement() { double Xi = (double)Rand.Next() / int.MaxValue; return (((-1.0) / L) * Math.Log(1 - Xi)); } public double this[int pos] { get { if (pos <= (Sequence.Count - 1)) return Sequence[pos]; else return Sequence[Sequence.Count - 1]; } } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Lab3_MPZ { class EvenDistribution : ExponentDistribution { protected double B; public EvenDistribution(int nL) : base(nL) { B = 2.0 / L; } public EvenDistribution(int nL, int nMaxElem) : base(nL, nMaxElem) { B = 2.0 / L; } public override double Next() { double Xi = (double)Rand.Next() / int.MaxValue; Last += B * Xi; Sequence.Add(Last); return Last; } public override double NextElement() { double Xi = (double)Rand.Next() / int.MaxValue; return (B * Xi); } } } 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 Lab3_MPZ { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void ModelingButton_Click(object sender, EventArgs e) { ExponentDistribution ComeTime; ExponentDistribution WaitTime; ExponentDistribution WorkTime; double T; try { T = double.Parse(TInputBox.Text); } catch { MessageBox.Show("Помилка при введенні часу функціонування системи"); TInputBox.Text = ""; return; } int L; try { L = int.Parse(LInput.Text); } catch { MessageBox.Show("Помилка при введенні L"); LInput.Text = ""; return; } if (ComeExponent.Checked) ComeTime = new ExponentDistribution(L); else ComeTime = new EvenDistribution(L); if (WaitExponent.Checked) WaitTime = new ExponentDistribution(L); else WaitTime = new EvenDistribution(L); if (WorkExponent.Checked) WorkTime = new ExponentDistribution(L); else WorkTime = new EvenDistribution(L); int NAccepted = 0; int NDenied = 0; double Tj = 0; double Tzv = 0; double TMaxWait = 0; double Tbegin = 0; double Twork = 0; double Twait = 0; do { Tj = ComeTime.Next(); if(Tj < T) { if(Tj < Tzv) { TMaxWait = WaitTime.NextElement(); if( (Tj+TMaxWait) < Tzv) { NDenied++; continue; } else { Twork = WorkTime.NextElement(); if ( (Tzv + Twork) < T) { Tbegin = Tzv; Tzv = Tbegin + Twork; NAccepted++; Twait += (Tbegin - Tj); continue; } else { NDenied++; continue; } } } else { Twork = WorkTime.NextElement(); if ((Tj + Twork) < T) { Tbegin = Tj; Tzv = Tbegin + Twork; NAccepted++; Twait += (Tbegin - Tj); continue; } else { NDenied++; continue; } } } else { break; } } while(true); OutputBox.Text = string.Format("Виконано заявок : {0}\r\nВідхилено заявок : {1}\r\nСередній час очікування в черзі : {2}" + "\r\n\r\nПроцент відкидання заявок : {3:F2}%", NAccepted, NDenied, Twait / (double)NAccepted, (double)NDenied / (double)(NAccepted + NDenied) * 100); } } } Результат виконання завдання:   Висновок: в даній роботі я навчився формувати реалізації випадкових потоків однорідних подій із заданим законом розподілу, необхідних для моделювання виробничої системи з використанням моделі у вигляді системи масового обслуговування. Я реалізував моделюючий алгоритм імітаційного моделювання системи масового обслуговування, що представляє виробничу систему та провів імітаційне моделювання системи масового обслуговування і статистичний аналіз результатів моделювання.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!