51317

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

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

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

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

Русский

2014-02-09

320 KB

24 чел.

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

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

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

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

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

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

Отчёт по лабораторной работе №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


 

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

77925. Особенности локальных, глобальных и городских сетей 85.5 KB
  Компьютерные сети создаются для того, чтобы дать возможность территориально разобщенным пользователям обмениваться информацией между собой, использовать одинаковые программы, общие информационные и аппаратные ресурсы.
77926. Интернет. Браузер. Электронная почта. Web-дизайн 706 KB
  Общеизвестно, что у истоков изобретения вычислительной техники стояли американцы. Первоначально многие исследования в области создания и усовершенствования глобальных сетей поддерживались Министерством обороны США
77927. Работа в математическом пакете Mathcad 168.5 KB
  «Mathcad» включает в свой состав три редактора - формульный, текстовый и графический. Благодаря им обеспечивается принятый в математике способ записи функций и выражений и получение результатов вычислений, произведенных компьютером
77928. Арифметико-логические основы информатики 119 KB
  Арифметико-логические основы информатики Цели изучения: Сформировать представление об информационном обществе Объяснить роль и назначение информатики Определить понятие информации её свойства измерение и характеристики Получить знания о кодировании и представлении информации в ЭВМ. Основные понятия информатики Роль информатизации в развитии общества Структура информатики Измерение информации Качество информации. Системное программное обеспечение компьютеров Цели изучения: Сформировать...
77930. Системы счисления. Кодирование информации 253 KB
  Система счисления называется позиционной, если одна и та же цифра имеет различные значения, определяемые позицией цифры в последовательности цифр, изображающей число. Количество (Р) различных цифр
77931. ТЕНЗОМЕТРИЧЕСКИЕ ИЗМЕРЕНИЯ 18 KB
  Физически измеряются: деформации под действием силы и напряжения емкостными индуктивными пьезо и тензодатчиками. Основным недостатком ненаклеиваемых датчиков является разный теплоотвод от его элементов следовательно сильное влияние нагрева от измерительного тока что заставляет снижать токснижая чувствительность датчика. Удлинение датчика до 5 на бумажной или полиамидной основе и 0. Применяемый для крепления датчика клей существенно влияет на характеристики измерения за счет: деформации сдвига передающей деформация на резистор ...
77932. КАЧЕСТВО ПРОДУКЦИИ И ЕГО КОНТРОЛЬ 19.5 KB
  Контроль качества контроль количественных и качественных характеристик произведенной продукции. Входной контроль для выяснения качества исходных материалов документации и оборудования. Для возможности сравнения двух вариантов технологии мера качества или иначе критерий качества должна быть определена как закон по которому каждой совокупности характеристик можно поставить в соответствие одно число. Естественно что критерии качества будут разными не только для разных применений разных технологий и разных...
77933. НЕРАЗРУШАЮЩИЕ МЕТОДЫ КОНТРОЛЯ 160 KB
  Быстрые электроны получают в разных ускорителях или от изотопных источников теллур стронций бета излучения. Спектр излучения сплошной с характеристическими пиками материала мишени. Размер зоны излучения определяется размером пучка электронов и лимитируется допустимой плотностью мощности на мишени. Ионизационная...