51317

ПОСТРОЕНИЕ ИМИТАЦИОННОЙМОДЕЛИ СМО И ЕЁ ИССЛЕДОВАНИЕ

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

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

Два наладчика обслуживают 6 станков. Станок требует наладки в среднем через каждые 0,5 часа. Наладка занимает у рабочего в среднем 10 минут. Все потоки событий – простейшие. Определить, как изменятся следующие показатели...

Русский

2014-02-09

320 KB

20 чел.

Министерство образования Республики Беларусь

Учреждение образования

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

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет компьютерных систем и сетей

Кафедра программного обеспечения информационных технологий

Отчёт по лабораторной работе №4

по дисциплине

«Системный анализ и машинное моделирование»

ПОСТРОЕНИЕ ИМИТАЦИОННОЙМОДЕЛИ СМО И ЕЁ ИССЛЕДОВАНИЕ

Вариант 16

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

студент гр. 751001       Мельник Н. И.

Мойса Д. С.

Минск, 2010

1. Исходные данные

Два наладчика обслуживают 6 станков. Станок требует наладки в среднем через каждые 0,5 часа. Наладка занимает у рабочего в среднем 10 минут. Все потоки событий – простейшие. Определить, как изменятся следующие показатели:

- среднее число занятых работников;

- абсолютная пропускная способность;

- среднее число неисправных станков,

если рабочие будут налаживать станки совместно, затрачивая при этом на наладку одного станка в среднем 5 минут.

2. Анализ исходных данных

В первом случае, когда наладчики ремонтируют станки по отдельности, получим модель СМО, изображенную на рисунке 1-а.

Во втором случае, когда наладчики работают вместе, получим модель, изображенную на рисунке 2-б.

Рис 1-а

Рис 1-б

Примем во внимание, что если станок сломан и подал заявку на ремонт, то в этом случае он далее заявки не подает, пока не будет отремонтирован.

3. Построение диаграмм интенсивности переходов

В случае А диаграмма интенсивности переходов будет иметь вид:

В случае Б диаграмма интенсивности переходов будет иметь вид:

4. Построение математической модели

Случай А:

- Среднее число занятых рабочих  К=1.3892554194156456173.

- Абсолютная пропускная способность А=8.335532516493873704.

- Среднее число неисправных станков Lc=1.832233741753063148.

Случай Б:

- Среднее число занятых рабочих  К=0.7350776778413736713.

- Абсолютная пропускная способность А=8.8209321340964840556.

- Среднее число неисправных станков Lc=1.5895339329517579722.


5. Исходный код программы

Random R = new Random();

       private void btStart_Click(object sender, EventArgs e)

       {

           TwoChannelsWork();

           OneWorkerWorks();          

       }

       public void TwoChannelsWork()

       {

           double p = 1 / (60 * double.Parse(tbP.Text));

           double q = 1 / (60 * double.Parse(tbQ.Text));

           Queue<Request> RequestQueue = new Queue<Request>();

           int WorkingWorker = 0;

           int BreakingSource = 0;

           int SourcesGot = 0;

           Request[] Worker = new Request[2];

           int[] Source = new int[6];

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

               Source[i] = ExpDistributionGetInterval(p);

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

               Worker[i] = new Request(-1, 0);

           for (int Quant = 0; Quant < 100000; Quant++)

           {

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

               {

                   if (Source[i] > 0)

                       Source[i]--;

                   if (Source[i] == 0)

                   {

                       RequestQueue.Enqueue(new Request(i, ExpDistributionGetInterval(q)));

                       Source[i] = -1;

                   }

               }

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

               {

                   if (Worker[i].time == 0)

                   {

                       if (Worker[i].index != -1)

                           Source[Worker[i].index] = ExpDistributionGetInterval(p);

                       if (RequestQueue.Count > 0)

                           Worker[i] = RequestQueue.Dequeue();

                       else

                           Worker[i].index = -1;

                   }

                   else

                       Worker[i].time--;

               }

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

                   if (Source[i] > 0)

                       SourcesGot += (int)(p * 5000);

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

               {

                   if (Worker[i].index >= 0)

                   {

                       WorkingWorker++;

                       BreakingSource++;

                   }

               }

               BreakingSource += RequestQueue.Count;

               //listBox1.Items.Add(w.ToString()+"   "+RequestQueue.Count+"   "+ql.ToString()+"   "+(w+RequestQueue.Count+ql).ToString());

           }

           tbAverageWorkersA.Text = ((double)WorkingWorker / 100000).ToString();

           tbBreakingA.Text = ((double)(BreakingSource) / 100000).ToString();

           tbSourceGotA.Text = ((double)SourcesGot / 100000).ToString();

       }

       public void OneWorkerWorks()

       {

           double p = 1 / (60 * double.Parse(tbP.Text));

           double q = 1 / (60 * double.Parse(tbQ.Text));

           Queue<Request> RequestQueue = new Queue<Request>();

           int WorkingWorker = 0;

           int BreakingSource = 0;

           int SourcesGot = 0;

           int[] Source = new int[6];

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

               Source[i] = ExpDistributionGetInterval(p);

           Request Worker = new Request(-1, 0);

           for (int Quant = 0; Quant < 100000; Quant++)

           {

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

               {

                   if (Source[i] > 0)

                       Source[i]--;

                   if (Source[i] == 0)

                   {

                       RequestQueue.Enqueue(new Request(i, ExpDistributionGetInterval(2 * q)));

                       Source[i] = -1;

                   }

               }

               if (Worker.time == 0)

               {

                   if (Worker.index != -1)

                       Source[Worker.index] = ExpDistributionGetInterval(p);

                   if (RequestQueue.Count > 0)

                       Worker = RequestQueue.Dequeue();

                   else

                       Worker.index = -1;

               }

               else

                   Worker.time--;

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

                   if (Source[i] > 0)

                       SourcesGot += (int)(p * 5000);

               if (Worker.index >= 0)

               {

                   WorkingWorker++;

                   BreakingSource++;

               }

               BreakingSource += RequestQueue.Count;

               //listBox1.Items.Add(w.ToString()+"   "+RequestQueue.Count+"   "+ql.ToString()+"   "+(w+RequestQueue.Count+ql).ToString());

           }

           tbAverageWorkersB.Text = ((double)WorkingWorker / 100000).ToString();

           tbBreakingB.Text = ((double)(BreakingSource) / 100000).ToString();

           tbSourceGotB.Text = ((double)SourcesGot / 100000).ToString();

       }

       public class Request

       {

           public int time;

           public int index;

           public Request(int ind, int tim)

           {

               time = tim;

               index = ind;

           }

       }


q

q

p

p

p

p

p

2q

p

p

p

p

p

6

p

6


 

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

40562. Деревья решений 263 KB
  Известно что обучающий контент делится на несколько категорий по виду аудитории пользователей. В данном случае для исследования аудитории пользователей была взята статистика Портала на 1000 человек. Категории пользователей: По возрасту: Младше 18 лет – 651; Старше 18 лет – 349; По виду учебного заведения: Из пользователей младше 18 лет учащимися школы являются 721; Из пользователей младше 18 лет учащимися ССУЗов являются 279; Из пользователей старше 18 лет учащиеся ССУЗов – 72; Из пользователей старше 18 лет студенты ВУЗов...
40563. Деревья решений. Принятие решений 500 KB
  Экспертные системы – класс близкий к системам поддержки принятия решений которые представляют собой компьютерные автоматизированные системы целью которых является помощь людям принимающим решение в каких-либо определенных условиях для полного и объективного анализа предметной деятельности. Теория принятия решений – область исследования включающая в себя понятия и методы математики статистики экономики менеджмента и психологии которая изучает закономерности выбора людьми путей решения разного рода задач а также исследует способы...
40564. Компоновка поперечной рамы здания 1.2 MB
  Расстояние от оси подкрановой балки до оси колоны l1B1hBa75 B1 – размер части кранового моста выступающей за ось рельса 75мм – зазор между краном и колонной l1300100050075=875 мм l1 должен быть кратным 250 мм значит l1=1000 мм Высота сечения нижней части колонны hH=l1a hH= 1000500=1500 мм Пролёт мостового крана lк =l 2 l1 =3600021000=34000 Сечения верхней части колонны назначаем сплошно стенчатым двутавровым нижней сквозным. Вертикальные усилия от мостового крана Расчётное давление на...
40565. Расчёт пространственного одноэтажного промышленного здания 1.31 MB
  Расстояние от оси подкрановой балки до оси колоны l1B1hBa75 B1 – размер части кранового моста выступающей за ось рельса 75мм – зазор между краном и колонной l1300100050075=875 мм l1 должен быть кратным 250 мм значит l1=1000 мм Высота сечения нижней части колонны hH=l1a hH= 1000500=1500 мм Пролёт мостового крана lк =l 2 l1 =3000021000=28000 Сечения верхней части колонны назначаем сплошного сечения двутавровым нижней сквозным.8 Тип фермы Пролет фермы L = 300 м Высота фермы H = 315 м Количество панелей верхнего пояса 10...
40567. Качество ПО 586.5 KB
  Эффективность Ошибки анализа необходимого количества ресурсов обычно проявляются только в определенных ситуациях Задачи обеспечения качества Обеспечение качества Измерение оценка качества программы Применение методов повышения качества Повышение качества Обнаружение ошибок и неудовлетворительных мест в программе Исправление ошибок и другие изменения программы Необходимость оценки качества Контроль текущего прогресса Оценка эффективности затрат на повышение качества Выбор наиболее эффективных методов повышения качества Основа...
40568. Управление приложением пользователя 4.61 MB
  Для организации эффективной работы пользователя целесообразно создать целостное приложение предметной области, в котором все его компоненты должны быть сгруппированы по функциональному назначению. При этом необходимо обеспечить удобный графический интерфейс, чтобы пользователь мог решать задачи
40569. Введение в предмет АИС 29 KB
  Н 3 курс дисциплина АИС Занятие № 1 Тема: Введение в предмет АИС 1. Задачи АИС АИС являются широко распространенными в настоящее время развития общества когда информатика информационные технологии компьютеры сопровождают человека во всех сферах деятельности. Задачами АИС на данном этапе развития являются: изучение современных методов и средств проектирования информационных систем...
40570. Работа с данными таблицы 678 KB
  Достаточно часто возникает необходимость быстрого нахождения и редактирования заданных записей в больших массивах информация. Для этого важно быстро выбрать по некому шаблону записи и отсортировать их. Данная задача решается с помощью фильтрации записей в режиме таблицы или формы.