Создание программы для моделирования — КиберПедия 

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Создание программы для моделирования

2019-09-26 127
Создание программы для моделирования 0.00 из 5.00 0 оценок
Заказать работу

Для составления детальной схемы алгоритма используем следующие идентификаторы переменных:

- массив состояния маршрутов nz(3);

- интервал движения автобусов tz(3);

- массив максимальных мест np(2);

- длительность маршрута tp(2);

- число заказавших такси noted;

- число обслуженных пассажиров nend;

- интервал ʌt dt;

- массивы задания параметров времени интервала движения a(3), b(3);

- массив задания параметров времени проезда маршрута tod(2);

- вероятность отказа услуг автобусов пассажиром pot;

- переменные для задания параметров времени прихода пассажиров tа, tb.

Детальная схема алгоритма, записанная на Pascal, имеет следующий вид:

program model;

 var i, i1, if1, noted, nend: integer;

ta, tb, dt, t, pot: real;

      a: array[1..3] of real;

b: array[1..3] of real;

tod: array[1..2] of real;

tz: array[1..3] of real;

tp: array[1..2] of real;

      nz: array[1..3] of integer;

np: array[1..2] of integer;

n: array[1..2] of integer;

 procedure DAT (a,b: real; var c:real);                                                                                               

begin                                                                                                    

            randomize;

              c:= a + random (round (b));                      

end;

begin

      for i:=1 to 3 do

            readln (a [i], b [i]);

           readln (ta, tb, dt);

      for i:=1 to 3 do

           begin

                nz [i]:= 0;

              if i < 3 then

                        begin

                              n[i]:= 0;

                              np[i]:= 0;

                        end;

                end;        

           for i1:= 1 to 5 do           

           begin   

                nend:= 0;

                noted:= 0;

                t:= 0;

                for i:= 1 to 3 do

                        begin

                              tz[i]:= 0;

                              if i < 3 then tp[ i ]:= 0

                     end;

                while nend < 150 do

                        begin

                              for i:= 1 to 2 do         

                                    if  np[i] = 1 then     

                                        if tp[i]<=0 then

                                             begin   

                                                   np[i]:= 0;

                                                   nend:= nend + 1;

                                             end;

                                            

                                                         

                              if1:= 0;

                              for i:= 1 to 3 do

                                    begin

                                          if nz[ i ] = 1 then                  

                                              if tz[ i ] < 0 then  

                                                   begin

                                                         if1:= 1;

                                                         nz[ i ]:= 0;        

                                                         if i = 3 then n[2]:= n[ 2 ] + 1

                                                                           else n[1]:= n[ 1 ] + 1

                                                          end;

                                                   end; 

                             for i:= 1 to 2 do

                                    if n[i] > 0 then                     

                                          if np[i]= 0 then                     

                                              begin                   

                                                    n[i]:= n[i] - 1;             

                                                    np[i]:= 1;              

                                                     tp[i]:= tod[ i ]                      

                                              end;                      

                                                                            

                                                                                

                    if t <=0 then

                         begin                

                               if1:= 0;                              

                                  for i:= 1 to 3 do                                    

                                    if if1 = 0 then

                                          if nz[ i ] = 0 then                                

                                              begin                      

                                                    nz[ i ]:= 1;            

                                                    DAT (a[ i ], b[ i ], tz[ i ]);             

                                                    if1:= 1;          

                                               end;                   

                                  if if1 = 0 then noted:= noted + 1;                          

                                                                 

                                  DAT (ta, tb, t);                                                              

                            end;                                                                           

                    t:= t - dt;                                                                             

                    for i:= 1 to 3 do                                                                  

                           begin                                                  

                                 if i < 3 then tp[i]:= tp[ i ] - dt;                                                              

                                                                                                     

                                 tz[i]:= tz[i] - dt;                                                      

                                end;

end;

  end;                                                                                                                                                                     

             pot:= noted/(nend + noted);

                         writeln (nend); 

                         writeln (noted);

                         writeln (pot);

  

end.

                                                                                                  


Анализ результатов моделирования                                                                                                   

 После введения исходных данных в программу был получен следующий результат:

Это означает, что при таком режиме работы из 151 пришедшего пассажира, пришлось заказать такси 75, а вероятность отказа услуг автобуса составляет 0,33 – 33%, то есть достаточно высока.

Следовательно, существует проблема с большими интервалами движения автобуса. Изменить время прохождения автобуса нет возможности, значит необходимо уменьшить интервалы движения.

Еще раз смоделируем работу автобусов, при условии, что автобусы могут пассажира каждые 10± 3 минуты.


Результаты таковы: 

 

При таком порядке работы автобусов из 150 пассажиров только один был вынужден заказать такси, а вероятность отказа от услуг автобуса составляет: 0,007- 0,7%. Продуктивность работы автобусов увеличилась.                   

 

 

Заключение

В данной работе была смоделирована ситуация очереди на остановке, но подобная ситуация могла возникнуть и в магазине и на предприятии. Целью моделирования было изучение эффективности работы автобусов.

В процессе подготовки работы были изучены основы систем массового обслуживания(СМО). Заявки поступают в СМО обычно не регулярно, а случайно, образуя так называемый случайный поток заявок (требований). Обслуживание заявок, вообще говоря, также продолжается какое-то случайное время. Случайный характер потока заявок и времени обслуживания приводит к тому, что СМО оказывается загруженной неравномерно: в какие-то периоды времени скапливается очень большое количество заявок (они либо становятся в очередь, либо покидают СМО необслуженными), в другие же периоды СМО работает с недогрузкой или простаивает.

Предметом теории массового обслуживания является построение математических моделей, связывающих заданные условия работы СМО (число каналов, их производительность, характер потока заявок и т.п.) с показателями эффективности СМО, описывающими ее способность справляться с потоком заявок.

В качестве показателей эффективности СМО используются: среднее число заявок, обслуживаемых в единицу времени; среднее число заявок в очереди; среднее время ожидания обслуживания; вероятность отказа в обслуживании без ожидания; вероятность того, что число заявок в очереди превысит определенное значение и т.п.

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

Выявлено, что для успешной и эффективной работы автобусов необходимо, чтобы интервал автобусов составлял 10±3.

 



Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.018 с.