4.4. Модель автобусного обслуживания
Автобус должен делать в день N рейсов. Первый рейс всегда начинается в исправном состоянии Е, имеется вероятность а сломаться во время рейса и перейти в состояние А. В этом состоянии он может выйти на следующий рейс. Необходимый ремонт для перевода его в исходное состояние Е занял бы время равное времени одного рейса. Если он не ремонтируется и в состоянии А выходит на следующий рейс, то есть вероятность в, что он закончит рейс в состоянии В. Если он достигает состояния В, то он ремонтируется до следующего утра и все оставшиеся рейсы отменяются. Нужно выбрать одну из двух стратегий обслуживания: 1) как только автобус переходит в состояние А, так мы его ремонтируем, 2) работает автобус до тех пор, пока не перейдет в состояние В и уже затем ремонтируется. Лучшей стратегией считается та стратегия, которая дает наибольшее среднее число рейсов в день. При моделировании формируется выборка случайного числа r и имитируется состояние, в котором находится автобус в конце каждого рейса. Сначала имитируется один рейс при стратегии 1, затем – при стратегии 2. Затем подсчитывается среднее число рейсов в день, фактически выполненных при стратегиях 1 и 2 и их разность. |
||||||||||||||||||||||||||||||||||
|
Автобус выезжает в состоянии |
Выборка состояний автобуса в конце рейса Автобус приезжает в состоянии Е А В |
||
|
Е |
(a£r<1) |
(0£r<a) |
- |
|
A |
- |
(b£r<1) |
(0£r<b) |
Допустим автобус начинает рейс в состоянии А (это возможно только при стратегии 1). Если полученное значение r удовлетворяет неравенству r³b, то автобус заканчивает рейс в состоянии А. При этом P(r³b)=1-P(r<b)=1-b. Блок-схема имитационной модели приведена на рис. 9
В ней использованы следующие обозначения: SG1-логическая переменная «хорошее состояние Е» при первой стратегии, она принимает значение 1, если автобус в хорошем состоянии Е при стратегии 1 и значение 0, если автобус находится в состоянии А (то же при стратегии 1). SG2-логическая переменная «хорошее состояние » при стратегии 2: равна 1, если автобус в хорошем состоянии при стратегии 2, 0- если автобус в состоянии А. SG2- переменная «состояние В» при стратегии 2, равна 1, если автобус в состоянии В при стратегии 2, в иных случаях =0.DMAX-количество дней всего,D-текущее число дней, RM-число моделируемых рейсов в день, включая отдельные рейсы.RA, RB-число действительно выполненных рейсов в течение дня при стратегиях 1 и 2 , соответственно. Z- разность между числом действительно выполненных рейсов при стратегиях 1 и 2 за определенный день, т.е. Z=RA-RB. SZ-сумма значений Z за D дней. AVERA, AVERB-среднее число рейсов в день при стратегиях 1 и 2 соответственно после М дней. AVERZ=AVERA-AVERB.
Часть блок-схемы между 2 и 3 используется только один раз за каждый моделируемый день, в начале каждого дня еще ни одного рейса не выполнено (RA=RB=0) или смоделировано (RM=0) и автобус начинает рейс в хорошем состоянии Е при обеих стратегиях (SG1=1, SG2=1, SB2=0).
После точки 3 RM сравнивается с N для проверки условия, не выполнено ли уже максимальное число рейсов в день. Если при стратегии 1 автобус начинает рейс в хорошем состоянии (SG1=1), то этот рейс выполняется (RA=RA+1) и производится выборка состояния в конце этого рейса, т.е. если r<a, то автобус уже не в хорошем состоянии (SG1=0) , если r>=a, то изменений нет, т.е. он в состоянии Е. Если же автобус сразу в состоянии А (SG1=0), то рейс отменяется (RA¹RA+1) и автобус ремонтируется (SG1=1). В этом случае нет необходимости выборки числа. После ремонта автобус всегда в хорошем состоянии. Затем мы определяем по табл. 2, в каком состоянии он закончит рейс при стратегии 2. После имитации
целого дня (RM=N) подсчитывается SRA, SRB, SZ и имитируется следующий день (D=D+1), если еще не достигнуто требуемое число имитируемых дней (DMAX). После имитации DMAX дней подсчитывается среднее число рейсов в день при стратегиях 1 и 2 и их разность.
Текст программы приведен ниже.
10 INPUT”Введите a,b,n,dm”;A,B,N,DM
20 D=0:SA=0:SB=0:SZ=0
30 RA=0:RB=0:RM=0
40 S1=1:S2=1:S3=0
50 RM=RM+1
60 IF RM<N THEN GOTO 110
70 SA=SA+RA:SB=SB+RB:Z=RA-RB:SZ=SZ+Z:D=D+1
80 IF D<=DM THEN GOTO 30
90 A1=SA/DM:A2=SB/DM:SZ=A1-A2:PRINT A1,A2,SZ
95 PRINT N/(1+A)+A*(1-(-A)^N)/(1+A)^2;(A*A*(1-B)^N)-B*B*(1-(1-A)^N)/A/B/(A-B)
100 END
110 IF S1=1 THEN GOTO 130
120 S1=1:GOTO 150
130 RA=RA+1:Q=RND(1)
140 IF Q<A THEN S1=0
150 IF S3<>0 THEN GOTO 50
160 RB=RB+1:Q=RND(1)
170 IF S2=1 THEN GOTO 200
180 IF Q<B THEN S3=1
190 GOTO 50
200 IF Q<A THEN S2=0
210 GOTO 50
При а=0.1, в=0.2, n=60 и dm=100 программа дает следующие данные: среднее количество рейсов при стратегии 1 равно 54.4, при стратегии 2-15.9, разница 39.5. Теоретические значения равны соответственно 54.6 и 15. Видно хорошее соответствие между данными.
Задачи для самостоятельного решения
1. Каждое утро Сэм играет в игру: подбрасывает монету до тех пор, пока разность между числом выпавших гербов и решек не станет равной 3. За каждый бросок монеты платит 1 доллар, при удачном исходе получает 8 долларов. На игру он откладывает 10 долларов и играет в нее до тех пор, пока либо не проиграет все деньги, либо не выиграет. Определите результат игры за пять дней, будет ли он в выигрыше?
2. Вероятности перемещения пьяницы 50% прямо, 20% направо или налево и 10 % назад. Использовав 10 попыток, вычислите вероятность того, что он, пройдя 5 кварталов, закончит путь не далее чем в 2-х кварталах от исходного состояния.
3. На лист бумаги с параллельными линиями на расстоянии а друг от друга бросают наугад иглу длиной l . Требуется определить вероятность того, что она пересечет 0,1,2,3 линии. Пусть х- расстояние по перпендикуляру от одного конца иглы до первой линии пересекаемой иглой, а q -угол (рис. 10).
Подсчет числа пересечений линий дан в табл. 3.

Рис. 10. Расположение иголки на листе с линиями
|
l*sin q по длине находится в пределах между |
Количество пересечений |
|
(x+а) и (х+2а) |
2 |
|
(x) и (х+а) |
1 |
|
(x-а) и (х) |
0 |
|
(x-2а) и (х-а) |
1 |
|
(x-3а) и (х-2а) |
2 |
Все значения х в пределах от 0 до а равновероятны, равновероятны также все значения q в пределах от 0 до 2p. Функции распределения для х и q выражаются формулами F1=x/a , F2=q/2p. Бросок иглы эквивалентен случайному выбору точки с координатами F1 и F2 внутри квадрата со стороной 1. Области квадрата, соответствующие пересечениям 0,1,2, .. линий определяются кривыми х+n*a=l*sin q ( n=…-2,-1,0,1,2,..). Вероятности пересечения 0, 1, 2, 3 линий могут быть найдены аналитически или графически путем измерения соответствующих площадей на рис. 11. Для l=3a вид квадрата представлен на рис. 11

Рис. 11. Кривые, характеризующие функцию распределения для разных n
и результаты расчета приведены в табл. 4
Количество пересечений |
0 |
1 |
2 |
3 |
Вероятность |
0.107 |
0.227 |
0.314 |
0.352 |
Проверьте данные расчета и проведите расчет для l=4a.
4. Производится серия N раз по 10 выстрелов по мишени. Требуется оценить вероятность того, что число попаданий в мишень будет четным, т.е. 0, 2, 4, 6, 8, 10.
Вероятность попадания случайной величины в интервал (0, р), где р£1, равна длине этого отрезка, т.е. Р{xi<p}=p. Поэтому при каждом выстреле полученное случайное число xi сравнивается с заданной вероятностью р и при xi<p регистрируется попадание в цель, иначе- нет.
P(y)=1/N Sj=1 N yi
yj=1, если hj-четное, иначе 0.
hj=Si=110hi, j=1..N, а hi=1, если xi<p, иначе 0. Блок- схема программы приведена на рис. 12.

Рис. 12. Блок-схема программы
Напишите программу и определите вероятность, сравните полученное решение с аналитическим решением
P(y)=Sk=05 c102k p2k(1-p)10-2k,
где cab=b!/a!(b-a)!.