47651 (566461), страница 2
Текст из файла (страница 2)
а42
а43
Освобождение прибора после обслуживания
а51
а52
а53
Окончание моделирования а62 а62 а63
Тогда в зависимости от события и состояния в СМО производится соответствующее изменение состояния.
Принцип последовательной проводки заявок является наиболее экономичным из всех принципов. Он заключается в том, что судьба каждой заявки прослеживается в порядке ее поступления в систему до ее выхода из нее. Заявка проходит все этапы обработки: она может поступить в очередь или на обслуживание; покинуть прибор полностью или частично быть обслуженной; перейти вновь в очередь или к другому прибору обслуживания и т.д. В соответствии с данным принципом моделирующий алгоритм должен отказать работу всех элементов СМО. Дополняя его блоками управления и анализа состояний, получим следующую блок- схему моделирующего алгоритма (Рис.5)
Блок управления 2 вариантами моделирования
Блок формирования 3 входного потока заявок
Блок анализа состояния 4 СМО
Блок формирования 5 очереди
Блок выбора заявок из 6 очереди
Блок формирования 7 обслуживания заявок
Блок формирования 8 отказов в обслуживании
Блок определения 9 характеристики СМО
10
Рисунок 5. Обобщенная блок- схема
моделирующего алгоритма СМО
III.Задание на выполнение работы
Имеется торговый центр, в котором работает n продавцов .Центр обслуживает поток покупателей , приходящих с интенсивностью λ (чел/мин) среднее время обслуживания одного покупателя каждым продавцом составляет
обс(мин). Помещение, в котором располагается торговый центр, может поместить (во время образования очередей) не более m покупателей. Покупатель, прибывающий, когда все m мест в очереди заняты, покидает торговый центр, т.е. не обслуживается и получает отказ.
Необходимо определить оптимальное количество продавцов в торговом центре, чтобы среднее время пребывания покупателей в торговом центре не превышало заданного времени tзад. (мин), т.е. чтобы выполнялось условие tсист
tзад, а также вероятностные характеристики обслуживания покупателей в данном центре при найденном оптимальном количестве продавцов:
-
Вероятность отказа;
-
Относительную и абсолютную пропускную способности;
-
Среднее число покупателей стоящих в очереди;
-
среднее число занятых продавцов;
-
Коэффициент простоя занятых продавцов;
-
Среднее время пребывания покупателей в торговом центре;
Исходные данные к заданию приведены в Таблице 1. Варианты задания выбираются в соответствии с порядковым номером студента по групповому журналу.
IV Порядок выполнения работы
Для выполнения задания необходимо:
1. Представить торговый центр в виде системы массового обслуживания. Для чего следует произвести постановку задачи, проанализировать условия задачи, определить параметры (элементы) СМО и сформулировать цель решения задачи.
2. описать основные принципы моделирования СМО на ЭВМ
3. Разработать моделирующий алгоритм и составить блок - схему имитации торгового центра на ПЭВМ.
4. Составить программу моделирования торгового центра на одном из языков программирования.
5. Получить результаты моделирования на ПЭВМ и дать их физическую интерпретацию
6. Привести листинг программы с полученными результатами моделирования.
7. Оформить отчет.
К=0; Кобс=0,
2 Котн =0; Tc =0,
Nоч= 0; Tож =0,
Tнезан = 0
Формирование
3 Х=RND(x)
4 τ =-
ln(x)
5 Т пост= τ пост
6 К= К+1
Да
Нет
10 Nоч= Nоч+1
11 Точ(Nоч)=Тпост
12 Переход к 3
13 Котн = Котн +1
14 Переход к 3
16 К обс = К обс +1
Тнезан = Т незан + Тпост=
17 =Тосв
18 Формирование
Х = RND(x)
19 Тобс= -
ln(x)
20 Т осв = Т пост + Тобс
21 Тс = Тс + Т обс
23 Вот = Тосв –Точ (1)
25 Точ(i) =Точ(i+1)
26 Nоч= Nоч-1
27 Тож=Тож+Вож
28 Формирование
Х = RND(x)
Ротк=
34
ож=
с=
Кпр=
29 Тобс= -
ln(x)
30 Тс = Тс + Вож
31 Т осв = Т пост + Тобс
32 К обс = К обс +1
33 Переход к 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















