50441

Определить средние значения очередей пассажиров и машин и средние значения времени пребывания на стоянке пассажиров и машин

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

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

Система массового обслуживания представляет собой стоянку такси, на которую поступает поток пассажиров с интенсивностью и поток машин с интенсивностью заявок в час (все потоки простейшие). Пассажиры образуют очередь, которая уменьшается на 1, когда к стоянке подходит машина. В случае, когда на стоянке нет пассажиров, в очередь становятся машины. Число мест для машин на стоянке ограничено (n=10). Очередь пассажиров не ограничена, посадка производится мгновенно.

Русский

2014-02-03

106.5 KB

16 чел.

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

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

Кафедра ПОИТ

ОТЧЕТ

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

по курсу «САиММ»

Выполнили:

Проверил:

Студенты гр. 251005

Русин В.Г.

Барабаш Е.

Бритвич Т.

Калюта А.

Минск 2005

I. Постановка задачи.

Система массового обслуживания представляет собой стоянку такси, на которую поступает   поток пассажиров с интенсивностью =12.0 и поток машин с интенсивностью =15.0 заявок в час (все потоки простейшие). Пассажиры образуют очередь, которая уменьшается на 1, когда к стоянке подходит машина. В случае, когда на стоянке нет пассажиров, в очередь становятся машины. Число мест для машин на стоянке ограничено (n=10). Очередь пассажиров не ограничена, посадка производится мгновенно.

Определить средние значения очередей пассажиров и машин и средние значения времени пребывания на стоянке пассажиров и машин.

II. Диаграмма интенсивности переходов.

                                              

…           …                            …          …

                                              

Состояния СМО пронумерованы соответственно числу пассажиров и машин на стоянке двумя индексами:

- первый – число пассажиров;

- второй – число машин.

S0,0 – состояние, когда на стоянке нет ни пассажиров, ни машин;

S0,i – состояние, когда на стоянке нет пассажиров, i – машин;

...

Sj,0 – состояние, когда на стоянке нет машин и j – пассажиров;


III
. Расчет аналитической модели.

По условию:

   =12.0.

   =15.0.

   Очередь машин ограничена – n=10.

   Очередь пассажиров не ограничена.

   Все потоки простейшие.

Поток пассажиров - одноканальный, с неограниченной очередью.

Приход пассажиров – поступление заявки, а приезд такси – её обработка.

 

Таким образом:

  •  среднее значение очереди пассажиров = 3.2
  •  среднее время пребывания пассажиров на стоянке = 0.35

Для потока машин приезд такси – поступление заявки, а приход пассажира её обработка, поэтому:

Таким образом:

  •  среднее значение очереди машин = 6.16
  •  среднее время пребывания пассажиров на стоянке = 0.477.


IV
. Результаты работы имитационной модели.

1. Для 1000 единиц времени.

2. Для 10000 единиц времени.

V. Вывод.

Небольшие отклонения в результатах работы имитационной модели с аналитической моделью зависят от встроенного генератора случайных чисел, от выбора количества единиц времени работы системы, от выбора интервала .


VI.
Листинг программы.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

       switch(Flag)

       {

       case 0:

               {

               Queue *headM=NULL,*backM=NULL,*headL=NULL,*backL=NULL,*New;

               l=StrToFloat(Edit1->Text);

               m=StrToFloat(Edit2->Text);

               Noch=StrToInt(Edit3->Text);

               Tmax=StrToFloat(Edit9->Text);

               double dt=(double)1/(10*m);

               Edit10->Text=dt;

               int OchL=0,OchM=0,LochL=0,LochM=0,Sch=0,SchM=0,SchL=0;

               double To=0;

               randomize();

               double Tn=(double)(-1/l)*log((rand()+1)/(double)(RAND_MAX+1));

               double Ts=0;

               int Sk=0;

               double TimeInL=0,TimeInM=0;

               int AOchM[100],AOchL[100];

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

               {

                       AOchM[i]=0;AOchL[i]=0;

               }

               while(Ts<Tmax)

               {

                       Ts += dt;

                       Sch++;

                       if (OchM) LochM += OchM;

                       if (OchL) LochL += OchL;

                       AOchL[OchL]++;

                       AOchM[OchM]++;

                       if (Ts>To)

                       {

                               if(OchL!=0)

                               {

                                       OchL--;

                                       headL->TimeIn=To-headL->TimeIn;

                                       TimeInL += headL->TimeIn;

                                       Queue *temp;

                                       temp=headL;

                                       headL=headL->next;

                                       delete temp;

                                       

                               }

                               else

                               {

                                   if(OchM!=Noch)

                                   {

                                       New=new Queue;

                                       New->TimeIn=To;

                                       New->next=NULL;

                                       if (headM==NULL)

                                               headM=backM=New;

                                       else

                                       {

                                               backM->next=New;

                                               backM=New;

                                       }

                                       OchM++;

                                   }

                               }

                               SchM++;

                               To=Ts + (double)(-1/m)*log((rand()+1)/(double)(RAND_MAX+1));

                       }

                       if (Ts>Tn)

                       {

                               if(OchM!=0)

                               {

                                       OchM--;

                                       headM->TimeIn=Tn-headM->TimeIn;

                                       TimeInM += headM->TimeIn;

                                       Queue *temp;

                                       temp=headM;

                                       headM=headM->next;

                                       delete temp;

                               }

                               else

                               {

                                       OchL++;

                                       New=new Queue;

                                       New->TimeIn=Tn;

                                       New->next=NULL;

                                       if (headL==NULL)

                                               headL=backL=New;

                                       else

                                       {

                                               backL->next=New;

                                               backL=New;

                                       }

                               }

                               SchL++;

                               Tn=Ts + (double)(-1/l)*log((rand()+1)/(double)(RAND_MAX+1));

                       }

               }

               double Ll,Lm;

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

                       Ll += (double)i*AOchL[i]/Sch;

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

                       Lm += (double)i*AOchM[i]/Sch;

               Edit4->Text=(double)Ll;

               Edit5->Text=(double)Lm;

               Edit6->Text=(double)TimeInL/SchL;

               Edit7->Text=(double)TimeInM/SchM;

               }

               break;

            }

}


S 0.0

S 0.1

S 0.i

S 0.n

S 1.0

S j.0


 

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

44659. Приготовление и анализ пластических смазок 20.64 KB
  Пластичные смазки представляют собой высокоструктурированные тиксотронные коллоидные системы твердого загустителя (дисперсной фазы) в жидкой основе (дисперсионной среде).
44660. Контактная доочистка масел 19.69 KB
  Адсорбция - это концентрирование вещества из объема фаз на поверхности раздела между ними, например, из газа или раствора на поверхности твердого тела (адсорбента) или жидкости.
44662. Адсорбционная очистка масляных дистиллятов 92.64 KB
  При этом к адсорбентам предъявляются следующие требования: высокие селективность разделения и адсорбционная емкость; хорошие кинетические характеристики, особенно в жидкофазных процессах
44663. ПЕРКОЛЯЦИЯ ПАРАФИНА (ЦЕРЕЗИНА)-СЫРЦА 17.57 KB
  Метод перколяции заключается в фильтрации сырья через слой адсорбента. В качестве адсорбента в настоящей работе используется силикагель марки АСК
44667. Селективная очистка масляных дистиллятов фурфуролом методом непрерывной противоточной экстракции 147.53 KB
  При помощи селективных растворителей, в качестве которых используются в основном фенол, фурфурол и N-метилпирролидон, могут быть извлечены такие нежелательные компоненты, как непредельные углеводороды