Моделирование торгового центра

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

	

	Моделирование торгового центра

	

	

	
Цель работы

	

	Целью работы является:

	Освоение основных элементов систем массового обслуживания

	Изучение основных принципов моделирования систем массового обслуживания на ПЭВМ 

	Получение практических навыков моделирования на примере исследования торгового центра

	

	
II.Теоретические сведения

	

	2.1 Основные элементы систем массового обслуживания

	

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

	Основными элементами систем массового обслуживания являются:

	Входной поток

	Очередь

	Прибор или канал обслуживания

	Выходной поток

	Общая функциональная схема системы имеет вид (Рис 1)

	

Выходной поток

Прибор обслуживания

Очередь						

Входной поток

	

		

	

	                                                                 М 

	Рис 1. Функциональная схема СМО

	

	Где - интенсивность потока заявок (среднее количество заявок, поступивших в единицу времени)

	М – интенсивность обслуживания заявок (среднее количество заявок, обслуживаемых прибором в единицу времени)

	Входной поток заявок представляет собой последовательность однородных событий следующих одно за другим в случайные моменты времени t0< t1, < t2….<tn

	

	                                                                 

	                                                                                                             t

	

	                      t0          t1    t2……...ti-1        ti …………..tn

	Рис.2 Входной поток заявок



Где τi = ti -ti-1 - интервал между двумя соседними моментами поступления заявок

Если τi = const , то токай поток называется регулярным. Если τi меняется случайным образом , то такой поток называется случайным .

Случайный поток называется простейшим или стационарным Пуассоновским потоком, если он обладает свойствами:

	Стационарности

	Безпоследействия

	Ординарности 

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

	

	f(τ)=λe-λτ, 							(1)

	

	где λ – интенсивность потока:

	τ>0 -интервал времени поступления заявок.

	Для моделирования интервала поступления заявок используется формула:

	

	τi=-ln(xi) (i=1,n) 							(2)

	

где xi -случайные числа равномерно-распределенные в интервале [0,1].

Тогда поступление заявок определяется по формуле 

Для получения случайных чисел х необходимо обратиться к стандартной функции или генератору случайных чисел, равномерно-распределенных в интервале RND(x).

Очередь – это линейная цепочка выстроившихся в ряд один за другим заявок, нуждающихся в том или ином виде обслуживания. Законы, по которым регламентируется поведение очереди образуют дисциплину обслуживания в очереди. Разделяют дисциплину заполнения очереди и дисциплину выбора заявок из очереди.

Дисциплина заполнения очереди включает 4 типа:

Естественную форму заполнения очереди, когда пришедшая заявка встает в очередь последней одна за другой

Кольцевую форму заполнения очереди, когда заявка становится первой в очередь, если вся очередь полностью заполнена

Поисковую форму заполнения очереди, когда заявка встает в очередь на свободное место

Приоритетную форму заполнения очереди, когда заявки с высшим приоритетом встают в очередь первыми по отношению к заявкам с низшим приоритетом.

Дисциплина выбора заявок из очереди предусматривает 3 принципа:

		«первым пришел – первым обслужен»

		«последним пришел – последним обслужен»

		по приоритету, т.е. заявки с высшим приоритетом обслуживаются первыми.

При этом бывают абсолютные приоритеты и относительные приоритеты. Заявки с абсолютным приоритетом полностью выбивают заявки с низшим приоритетом, которые в последствии покидают систему и не обслуживаются. Заявки с относительными приоритетами выбивают заявки с низшим приоритетом, которые в последствии либо дообслуживаются, либо обслуживаются заново.

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

Основной характеристикой прибора обслуживания является продолжительность обслуживания, т.е. среднее время обслуживания одной заявки τобс, которая равна 



τобс =  										(3)



где М – интенсивность обслуживания.

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

А – абсолютная пропускная способность системы , т.е. среднее количество заявок обслуженных в единицу времени

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

Ротк – вероятность отказа системы

Робс – вероятность обслуживания 

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

ож –среднее время ожидания в очереди

сист -среднее время пребывания заявок в системе

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

Кпр-коэфицент простоя системы



Методы моделирования СМО



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

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

Принцип ∆t

Принцип особых состояний

Принцип последовательной проводки заявок

Согласно принципу ∆t процесс перехода системы из одного состояния в другое рассматривается во времени на каждом шаге ∆t, начиная с момента времени t0. Конкретное состояние системы Si (t)выбирается по жребию. Так, если система имеет состояния: S1- поступление заявки, S2-освобождение прибора и т.д. то на оси времени (Рис.3)через каждые интервалы ∆t по жребию определяется наступило это состояние или нет. Если да, система переводится в это состояние, а если нет, то делается новый шаг ∆t и так далее.



                     ∆t                                 ∆t



                                                                                                         t

					                   t0       t1	t2	t3	t4	t5 ………………...	tn

Рис. 3 Переход системы из одного состояния в другое по принципу ∆t



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

К недостаткам этого метода относятся:

метод имеет множество “холостых ходов”, когда система не изменяет своего состояния

метод критичен к выбору интервала ∆t 

метод наименее экономичен с точки зрения времени реализации его на ЭВМ

Принцип особых состояний заключается в том, что в отличии от принципа ∆t в нем фиксируются только моменты переходов системы из одного состояния в другое. Выделяют моменты наступления событий и особые состояния. Начиная с момента времени t0 на оси системного времени определяют первый момент (приход заявки), по нему в зависимости от состояния системы следует перевести ее в новое состояние. Затем выбирается второй момент (освобождение заявки), по нему опять система переводится в новое состояние и т.д.. В этом случае переход системы производится от одного события к другому. Общая схема моделирующего алгоритма по особому состоянию представляется в виде (Рис. 4).






Б.О.О.С.

                        





Б.А.С.N

Б.А.С.2

Б.А.С.1

                                                            …….       





	

БМС1,Р

БМС1,1

БМСN.M

БМСN.1

БМС2,К

БМС2,1	



           ..                                     ..                ..                ..





Рис.4 Блок- схема моделирующего алгоритма по принципу особого состояния

Б.О.О.С- блок определения очередного события

Б.А.С. – блок анализа состояния

БМС –блок модификации состояния



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

При использовании данного метода удобно выделить события и состояния, которые можно представить в виде матрицыаij :



	
Очередное событие	Состояние прибора

				Свободен	Занят	Ремонт

			Начало моделирования	      а11	      а12	        а13

			Поступление заявок	       а21	      а22	         а23

			Начало ремонта 	       а31	      а32	         а33

Освобождение прибора после ремонта	

       а41	

      а42	       

			         а43

Освобождение прибора после обслуживания	 

        а51	    

      а52	

			         а53

			Окончание моделирования	       а62	      а62	         а63



Тогда в зависимости от события и состояния в СМО производится соответствующее изменение состояния.

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






Блок управления                  2 вариантами моделирования









Блок формирования            3  входного потока заявок









Блок анализа состояния      4   СМО









Блок формирования            5   очереди 









Блок выбора заявок из        6  очереди









Блок формирования            7 обслуживания заявок







Блок формирования            8 отказов  в обслуживании









Блок определения                9 характеристики СМО













  Блок окончания                

  моделирования



10











10                                                                  Рисунок 5. Обобщенная блок- схема



11     Конец

                                                                        моделирующего алгоритма СМО

	

	
III.Задание на выполнение работы

	

	Имеется торговый центр, в котором работает n продавцов .Центр обслуживает поток покупателей , приходящих с интенсивностью λ (чел/мин) среднее время обслуживания одного покупателя каждым продавцом составляет обс(мин). Помещение, в котором располагается торговый центр, может поместить (во время образования очередей) не более m покупателей. Покупатель, прибывающий, когда все m мест в очереди заняты, покидает торговый центр, т.е. не обслуживается и получает отказ.

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

	Вероятность отказа; 

	Относительную и абсолютную пропускную способности; 

	Среднее число покупателей стоящих в очереди;

	среднее число занятых продавцов;

	Коэффициент простоя занятых продавцов; 

	Среднее время пребывания покупателей в торговом центре;

	Исходные данные к заданию приведены в Таблице 1. Варианты задания выбираются в соответствии с порядковым номером студента по групповому журналу.

	

	
IV Порядок выполнения работы

	

	Для выполнения задания необходимо:

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

	2. описать основные принципы моделирования СМО на ЭВМ

	3. Разработать моделирующий алгоритм и составить блок - схему имитации торгового центра на ПЭВМ.

	4. Составить программу моделирования торгового центра на одном из языков программирования.

	5. Получить результаты моделирования на ПЭВМ и дать их физическую интерпретацию 

	6. Привести листинг программы с полученными результатами моделирования.

	7. Оформить отчет.








Ввод λ,μ.m,Kmax, x









       К=0;   Кобс=0,

 2      Котн =0; Tc =0,

       Nоч= 0; Tож =0,

       Tнезан = 0



5   Т пост= τ пост 

4     τ =- ln(x)



     Формирование 

3        Х=RND(x)









12







14





22



















 6        К= К+1







7     K>K max

		



34                                                                           Да





33

                                                        Нет





8   Т пост ≥ Tосв 









16

15     Nоч=m





9      Nоч=m



13





	

23	

	

	

10

	

	

	

	

	

	

10      Nоч=  Nоч+1

9

	

	

11     Точ(Nоч)=Тпост

	

	

	

	

	

12   Переход к 3

	

	

	

	

9

3

	

	

	

13      Котн = Котн +1

	

	

	

	

14   Переход к 3

	

	

	

	

3

	

15

	

	

	

 16           К обс = К обс +1

	

	

	

	

        Тнезан = Т незан + Тпост= 

 17        =Тосв

	

	

	

	

18      Формирование 

           Х = RND(x)

	

	

	

	

19      Тобс= -ln(x)

	

	

	

	

20          Т осв = Т пост + Тобс

	

	

	

	

21             Тс = Тс + Т обс

	

	

	

15

	

	

23       Вот = Тосв –Точ (1)



	

	

	

24   i=1, Nоч-1

	

	



	

	

  25       Точ(i) =Точ(i+1)

	













  26     Nоч=  Nоч-1









27     Тож=Тож+Вож











7

28      Формирование 

           Х = RND(x)





              Ротк=

34         ож=

               

              с=

              Кпр=







29      Тобс= -ln(x)









30             Тс = Тс + Вож









31        Т осв = Т пост + Тобс









  Печать результатов моделирования         35

 32         К обс = К обс +1









  33       Переход к 8



 36  Конец





8








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







Private Sub Command1_Click()

Dim l As Integer, m As Integer, tzad As Integer, Kmax As Integer

Dim Tobs As Variant

Dim Tosv() As Double

Dim Toch() As Double

Dim Potk As Double

Dim q As Double

SumL = 0

n = 1

5: SumP = SumP + Pmin

n = n + 1

x = 0.5

k = 0

Kotk = 0

Noch = 0

Toj = 0

Tsis = 0

Kobs = 0

Tnezan = 0

Tpost = 0

l = Val(Text1.Text)

Tobss = Val(Text2.Text)

m = Val(Text3.Text)

tzad = Val(Text4.Text)

Kmax = Val(Text5.Text)

ReDim Toch(m) As Double

ReDim Tosv(n) As Double

For i = 1 To n

Tosv(i) = 0

Next i

10: x = Rnd(x)

T = -1 / l * Log(x)

Tpost = Tpost + T

k = k + 1

If k > Kmax Then

GoTo 100

End If

30: Pmin = 1

Tmin = Tosv(1)

For i = 1 To n

If Tosv(i) < Tmin Then

 Pmin = i

 Tmin = Tosv(i)

End If

Next i

If Tpost < Tosv(Pmin) Then

GoTo 20

Else

GoTo 40

End If

20: If Noch = m Then

Kotk = Kotk + 1

GoTo 10

Else

Noch = Noch + 1

SumL = SumL + Noch

Toch(Noch) = Tpost

GoTo 10

End If

40: If Noch = 0 Then

Kobs = Kobs + 1

Tnezan = Tpost - Tosv(Pmin)

x = Rnd(x)

Tobs = -1 / (1 / Tobss) * Log(x)

Tosv(Pmin) = Tpost + Tobs

Tsis = Tsis + Tobs

GoTo 10

Else

Voj = Tosv(Pmin) - Toch(1)

For i = 1 To Noch - 1

Toch(i) = Toch(i + 1)

Next i

Noch = Noch - 1

Toj = Toj + Voj

x = Rnd(x)

Tobs = -1 / (1 / Tobss) * Log(x)

Tsis = Tsis + Tobs + Voj

If Tsis > tzad Then GoTo 5

Tosv(Pmin) = Tosv(Pmin) + Tobs

Kobs = Kobs + 1

oTo 30

End If

100: Potk = Kotk / Kmax

q = 1 - Potk

A = q * l

Ls = SumL / Kmax

Ps = SumP / n

Kpr = Tnezan / Tsis

Text6.Text = Str(Potk)

Text7.Text = Str(q)

Text8.Text = Str(A)

Text9.Text = Str(Ls)

Text10.Text = Str(Ps)

Text11.Text = Str(Kpr)

Text12.Text = Str(Tsis)

Text13.Text = Str(n)

End Sub