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


 

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

63205. Цивільно-правова відповідальність 24.03 KB
  Мета: ознайомити учнів з особливостями та порядком притягнення до цивільноправової відповідальності; сформувати розуміння можливої відповідальності за завдану шкоду; виховувати почуття відповідальності за свої дії.
63207. Спадкове право 27.55 KB
  Мета: розкрити основні поняття спадкового права; познайомити учнів з особливостями спадкового права з умовами відкриття спадщини й винесення права на спадщину; виховувати в учнів правову культуру та правову свідомість.
63211. Узагальнення знань за темою «Київська Русь у другій половині XI — першій половині XIII ст.» 380 KB
  Мета: повторити та узагальнити матеріал, вивчений із теми «Київська Русь у другій половині XI — першій половині XIII ст.», підготуватися до уроку тематичного оцінювання; розвивати в учнів уміння аналізувати матеріал, робити висновки, виділяти головне, удосконалювати навички роботи з історичними джерелами...