管理系统模拟与 GPSS语言 1
MSSV1.0
从“囚徒困境”说开去
抵赖
坦白
抵赖 坦白
囚徒甲
囚徒乙
( -1,-1) ( - 8,0)
( 0,-8) ( - 5,- 5) 猜忌
出卖
竞争
对立
管理系统模拟与 GPSS语言 2
MSSV1.0
管理系统模拟与
GPSS语言
Management System Simulation
& GPSS Language
讲授 16 学时
上机 16 学时
管理系统模拟与 GPSS语言 3
MSSV1.0
使用教材
?,管理系统模拟与 GPSS语言,
姜林奇 编 著
清华大学 出版社
学时安排:
讲授,16 课时
上机, 16 课时
管理系统模拟与 GPSS语言 4
MSSV1.0
绪 论
?0.1 什么是计算机模拟
?0.2 计算机模拟技术解题的方法
?例一 静态模拟
?例二 动态模拟
?0.3 计算机模拟技术的应用
?0.4 应注意的问题
本章主要内容:
管理系统模拟与 GPSS语言 5
MSSV1.0
0.1什么是计算机模拟?
?模拟是数值分析的一种方法;
?计算机模拟是利用计算机来模拟现实世界各
种过程或系统的运行情况,从而得到重要的 统
计与决策 信息;
?计算机模拟是当前决策支持系统设计的重要
手段之一;
?计算机模拟是一种被称为没有办法的办法( 对
于许多难以建立数学解析模型的复杂问题,求助于计
算机模拟,作为一种有效手段对系统进行研究和控制
管理 )。
管理系统模拟与 GPSS语言 6
MSSV1.0
模拟的定义?
?模拟( Simulation)就是利用物理的、数学的模
型来类比模仿现实过程,以寻求过程规律的一种
方法。 ISO:模拟就是选取一个物理的或抽象的
系统的某些行为特征,用另一个系统来表示它们
的过程。
?本书定义:就是利用计算机来模拟和实验现有的
或还没有的系统。
?管理系统的计算机模拟就是利用计算机和设计好
的模型对已有的或设想的管理系统、管理策略、
管理方法或管理手段进行模拟实验,以便对所设
计的方案进行分析和判断,提出进一步决策所需
的依据。
管理系统模拟与 GPSS语言 7
MSSV1.0
为什么要进行模拟?
?实际系统太大,需要缩小(如地球仪,地形图);
?实际系统太复杂,需要简化;
?实际系统太贵重,需要省钱(如不在真实飞机上训
练,上飞机模拟器);
?实际系统太难、太费时间,为了方便和节时;
?实际系统无法观察、感受和操作(如原子模型,太
空实验,深海实验);
?实际系统危害大,危险性大(如战争,核爆炸,弹
药);
?实际系统的不可重复性(如许多随机过程);
?在实际系统上作业会干扰正常工作。
管理系统模拟与 GPSS语言 8
MSSV1.0
模拟的方法:
?( 1)物理模拟:对实际行为和过程进行模拟的
方法称为物理模拟。比如:用沙盘模拟作战、
利用风洞对导弹或飞机的模型进行空气动力学
试验、用图纸和模型模拟建筑群等都是物理模
拟。
?( 2)数学模拟:用数学语言、方法去近似刻划
实际问题,这种刻划的数学表述就是一个数学
模型。如欧几里得几何、牛顿的运动定律、微
积分都是对客观世界的数学模拟。
?( 3)混合模拟:将物理模型和数学模型以及实
物联合在一起进行试验的一种方法。
管理系统模拟与 GPSS语言 9
MSSV1.0
模拟的分类:
系统模拟
计算机模拟非计算机模拟
各种物理方法 系统类型 变量性质 模型特点






















管理系统模拟与 GPSS语言 10
MSSV1.0
系统模拟的步骤归纳如下:
第一步, 阐明问题 。 必须首先明确所要研究的问题或要完成
的任务, 它们可能是有关决策者提出的, 对问题或任务的
含义最初可能比较模糊, 或者只提出一些原则性的或总的
要求 。 因此, 系统模拟人员必须分析与探讨问题或任务的
具体含义和具体要求, 从中进一步明确系统模拟工作的目
标, 定义所要研究系统的构成要素, 系统的边界和系统环
境, 确定系统模拟方案的评价准则 。
第二步, 建立系统模型 。 在系统模拟中, 要建立的系统模型
是数学模型, 要根据系统的结构功能, 运行规则和决策原
则, 分析系统各个要素之间的数学逻辑关系, 合理地设置
各种变量, 常量和参数, 最终建立一系列表示它们之间函
数关系的方程式, 务必使这些方程能够全面地反映系统的
本质和问题求解的目标, 数模的繁简且要适当 。
管理系统模拟与 GPSS语言 11
MSSV1.0
系统模拟的步骤归纳如下:
第三步, 收集和整理数据, 资料 。 根据所建立的数学模型及系
统模拟的初始状态, 收集所需的各种数据, 初始条件数据以
及随机变量的分布和有关参数, 必要时应对数据加以过滤,
筛选, 补齐和整理 。 数据收集工作往往是同数模建立工作相
关地递推进行 。
第四步, 模拟程序设计和调试 。 如果没有专用模拟语言 (软件 ),
那么就只能应用 FORTRAN或 C等高级语言, 自行编制模拟程序 。
如果有专用模拟软件, 则首先应考虑是连续系统或是离散系
统的模拟, 按此选择合适的专用模拟软件 。 若是离散系统模
拟, 则可选用 GPSS,Q-GERT,SIMSCRIPT或其它;若是连
续系统模拟, 则可选用 DYNAMO,GASP-IV或其它, 这两种软
件也可用于离散系统模拟 。 模拟程序的调试首先要消除程序
中的语法错误, 程序运行才能通过;但最关键的还是要达到
模拟运行所表现的模型机理和行为, 能够反映系统的机理和
行为, 两者没有本质差异, 同时要有适当的数学精度 。
管理系统模拟与 GPSS语言 12
MSSV1.0
系统模拟的步骤归纳如下:
第五步, 模拟方案与实验设计 。 根据系统问题求解的目标,
依照决策的要求, 设计不同的模拟方案, 以便选择其中
较优的方案 。 此外, 还应设定合理的初始条件, 确定模
拟一次的运行长度以及重复运行的次数 。
第六步,模拟运行与结果分析。对每一个方案,都要用不
同的随机数序列多次重复运行,并根据重复运行的输出
数据,运用数理统计方法,分析模拟结果的统计特征。
而对不同的方案,则要用相同的随机数序列进行模拟运
行,以便消除由于随机数序列不同而引起的差异。
第七步, 编写研究报告并建立文档 。
第八步,决策与实施 。
管理系统模拟与 GPSS语言 13
MSSV1.0
例 1-1 正弦函数的积分
三种方法,
1) 定积

Si nx dx0??
2|00 ???? ?? C o s xS in xd x
0.2 计算机模拟技术解题的方法
静态模拟示例
2) 数值分析 -- 梯形法
3) 模拟方法 -- 蒙特卡罗法 ( Monte Carlo )
管理系统模拟与 GPSS语言 14
MSSV1.0
X
SIN(X)
0 3.14Xi Xi+1
Xn
X0
Si nx dx0??
Xi+1 -Xi = Hi
1
梯形法解正弦函数的积分
例 0.1 正弦函数的积分
管理系统模拟与 GPSS语言 15
MSSV1.0
? ?
? ?)()(
2
2
)()()(
1
11
?
??
??
??
?
iii
iiii
i
xfxf
H
A
xxxfxf
A
小梯形面积
曲线下总面积
? ?
? ? ? ?
? ?
?
?
?
?
?
?
???
?????
?????
????
?
? ?
?
?
?
?
?
1
0
0
210
2110
0
1
0
)(2)()(
2
)(...)(2)(2)(
2
....)()(
2
)()(
2
)()(
2
n
i
in
n
n
i
ii
n
i
i
xSi nxfxf
H
xfxfxfxf
H
xfxf
H
xfxf
H
xfxf
H
AS





例 0.1正弦函数的积分
管理系统模拟与 GPSS语言 16
MSSV1.0
REM 正弦函数的积分
INPUT "a,b="; A,B
INPUT "m="; M
FOR L = 1 TO 5
N = M * L
X0 = A,XN = B
H = (XN - X0) / N
S1 = 0
FOR I = 1 TO N-1
XI = A + I * H
S1 = S1 + SIN(XI)
NEXT I
S = H / 2 * (SIN(X0) + SIN(XN) + 2 * S1)
PRINT "N="; N,"S="; S
NEXT L
END





例 0.1 正弦函数的积分
管理系统模拟与 GPSS语言 17
MSSV1.0
a,b=? 0,3.1415926
m=? 100
N= 100 S= 1.999836
N= 200 S= 1.999958
N= 300 S= 1.999981
N= 400 S= 1.999989
N= 500 S= 1.999993
N= 600 S= 1.999998
N= 700 S= 1.999998
N= 800 S= 1.999998
N= 900 S= 1.999997
N= 1000 S= 1.999999
梯形法模拟结果,例 1-1 正弦函数的积分
管理系统模拟与 GPSS语言 18
MSSV1.0
X
SIN(X)
0 3.14
S
N
I
Sg
S 总面积
Sg 曲线下面积
N 矩形内点数
I 所求面积内点数
S
N
I
N
MI
S in x d x
N
I
M
S in x d x
S
S
g
?
?
?
?
?
??
?
?
?
?
?
0
0
)0(
1







例 1-1 正弦函数的积分
现在的问题是如何求出 N 和 I? 这要引入 随机数发生器 的概念
管理系统模拟与 GPSS语言 19
MSSV1.0
[ 0,1 ) 间均匀分布随机函数 RND( 1)介绍
REM [0,1) 之间均匀分布的随机数的产生
CLS
RANDOMIZE
PRINT " "
PRINT "RND(0)"
FOR I = 1 TO 10
PRINT USING "#.####"; RND(0)
NEXT I
PRINT " "
PRINT "RND(1)"
FOR I = 1 TO 10
PRINT USING "#.####"; RND(1)
NEXT I
END
RND(1) 函数产生 [0,1) 之
间均匀分布的 不重复 随机
数,比如 0.11,0.34,0.87,
…...
RND(0) 函数产生 [0,1) 之
间均匀分布的 可重复 的随
机数,比如 0.11,0.11,
0.11,…...
BASIC 随机 函数介绍
管理系统模拟与 GPSS语言 20
MSSV1.0
在指定面积上随机点位置如何确定:
X 在 (0,?) 之间均匀分布
X=RND(1)*PI
Y 在 (0,1) 之间均匀分布
Y=RND(1)
X
SIN(X)
0 PI
1
(X,Y)
X
Y
曲线外的一点
管理系统模拟与 GPSS语言 21
MSSV1.0
10 REM INTEGRETION OF SIN(X) BY THE MONTE CARLO METHOD
20 PI=3.1415926#
30 M=1
40 FOR L=1 TO 10
50 I=0
60 FOR N=1 TO 50*L
70 X=RND(1)*PI
80 Y=RND(1)
90 IF Y > SIN(X) THEN 110
100 I=I+1
110 NEXT N
120 SG=PI*I/(50*L)
130 PRINT "N=";50*L,"SG=";SG
140 NEXT L
150 END
蒙特卡罗法模拟程序 (Monte Carlo)
N
I
N
MI
S in x d x
N
I
M
S in x d x
S
S
g
?
?
?
?
?
??
?
?
?
?
?
0
0
)0(
管理系统模拟与 GPSS语言 22
MSSV1.0
N= 50 SG= 2.073451
N= 100 SG= 2.042035
N= 150 SG= 1.864012
N= 200 SG= 1.85354
N= 250 SG= 2.148849
N= 300 SG= 1.80118
N= 350 SG= 2.019595
N= 400 SG= 2.159845
N= 450 SG= 1.989675
N= 500 SG= 2.010619
蒙特卡罗法模拟结果:
有什么特点?
例 1-1 正弦函数的积分
管理系统模拟与 GPSS语言 23
MSSV1.0
例 0.2 二重积分
二种方法,
1) 数值分析方法
2) 模拟方法 -- 蒙特卡罗法
Sin Ln X Y dxdy
X Y
( )
,(, ) (, ),
? ???
? ? ? ?
1
2
0 5
2
0 5 0 25
?
?
管理系统模拟与 GPSS语言 24
MSSV1.0
f(x,y)=SIN(SQR(LN(X+Y+1)))
XY
0.50.5
1.0
1.0
Sin Ln X Y dxdy
X Y
( )
,(, ) (, ),
? ???
? ? ? ?
1
20 5 20 5 0 25
?
?
0
F(x,y)
管理系统模拟与 GPSS语言 25
MSSV1.0
1,数值方法
计算程序
10 REM
20 CLS
30 INPUT "N="; N
35 FOR k = 1 TO 10
40 H = 1 / (N * k)
50 H2 = H * H
60 SUM = 0
70 FOR L = 1 TO N * k
80 FOR I = 1 TO N * k
90 X = H * L
100 Y = H * I
110 IF (X-.5)^2+(Y-.5)^2 >,25 THEN GOTO 140
120 SI = H2 * SIN(SQR(LOG(X + Y + 1)))
130 SUM = SUM + SI
140 NEXT I
150 NEXT L
160 PRINT "N="; N * k,"S="; SUM
165 NEXT k
170 END
例 0.2 二重积分
管理系统模拟与 GPSS语言 26
MSSV1.0
N=? 20
N= 20 S=,5616454
N= 40 S=,5650789
N= 60 S=,5652159
N= 80 S=,5668163
N= 100 S=,5669289
N= 120 S=,5663622
N= 140 S=,5668696
N= 160 S=,5668182
N= 180 S=,5674991
N= 200 S=,5676636
二重积分数值方法计算结果
有什么特点?
例 0.2 二重积分
管理系统模拟与 GPSS语言 27
MSSV1.0
?
???
?
??
?
?
?
?
?
?
?
?
n
i
ii
n
i
ii
yxfr
n
yxf
n
rd x d yyxf
1
2
1
2
),(
),(
1
),(
?
?
积分体积 = 积分域面积 X 曲面平均高度
2,蒙特卡罗法
例 0.2 二重积分
管理系统模拟与 GPSS语言 28
MSSV1.0
REM 二重积分模拟程序
REM BY MONTE CARLO SIMULATION
INPUT "N="; N
PI4 = ATN(1!)
PRINT, PRINT, PRINT " THE OUTPUT:"
PRINT
FOR I = 1 TO 4
SUM = 0
FOR J = 1 TO N * I
NEW:
X = RND(1)
Y = RND(1)
IF (X -,5) ^ 2 + (Y -,5) ^ 2 >,25 THEN GOTO NEW
A = SIN(SQR(LOG(X + Y + 1!)))
SUM = SUM + A
NEXT J
VOL = PI4 * SUM / (I * N)
PRINT "N="; I * N,VOL
NEXT I
END









管理系统模拟与 GPSS语言 29
MSSV1.0
N=? 500
THE OUTPUT:
N= 500,5649201
N= 1000,5646151
N= 1500,5635888
N= 2000,5675535
N= 2500,5695487
N= 3000,5686753
N= 3500,5687218
N= 4000,5673894
N= 4500,5684162
N= 5000,5675279
二重积分蒙特卡罗法
模拟结果:
有什么特点?
例 0.2 二重积分
管理系统模拟与 GPSS语言 30
MSSV1.0
动态模拟示例
中子屏蔽
实 验
已知条件,
1,中子进入铅壁后,先水平前进一个单位长度
2,撞到某个原子后,随机改变角度,再前进
一个单位长度
3,中子碰撞 七 次后能量全部消失
管理系统模拟与 GPSS语言 31
MSSV1.0
中子每碰撞一次,其水平前进距离,
X
Y
Y=3.14 X RND(1)
X=COS(Y)
管理系统模拟与 GPSS语言 32
MSSV1.0
10 REM 中子屏蔽实验
20 INPUT "N=";N
30 M=0, PI=3.14156
40 FOR L=1 TO N
50 X=1
60 FOR I=1 TO 7
70 Y=PI*RND(1)
80 X=X+COS(Y)
90 IF X <= 0 THEN 130
95 NEXT I
100 IF X<5 THEN 130
105 M=M+1
130 NEXT L
140 M1=M/N
150 PRINT "N=";N,"Pn=";M1
160 END









例 0.3 中子屏蔽实验
管理系统模拟与 GPSS语言 33
MSSV1.0
N=? 10000
N= 10000 Pn=,0146
N= 20000 Pn=,014
N= 30000 Pn=,0155
N= 40000 Pn=,01515
N= 50000 Pn=,01622
N= 60000 Pn=,0153
N= 70000 Pn= 1.504286E-02
N= 80000 Pn=,0155375
N= 90000 Pn= 1.501111E-02
N= 100000 Pn=,01465
中子屏蔽实验 模拟结果:
例 0.3 中子屏蔽实验
管理系统模拟与 GPSS语言 34
MSSV1.0
0.3模拟技术的地位和作用
?决策分析的有力助手
?多用于随机过程或无定
量分析方法的情况
?模拟技术需要管理,计
算机及统计三方面的人
才联合工作,
?模拟结果常常是随机的
,需要进行统计分析
?可研究大时间系统
管理系统模拟与 GPSS语言 35
MSSV1.0
计算机模拟用于研究系统有
如下特色:
?优化设计。现代大型系统的规模和复杂性,要求在建
立系统之前能预测系统的性能和参数,并使所设计的
系统指标达到最优;
?经济性。对于一个大型的系统,直接实验成本十分昂
贵,使用计算机模拟能大大地降低试验成本,而且可
以多次重复使用;
?安全性。对于某些系统,如载人宇宙飞行器核电站控
制,直接试验往往是危险的和不允许的;
?预见性。对于经济、社会、生物、战争等非工程系统
,直接实验几乎是不可能的,使用计算机模拟可用于
预测系统的特性和外作用的影响,从而研究管理、控
制的策略。
管理系统模拟与 GPSS语言 36
MSSV1.0
计算机模拟的研究前沿?
?( 1)一体化的模拟软件系统。一体化的模拟
环境是一个软件集合,它包括:设计、编制及
检验模型;编写及证实模拟模型;准备模型输
入数据;分析模型输出数据。
?( 2)分布式模拟。用多台分布在不同地方的
计算机共同完成一项模拟任务,各计算机之间
一般通过网络加以连接。
?3)模型的并行处理。用按照并行处理原理发
展起来的多处理机系统来模拟一个复杂系统。
管理系统模拟与 GPSS语言 37
MSSV1.0
计算机模拟的研究前沿?
?( 4)灵境技术。是用由效果发生器、实
景模拟器、应用系统和几何构造系统组成
,给用户创造一个实时反映实体对象变化
与相互作用的三维图形世界,提供用户一
个观察并与该虚拟世界交互的多维用户界
面,使用户可以直接参与和探索模拟对象
在所处环境中的作用与变化,并产生沉浸
感的计算机模拟系统。沉浸感、多维交互
和实时三维图像是灵境系统的三个基本特
征、灵境技术是多媒体技术的发展。
管理系统模拟与 GPSS语言 38
MSSV1.0
计算机模拟的研究前沿?
?( 5)智能模拟、即专家模拟系统,它是
将专家知识嵌入到模拟软件中去,从而
使得模型的设计、理解及结果的评价都
能由模拟系统自动完成。
管理系统模拟与 GPSS语言 39
MSSV1.0
0.4模拟技术应注意的问题
1,模拟时间和费用
2,初始条件的确定
3,模拟结果的精度
管理系统模拟与 GPSS语言 40
MSSV1.0
本课程的参考书
1,A,M,Law,Simulation Modeling and Analysis,
1982,( 美国 )
2,鲍居武等, 系统仿真与 GPSS 教程, 学苑出版社 1993.
3,鲍居武等, 新型多用途的计算机仿真语言 SLAM,
学苑出版社 1993.
4,黎志成, 管理系统模拟, 物资出版社 1986.
5,J,A,Spriet,计算机辅助建摸与仿真, 科学出版社 1991
6,梁静国, 管理系统仿真, 哈尔宾船舶工程学院出版社 1993.12
7,袁伯瑞, 微机 GPSS 及其应用, 清华大学出版社 1987.6
8,方美琪, 计算机模拟, 中国人民大学出版社, 1991.7.
9,王维平等编, 离散事件系统建模与仿真, 国防科技大学出版社,
1997.8
10.李一智, 系统分析与系统模拟, 长沙:中南工业大学出版社, 1997
11.冯允成, 邹志红, 周 弘, 离散系统仿真, 北京:机械工业出版社,
1998