? 一, 模拟模型的思想方法
类似于第二章中的渡口模型与穿越公路模
型可采用系统模拟技术,
例 7.4.1 如图一列火车从 A站开往 B 站,某人
人每天赶往 B站上这趟火车,
A B
运行方向
1) 火车从 A站到 B站的运行时间是均值为
30分钟,标准差为 2 分钟的随机变量;
2) 火车在下午大约 1点离开 A 站,离开时刻
的频率分布如下:
出发时刻 午后 1:00 午后 1:05 午后 1:10
频 率 0.7 0.2 0.1
他到达 B 站的时刻的频率分布为
时刻 午后 1:28 午后 1:30 午后 1:32 午后 1:34
频率 0.3 0.4 0.2 0.1
他能否及时赶上火车? 含混!
明确为:他能及时赶上火车的概率是多少?
1,此问题 可用概率论知识求解 (试一试 )
2,采用模拟求解法,
先模拟并计算:在同样条件下多次试验,
他能及时赶上火车的比例是多少?
能及时赶上火车的充要条件是, T3< T1+ T2
其中
T1— 火车从 A站出发的时刻;
T2— 火车的运行时间;
T3— 他到达 B站的时刻,
是什么变
量?如何
模拟?假设 T
1,T2,T3都是随机变量, 且
将午后 1时记为 t=0,设火车运行时间 T2
服从正态分布 N(30,22)
T1和 T3的分布律分别为:
T1(分 ) 0 5 10
P(t) 0.7 0.2 0.1
T2(分 ) 28 30 32 34
P(t) 0.3 0.4 0.2 0.1
模拟算法:
(1) 对 RND随机数 r1,r2 令
??
?
?
?
??
???
302
)2c o s ()]l n (2[
2
2
2/1
1
xt
rrx
可看作火车运行时间 T2 的一个观察值,
服从 N(30,22)
的正态分布
随机数
(2) 对 RND 随机数 r3,r4,令
?
?
?
?
?
??
??
??
?
.19.0,10;9.07.0,5;7.00,0
3
3
3
1
r
r
r
t
?
?
?
?
?
?
?
??
??
??
??
?
0.19.0,34;9.07.0,32;7.03.0,30;3.00,28
4
4
4
4
2
r
r
r
r
t
t1 和 t3 可看
成 T1或 T3的
观察值,
取 4个 RND随机数, r1=0.890,r2=0.333,
r3=0.304,r4=0.491
因 0.7< r1< 0.9,令 t1= 5 (分 );
因 0.3< r4< 0,7,令 t3= 30(分 );
令 x=[- 2ln(r2)]1/2cos( 2πr3) =- 0.5(分 )
则 t2=2x+30=- 0.5× 22+30=29(分 )
有 t3< t1+t2,这一次运行 (模拟 )结果表明他 能
及时 赶上火车,
一次模拟结果毫无意义!!
模拟是试验性的,
是思维结果的验证。
系统模拟是研究系统,特别是 动态系统 的
重要方法,对于:
1).结构复杂的系统;
2),很难用解析方法求出变量关系的系统;
3),内部机理不明的“黑箱”系统;
4),为验证用其他方法建立的模型及结果,
应是较好的选择,
必须进行足够多次的模拟,并对
结果进行统计分析,
动态系统是随时间变化的,含有随机因素
的系统,其中 排队系统 是重要而常见的动
态系统,
对排队系统进行模拟,首先要清楚它的运
行机制,
二, 排队系统简介
1,排队过程的一般表示
顾客源 排队结构




顾客
来到
顾客
离去
排队系统
2.排队系统的组成和特征
(1) 输入过程
对于顾客逐个到达随机性输入过程,
1) 顾客的到达是相互独立 (或相互关联 )的;
2) 输入过程是平稳的、对时间是齐次的 ;
指相继到达的时间间隔的分布和所含参数
(均值、方差等 )不随时间改变,
(2) 排队规则
即时制 或 损失制 (如,普通市内电话 ).



先到先服务 ( FIFO)
后到先服务 ( LIFO)
随机服务 ( KS)
有优先权的服务
队列 单列
多列(各列间不能相互转移)
不能中
途退出
(3) 服务机构
1) 排队方式, 单队 — 单服务台
多服务台(串列)
1
1 2 n…
1
2
n

单队 —

服务台
(并列)
2) 服务时间, 确定型 的与 随机型 的
排队论讨论 相继到达时间 和 服务时间,二者
中至少有一个是随机型的,
随机服务时间的分布中数学期望、方差等参
数都不受时间的影响,
3.排队模型的分类






顾客相继到达间隔时间的分布 (X);
服务时间的分布 (Y) ;
服务台个数 (Z),
M— 指数分布 ( Markov性 );
D— 确定型 ( Deterministic) ;
EK— K阶爱尔朗分布 ( Erlang) ;
GI— 一般相互独立 (General Independent)
的随机分布;
G— 一般( General) 随机分布,
用符号 X/Y/Z 表示排队模型的类别
例 7.4.1
M/M/1,到达间隔时间服从指数分布,服务时
间服从指数分布,单服务台;
M/M/C,间隔时间和服务时间服从指数分布,
C个平行服务台 (顾客仅一列 );
CI/G/1,单服务台,有一般分布的相互独立的间
隔时间和一般随机服务时间,
4,间隔时间和服务时间的分布
有三种常用的理论分布:
?,2,1,0,
!
)()( ??? ?? ne
n
ttP tn
n
且 E[N(t)]=λt,Var[N(t)]=λt.
1,泊松流与泊松分布
{ N(t),t>0}是计数过程
2,指数分布
当输入过程是一个泊松过程 { N(t),t>0} 时,
设 T是两位顾客相继到达的时间间隔,有
FT( t )=P{T≤ t}=1- P{T> t}
=1- P0(t)=1-, t > 0t
e ??
FT(t)=0,t≤0
从而
)0(
.0,0
0,)()( ??
??
?
?
?
?
????? ??
t
tetFtf t
TT
且 E(T)=1/λ.
λ — 单位时间到达的平均顾客数;
1/λ — 相继到达的平均间隔时间
定理 输入过程 { N(t),t>0} 是参数为 λ 的
泊松过程的充分必要条件是相继到达的时
间间隔,T1,T2,… Tn,… 相互独立,同服
从参数为指数分布,
服务时间 V 一般也服从指数分布,有
??
?
?
?
?
??? ??
.0,0
,0,1)(
t
tetF t
V
??
?
?
?
?
??? ??
.0,0
,0,)(
t
tetf t
V
其中 μ— 平均服务率;
E(V)= 1/μ— 一位顾客的平均服务时间 ;
ρ=λ/μ— 服务强度 ;
刻画服务效率和服务机构利用程度的重要指标,
3.爱尔朗 ( Erlang) 分布
设 V1,V2,…,Vk相互独立,Vi~ E(0,kμ),
则 T=V1+V2+…+ Vk的概率密度为
?
?
?
?
?
?
?
?
??
?
?
.0,0
,0,
)!1(
)(
)(
1
t
t
k
ktk
tf
k
k
称 T 服从 k阶爱尔朗分布,
串列的 k个服务台,每个服务台的服务时间
相互独立,服从相同的指数分布,则 k个服务台
的总服务时间服从 k阶爱尔朗分布,;11)()(
1
)1
?
?
?
??? ?
? k
kVETE
k
i
i
结论:
2) k=1时, T~ E(0,μ);
3) k≥30时,T 近似服从正态分布;
.01)( 2limlim)4 ?
?
?
???? k
TV a r
tk
退化
为确
定型
分布
5,排队系统的主要研究指标
1) 队长 在系统中的顾客数 (平均值记为 LS );
排队长 (队列长 ) 在系统中排队等待服务
的顾客数 (LQ).
2) 逗留时间 顾客在系统中的停留时间 (WS);
等待时间 一个顾客在系统中的排队停留
时间 (WQ).
3) 忙期 (Busy Period),服务机构一次连续
工作的时间长度 (反映服务员的工作强度 ).
例 7.4.2 一个理发店内有两位服务员 A和 B,
顾客们随机到达店内,其中 60% 的顾客仅需剪
发,每位花 5分钟时间,另外的 40% 顾客既要剪
发又要洗发,每位花费时间 8分钟,
理发店是一个动态随机系统,分析系统的运
行效率,
结合实例介绍随机动态系统的模拟的方法
三, 动态系统模拟实例及模拟方法
1,系统模拟的部分术语
(1)系统状态 (变量 ) 在任意时刻,为描述系统
需要的含有全部信息的变量集合,
例中有三个状态变量:
1) 等待服务的顾客数;
2) A 是否正在服务(是或否);
3) B是否正在服务,
(2) 实体 需要明确描述的系统对象或组成部分
实体是系统的可分离部分,或许是系统的永
久部分,如服务员、设备装置等,或许可进入和
退出系统,
例如商店的顾客,港口的轮船,或发往电力
调度系统的一条指令, 本例中的实体?
(3) 事件 使系统状态发生变化的瞬时现象
如 例中事件:
一名新顾客的到达; A开始服务;
A结束服务; B开始服务; B结束服
务,…(4) 活动,两个事件间的持续时间 常数或随
机变量例中有下述活动:
1) 顾客排队时间,即顾客到达至接受服务
的持续时间;
2) 顾客们到达的间隔时间;
3) A的服务时间和 B的服务时间。
注,事件在时间轴上占据一个点,而活动
则占据时间轴上的一段,
到达间隔时间
排队时间 服务时间
通常是具有
某种分布的
随机变量
(5) 特征 (属性 ) 给定实体的性质
例如一条指令的长短,卡车是满载还是空载,
在模拟过程中实体的特征可以保持不变,也
可以改变 ;
一个实体可能有多种特征,
例中每个顾客只有一个特征 需要服务的种类
还可以考虑顾客的其他特征,如性别,是否有
优先权等等,
时间步长法 面向事件法
2,动态系统模拟的两种方法
(1) 时间步长法 (固定时间增量法)
依照事物发展的自然进程进行观察
人们考察某一对象系统的状态和活动变化
过程时,通常总是随时间的进程来逐步考察
和分析,
基本步骤,
1) 选取对象系统的一个初始起点作为模拟时
钟的零点 ;
2) 选定一个合适的时间步长,
3) 从模拟时钟的零点开始,每推进一个时间
步长:
对系统的活动和状态按照预定规则目的进行
考察,分析,计算,记录
直到预定模拟结束时刻为止,
0
Δt
t
结束
时刻
续例 7.4.2 一个理发店内有两位服务员 A和 B,
顾客们随机到达店内,其中 60% 的顾客仅需剪
发,每位花 5分钟时间,另外的 40% 顾客既要
剪发又要洗发,每位花费时间 8分钟,
*1 任一分钟内到达一位顾客的概率 p=0.5.
模拟的假定条件:
用时间步长法对理发店系统进行模拟,
概率 p 可以是 (0,1)
上的任意实数,
*2 同一分钟内不会有一个以上顾客到达 。
如果观察到一分钟内有一位以上顾客来到,
就应将时间步长取得更短一些,
*3 如果店里两名服务员都空闲,则由顾客随意
选择一位服务员,
*4 先到先服务 (FIFO) 的排队规则,
*5 顾客都会耐心等待服务,而且服务员都
不能休息,
通过假设进一步明确理发店系统的运行,为
模拟工作做好准备,
对理发店系统进行了部分简化,是一种理想
化的模拟, 基于解决实际问题的目标,在模拟
模型中可以考虑更复杂的情形,
根据假设模拟变量处理如下
1) 取时间步长 Δt=1(分钟 ),在任一分钟内
有一名顾客到达的概率是 0.5;
2) 每位顾客服务时间取为两类顾客的平均服
务时间, 5× 0.6+ 8× 0.4= 6.2(分 ).
模拟过程
用一枚均匀硬币作为随机数发生器,出现
正面记为 T,代表有一个顾客的到来;出现
反面则记为 H,假设一系列的投掷结果为
T H T T H T T T H H T…
每抛一次硬币相当于对每一分钟进行观察,看
是否有顾客来到,(考虑再计算机上如何实现?)
若开始(即模拟时钟的零点)时理发店内无顾
客(即初始状态的顾客数为零 ),得到 10分钟的
运行结果如下:
时间
( 分 )
有无顾
客到
A是否在
工作
B是否在
工作
排队等
待人数
0
1
2
3
4
5
6
7
8
9
10

































0
0
0
0
1
1
2
3
3
3
3
模拟结果初步分析,
* 在某些时段时间内,系统的所有实体的状
态都没有发生改变,即在这段时间内无事
件发生,
* 在这些时间段内对系统进行分析、比较
与计算等考察工作都成为多余的,
时间步长法自然易理解,但需加快模拟速度,
( 2)面向事件法(可变时间增量法)
采用不等时间间隔步长的,仅在人们关心的
事件发生的时间点上考察系统的状态变化,从
而加快模拟的求解过程,
基本思想 对对象系统的一系列不同性质的
事件,按照发生时间的先后顺序逐个进行考察,
0 t
模拟方法 编制计算机程序时设置一面,模拟
钟,, 当有一个事件发生时,才向前走一步,模
拟钟走过一步后,自动地寻找下一个最先使系统
状态发生变化的事件,
时间是可变的
停止模拟过程
的两种方式:
事先规定运行时间 ;
设置为某个特定事件发生 ;
两种模拟方法的比较:
1.如果一个系统的事件出现无明显的规律,
常采用 面向事件法,可以节约计算机运算时间,
2.如果对象系统中事件发生得非常频繁,而且
具有一定的规律,为获取较多的信息,可采用
时间步长法,
模拟思路必须清晰,对模拟的系统对象的运
行机制、模拟变量做到心中有数,
(1) 列出实体、实体特征、状态,活动,
* 明确模拟的实体及允许并行的实体个数;
*对每个活动写出初始状态,活动的持续时间;
*写出模拟的初始状态和结束时间 (或结束状态 )
例, 理发店系统,系统的有关模拟变量、因素
如下
3.系统运行机制的描述
实体,顾客 (特征, P(单剪 )=0.6;
P(洗和剪 )=0.4),
服务员 A,服务员 B.
活动:
到达间隔时间 (指数分布,均值为 3分钟 );
队列 (队长无限制 );
A的服务时间 (剪发 5分钟,洗和剪 8分钟 );
B的服务时间 (剪发 5分钟,洗和剪 8分钟 );
事件, 顾客到达,A开始服务,
B开始服务,B结束服务,
初始状态,队长 =0; A空闲,B空闲,
第十个顾客到达,结束状态:
注,采用面向事件法时,应重点考虑 活动,即两
件事件之间的持续时间,
(2) 写出系统的运转规则 。
对系统的排队规则或其他运转规则给出
明确说明,
A结束服务,
1) 在理发店系统中规定顾客的排队规则是
FIFO;
2)任何人无优先权 ;
3)第一名顾客一定接受 A服务员的服务,
1) 画出模拟过程的流程图
流程图显示模拟必须遵循的路径,能帮助编
写计算机程序,(P102图 6.9是理发店系统的模拟
流程图 ).
4.模拟准备工作
2) 产生随机数进行模拟
按照需要产生一系列 RND随机数 r1,r2,
…, rn,用来模拟系统的事件和活动,
注意,不能重复使用同一个随机数,
分析与问题思考:
1.模拟模型中用指数分布随机变量模拟顾
客的到达间隔时间,能否用其他随机分布?
2.为顾客的服务时间由理发方式确定为两
个常数,若服务时间是随机变量如何模拟?