管理系统模拟与 GPSS语言 1
MSSV1.0
第 4章 GPSS 常用语句及其使用
本章主要内容,
1,标准数字属性(参数) ( SNA )
2,定义语句的用途
3,变量定义
4,函数定义
5,存储器定义
6,符号定义
7,GPSS语言编程举例
语句
管理系统模拟与 GPSS语言 2
MSSV1.0
4-1 标准数字 属性 ( SNA)
在 GPSS语言使用中,系统状态参数或活动实体的参数可能不
是常数,这种在模拟中变化的参数如何使用呢?
GPSS 语言中各种参数的使用常常借助 标准数字属性
(Standard Numerical Attributes SNA ),也译为标准属性码, 每
类参数都有一个代码,并加一数字码用来区分同一参数中的不同
情况, 常用 SNA 有,
C$1 模拟钟
P$j 动态实体所带的第 j 号参数
V$j 第 j 号自定义变量
Q$j 第 j 号队列的当前长度
RN$j [ 0,1) 之间的均匀分布随机数,j 为随机数发生器号
FN$j 第 j 号自定义函数
:
其中 $ 是 GPSS/PC 要求的。
管理系统模拟与 GPSS语言 3
MSSV1.0
在程序中使用参数时,利用 SNA(标准属性码 ) 十分方便,
例,
GENERATE 18,6
ASSIGN 1,35 将 35 吨赋于 1 号参数

( GOTO SI)
GENERATE 45,10
ASSIGN 1,70 将 70 吨赋于 1 号参数


SI ENTER 1,P$1 一号存储器中加入 1号参数值
ASSIGN 3,C$1 将当前时间赋给 3号参数

TERMINATE
4-1 标准数字 属性 ( SNA)
管理系统模拟与 GPSS语言 4
MSSV1.0
4-1 标准数字 属性 ( SNA)
与标准属性码有密切联系的常用模块是
PRINT 模块。 PRINT 模块是用来输出标准属性
码的,它常用于程序的调试过程,当需要了解
某个参数某个时刻的数值时,可在程序执行到
该时刻时用 PRINT 模块将其打印出来。 PRINT
模块的基本格式如下:
格式,
PRINT SNA1,SNA2,.....,SNA7
PRINT 模块可同时输出七个不同
的标准数字属性码。
管理系统模拟与 GPSS语言 5
MSSV1.0
4-1 标准数字 属性 ( SNA)
下面程序是一个测试 PRINT 模块的程序,
请认真阅读程序,并给出呈现的输出结果,
SIMULATE
GENERATE C$1
ASSIGN 1,C$1
ADVANCE 10
PRINT C$1,P$1
TERMINATE 1
START 5
END
管理系统模拟与 GPSS语言 6
MSSV1.0
4-2 GPSS语言的 定义语句
本章介绍下列定义语句,
1,变量定义 ( VARIABLE)
2,函数定义 ( FUNCTION)
3,存储器定义 ( STORAGE)
4,符号定义 ( EQU)
定义语句是用来对函数,变量,逻辑开关,存储
器容量,符号含义,随机数种子,用户自定义表格等
进行事先说明。 相当于高级语言的说明语句。 因此,
定义语句应放在整个程序的前面。
管理系统模拟与 GPSS语言 7
MSSV1.0
4-2-1 变量定义语句
变量定义语句用来定义一组已知公式,公
式中可使用 SNA码及常用数学运算。
语句格式如下,
变量号 VARIABLE 公式
其中, 变量号由数字组成,如 1,2,.....
公式为算术或逻辑表达式,或常数,可使用 SNA 码
例,
1 VARIABLE 2*P$1
2 VARIABLE 6>P$2>2 逻辑表达式
5 VARIABLE (FN$1*10) / P$3
C$1
P$j
V$j
Q$j
RN$j
FN$j

管理系统模拟与 GPSS语言 8
MSSV1.0
变量在程序中的调用
在程序中调用变量时,采用 SNA 码,
即 V$变量号,
例, ASSIGN 1,V$1
ASSIGN 1+,V$5
ADVANCE P$1,V$3
变量的定义必须在程序之前完成,程序中间
不能重新定义 !
C$1
P$j
V$j
Q$j
RN$j
FN$j
管理系统模拟与 GPSS语言 9
MSSV1.0
4-2-2 函数定义语句
函数定义语句是用来定义一组已知的 数值
函数,因此需要函数的点数及各点的值,或者使
用 SNA 码。
函数定义语句至少由二行组成,其格式为,
函数号 FUNCTION A,B
X1,Y1/ X2,Y2/ X3,Y3 ……… (数据行 )
其中, A 自变量 X,按 A 值在数据行中选 Y 值
B 函数的形式及点数
Cj 连续型 Dj 离散型 L 列表型 j 为点数
管理系统模拟与 GPSS语言 10
MSSV1.0
4-2-2 函数定义语句
例, 1,连续型
.2,7 1
1
.8
.3
0
中间采用
线性插值
方法确定
C$1
P$j
V$j
Q$j
RN$j
FN$j
1 FUNCTION RN$2,C4
0,0/ 0.2,0.3/ 0.7,0.8/ 1,1
( RN$ 为 0,1 间均匀分布随机函数的 SNA 码 )
管理系统模拟与 GPSS语言 11
MSSV1.0
2,离散型
10 20 30
40
20
P$1
FN$2
5
2 FUNCTION P$1,D4
5,10 / 10,40 / 20,30 / 30,10
2 号函数由四个离散点组成,自变量由参数 P$1 确定,
4-2-2 函数定义语句
管理系统模拟与 GPSS语言 12
MSSV1.0
例, 一检查员检查时间的概率分布为,
检验时间 发生频率 累计频率
15 0.1 0.1
16 0.6 0.7
17 0.3 1.0
则函数可定义为,
1 FUNCTION RN$1,D3
0.1,15 / 0.7,16 / 1.0,17
4-2-2 函数定义语句
管理系统模拟与 GPSS语言 13
MSSV1.0
4-2-3 存储器定义语句
存储器定义语句用来定义存储器的容量,其格式如下,
1,单独定义, 存储器号 STORAGE 容量
2,集中定义, STORAGE S$存储器号,容量 /,...
例, 1 STORAGE 100
10 STORAGE 500
STORAGE S$1,100 / S$10,500
STORAGE S$2 - S$9,200
在程序中使用存储器时,可使用其 SNA 码
S$j 表示第 j 号存储器的当前含量。
管理系统模拟与 GPSS语言 14
MSSV1.0
4-2-4 符号定义语句
由于 GPSS/PC 不能直接使用符号型名称,
必须将符号定义成相应的数字。这一工作由符
号定义语句完成,定义后的符号就可以在程序
中使用。
符号定义语句格式如下,
符号 EQU 数字
例, LINE EQU 1
JON EQU 1
F2 EQU 2
管理系统模拟与 GPSS语言 15
MSSV1.0
4.3 GPSS 语言编程举例
例 4.1 串联排队系统
某个只有一台加油器的汽车加油站,加油的汽
车到达间隔时间为均匀分布,均值为 100秒,方差为
10秒。 到达加油站后先排队等候,再加油,加油服
务时间也为均匀分布,均值为 80秒,方差为 8秒。
加油后司机要去交费窗口排队等待交费,交费时间也
为均匀分布,均值为 50秒,方差为 30秒。在例 3.4
所建的模型中我们将等候加油的队列定为 1号队列,
等候交费的队列定为 2号队列,将加油器为 1号设施
,收费员为 2号设施。这些队列和设施的代号是用数
字来表示的。
管理系统模拟与 GPSS语言 16
MSSV1.0
4.3 GPSS 语言编程举例
SIMULATE
LINE EQU 1 定义 1号队列的名称
L2 EQU 2 定义 2号队列的名称
F1 EQU 1 定义 1号设施的名称
F2 EQU 2 定义 2号设施的名称
GENERATE 100,10
QUEUE LINE 排 1号队列
SEIZE F1 占用 1号设施
DEPART LINE
ADVANCE 80,8
RELEASE F1
QUEUE L2 排 2号队列
SEIZE F2 占用 2号设施
DEPART L2
ADVANCE 50,30
RELEASE F2
TERMINATE 1
START 100
END
管理系统模拟与 GPSS语言 17
MSSV1.0
4.3 GPSS 语言编程举例
例 4.4 具有二
个入口的加油站
4.这是一个具有
二个入口的加油站,
二个入口可同时进
车,但只站一队等
候,应如何编制程
序? 图 4.5 是本系
统的示意图,在其
左侧给出了模拟程
序。在这个程序中
我们又引入了新的
问题,即出现了二
个 GENERATE 模块。
SIMULATE
LINE EQU 1
S1 EQU 1
S1 STORAGE 2
GENERATE 80,10
QUEUE LINE
ENTER S1
DEPART LINE
ADVANCE 80,8
LEAVE S1
TERMINATE 1
GENERATE 80,10
QUEUE LINE
ENTER S1
DEPART LINE
ADVANCE 80,8
LEAVE S1
TERMINATE 1
START 100
END
管理系统模拟与 GPSS语言 18
MSSV1.0
例 4.7 传输带上的质量检查
若加工后的零件放在传输带上
运输,零件到达第一个检查员及每
个检查员之间需要输送 2 分钟。
通过模拟分析每个检查员的工作情
况,有多少零件在通过第三个检查
员后仍检查不到。
4.3 GPSS 语言编程举例
管理系统模拟与 GPSS语言 19
MSSV1.0
5,0
2, 0
B O T H
1 2,9
2, 0 2, 0
1 2,9 1 2,9
B O T H B O T H
C O N 1 C O N 2
C O N 3
N E T 1 N E T 2 N E T 3
1
1
2
2
3
3
1 1 1
1
三个检查员在 传输带上工作框图
4.3 GPSS 语言编程举例
管理系统模拟与 GPSS语言 20
MSSV1.0
SIMULATION
GENERATE 5
ADVANCE 2
TRANSFER BOTH,NET1,CON1
NET1 SEIZE 1
ADVANCE 12,9
RELEASE 1
TERMINATE 1
*-----------------------------------------
CON1 ADVANCE 2
TRANSFER BOTH,NET2,CON2
NET2 SEIZE 2
ADVANCE 12,9
RELEASE 2
TERMINATE 1
*-----------------------------------------
CON2 ADVANCE 2
TRANSFER BOTH,NET3,CON3
NET3 SEIZE 3
ADVANCE 12,9
RELEASE 3
TERMINATE 1
*-----------------------------------------
CON3 TERMINATE 1
*-----------------------------------------
START 10,NP
RESET
START 1000
END
4.3 GPSS 语言编程举例