Очередное событие Состояние прибора
Свободен Занят Ремонт
Начало моделирования а11 а12 а13
Поступление заявок а21 а22 а23
Начало ремонта а31 а32 а33
Освобождение прибора после ремонта
А41
А42
А43
Освобождение прибора после обслуживания
А51
А52
А53
Окончание моделирования а62 а62 а63
Тогда в зависимости от события и состояния в СМО производится соответствующее изменение состояния.
Принцип последовательной проводки заявок является наиболее экономичным из всех принципов. Он заключается в том, что судьба каждой заявки прослеживается в порядке ее поступления в систему до ее выхода из нее. Заявка проходит все этапы обработки: она может поступить в очередь или на обслуживание; покинуть прибор полностью или частично быть обслуженной; перейти вновь в очередь или к другому прибору обслуживания и т.д. В соответствии с данным принципом моделирующий алгоритм должен отказать работу всех элементов СМО. Дополняя его блоками управления и анализа состояний, получим следующую блок- схему моделирующего алгоритма (Рис.5)
моделирующего алгоритма СМО
III.Задание на выполнение работы
Имеется торговый центр, в котором работает n продавцов.Центр обслуживает поток покупателей, приходящих с интенсивностью λ (чел/мин) среднее время обслуживания одного покупателя каждым продавцом составляет обс(мин). Помещение, в котором располагается торговый центр, может поместить (во время образования очередей) не более m покупателей. Покупатель, прибывающий, когда все m мест в очереди заняты, покидает торговый центр, т.е. не обслуживается и получает отказ.
Необходимо определить оптимальное количество продавцов в торговом центре, чтобы среднее время пребывания покупателей в торговом центре не превышало заданного времени tзад. (мин), т.е. чтобы выполнялось условие tсист tзад, а также вероятностные характеристики обслуживания покупателей в данном центре при найденном оптимальном количестве продавцов:
1. Вероятность отказа;
2. Относительную и абсолютную пропускную способности;
3. Среднее число покупателей стоящих в очереди;
4. среднее число занятых продавцов;
5. Коэффициент простоя занятых продавцов;
6. Среднее время пребывания покупателей в торговом центре;
Исходные данные к заданию приведены в Таблице 1. Варианты задания выбираются в соответствии с порядковым номером студента по групповому журналу.
IV Порядок выполнения работы
Для выполнения задания необходимо:
1. Представить торговый центр в виде системы массового обслуживания. Для чего следует произвести постановку задачи, проанализировать условия задачи, определить параметры (элементы) СМО и сформулировать цель решения задачи.
2. описать основные принципы моделирования СМО на ЭВМ
3. Разработать моделирующий алгоритм и составить блок - схему имитации торгового центра на ПЭВМ.
4. Составить программу моделирования торгового центра на одном из языков программирования.
5. Получить результаты моделирования на ПЭВМ и дать их физическую интерпретацию
6. Привести листинг программы с полученными результатами моделирования.
7. Оформить отчет.
Да
Нет
Листинг программы
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