Presentation is loading. Please wait.

Presentation is loading. Please wait.

第6章 中级GPSSWorld 程序设计 本章主要内容: 6.1 一家电修理部模型的建立及其模拟 6.2 中级 GPSSWorld 语言模块

Similar presentations


Presentation on theme: "第6章 中级GPSSWorld 程序设计 本章主要内容: 6.1 一家电修理部模型的建立及其模拟 6.2 中级 GPSSWorld 语言模块"— Presentation transcript:

1 第6章 中级GPSSWorld 程序设计 本章主要内容: 6.1 一家电修理部模型的建立及其模拟 6.2 中级 GPSSWorld 语言模块
6.1 一家电修理部模型的建立及其模拟 6.2 中级 GPSSWorld 语言模块 LOGIC 逻辑开关 INITIAL 初始化语句 GATE 测试模块 TEST 比较测试模块 SAVEVALUE 保存值模块 LOOP 循环模块 6.3 中级 GPSSWorld 语言程序举例 中级 GPSSWorld

2 第6章 中级GPSSWorld 程序设计 6-1 一家电修理部模型的建立及其模拟
已知一家电修理部, 除管理人员外, 有一名普通修理工干各种另活,以及二个有经验的专家负责较难的工作. 普通修理工能完成 70% 的修理工作, 其余 30% 难一些的工作由专家完成. 修理部原始记录表明: 1. 顾客到达间隔时间为 11 (5) 分钟, 均匀分布. 2. 不用专家服务顾客的服务时间为 13 (5) 分钟, 均匀分布. 3. 需要专家服务的顾客应先由普通修理工修 4 (2) 分钟, (均 匀分布) 再由专家修 62 (20) 分钟, 均匀分布. 4. 模拟60000分钟。

3 求解 模型的建立 6-1 一家电修理部模型的建立及其模拟 A.普通修理工及专家的平均利用率 B. 普通修理工及专家队列的平均等待时间
C. 普通修理工及专家队列的平均队长 D. 普通修理工修理一件设备的平均时间 模型的建立 1. 设施 普通修理工 HANDYM 2. 存储器 二名专家 SPCLST 3. 队列 A. 普通修理工队列 GENQ B. 专家队列 SPECQ 4. 模拟模拟60000分钟

4 模型示意图 6-1 一家电修理部模型的建立及其模拟 70% 到达 离开 30% 专家 普通修理工 需要专家修理的设备
GENQ SPECQ HANDYM SPCLST 离开 需要专家修理的设备 需要普通修理工修理的设备

5 模型程序 6-1 一家电修理部模型的建立及其模拟 SPEC SEIZE HANDYM DEPART GENQ ADVANCE 4, 2
RELEASE HANDYM QUEUE SPECQ ENTER SPCLST, 1 DEPART SPECQ ADVANCE , 20 LEAVE SPCLST, 1 DONE TERMINATE SPCLST STORAGE 2 GENERATE 11, 5 QUEUE GENQ TRANSFER , SPEC, HANDY HANDY SEIZE HANDYM DEPART GENQ ADVANCE , 5 RELEASE HANDYM TRANSFER , DONE

6 模拟输出结果 6-1 一家电修理部模型的建立及其模拟
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY HANDYM QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY GENQ SPECQ STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY SPCLST

7 模拟结果: 6-1 一家电修理部模型的建立及其模拟 A.普通修理工的平均利用率 0.937 B. 专家的平均利用率 0.835
C. 普通修理工队列的平均等待时间 D. 专家队列的平均等待时间 E. 普通修理工队列的平均队长 F. 专家队列的平均队长 G. 普通修理工修理一件设备的平均时间

8 第6章 中级 GPSSWorld 程序设计 6-2 中级GPSSWorld 语言模块 6.2.1. LOGIC 逻辑开关的设置
对于系统中具有二态性质的设施或设备可用逻辑开关 表示。逻辑开关为 1 时表示合,逻辑开关为 0 时,表示断。 逻辑开关的置位或变位由 LOGIC 模块完成。 LOGIC 模块的基本结构为: LOGIC 辅助码 A 其中: 辅助码表示逻辑开关的置位情况,A 表示逻辑开关变量名 R 表示逻辑开关变量置 0 S 表示逻辑开关变量置 1 I 表示逻辑开关变量反转

9 6-2 中级GPSSWorld 语言模块 例: LOGIC S LOGIC2 将逻辑开关 变量LOGIC2 置 1
LOGIC R LOG 将逻辑开关 变量LOG3 置 0 LOGIC I PowerSwitch 将逻辑开关 变量PowerSwitch反转

10 6.2.2 SAVEVALUE 保存值模块 6-2 中级GPSSWorld 语言模块 SAVEVALUE A, B
SAVEVALUE 模块可将任一个值 (包括 SNA) 存放在指定变是名中, SAVEVALUE 模块的格式: SAVEVALUE A, B 其中: A ---- 保存值的地址号及 +, - 号, +, - 号表示要在原 值上增加或减少的要求 B ---- 要存放的值或 SNA 码

11 SAVEVALUE The_Bard,“Arose by any other name …“
6-2 中级GPSSWorld 语言模块 例: SAVEVALUE Account,99.95 SAVEVALUE The_Bard,“Arose by any other name …“ SAVEVALUE Account+,88.5 SAVEVALUE Account-,55.4

12 6-2 中级GPSSWorld 语言模块 6.2.3 INITIAL 初始化语句 基本格式如下: A:矩阵, 逻辑,保存值或矩阵的一个元素。
INITIAL A,B A:矩阵, 逻辑,保存值或矩阵的一个元素。 B: 必须是Null(空), Number(数字), String(字符串), Name(变量名), 或者UNSPECIFIED(未定义)之一。 例如: INITIAL X$Power_X, INITIAL X$Note_X, “Note Message!” INITIAL MX$MyMartix(3,6), 33.5 INITIAL LS$L_Power, 1 ;将逻辑开关实体L_Power的初值设为1.

13 6-2 中级GPSSWorld 语言模块 6.2.4 GATE 实体状态的测试模块 GATE 模块是用来测试各类实体的当前状态的。其格式
如下: GATE 辅助码 A, B 其中: 辅助码 表示实体类型及状态,如: NU 表示设施没有处于使用状态 U 表示设施在使用状态 SE 表示存储器空状态 SF 表示存储器满状态

14 6-2 中级GPSSWorld 语言模块 SNE 表示存储器不空状态 SNF 表示存储器不满状态 LR 表示逻辑开关处于 0 状态
LS 表示逻辑开关处于 1 状态 …… 等等 A 要测试的实体变量名 B 当测试结果为假时流动实体应去的模块标号 例: GATE SE Storege2 测试Storege2号存储器是否空 ? GATE NU F_1, CON 测试 f_1设施 是否在空闲?若不空则去 CON 语句

15 6.2.5 TEST 比较测试模块 6-2 中级GPSSWorld 语言模块 通过测试来比较二个标准数字属性码 SNA 的大小.
格式: TEST 辅助码 A, B, C 其中: 辅助码有: E 相等 NE 不相等 L 小于 LE 小于或等于 G 大于 GE 大于或等于

16 A , B 二个相比较的 变量名或SNA以及表达式 C 比较结果为假时动态实体所要进入 的模块号
6-2 中级GPSSWorld 语言模块 A , B 二个相比较的 变量名或SNA以及表达式 C 比较结果为假时动态实体所要进入 的模块号 例: TEST GE P$MY_1, 2, D1 TEST LE Q$q_1, P$MY_2, ABC TEST L FN$FUN_1, P$MY_3, DONE 注意: 在Windows版本中下划线 _已取消,不再需要

17 6-2 中级GPSSWorld 语言模块 6.2.6 LOOP 循环模块
循环是各类程序编制中所不可缺少的。GPSSWorld 语 言的循环过程是由LOOP模块完成的。GPSSWorld 语言的循 环过程是由计数和转向二个动作完成,它总是先确定循环 次数,并将循环次数存在活动实体的某个参数中,然后当 活动实体进入LOOP模块后,就开始了循环的进程,因此对 于不同的活动实体,在同一个循环中的循环次数有可能是 不相同的。循环模块LOOP的基本格式是: LOOP A, B 其中: A 控制循环次数的参数号。 B 当 A 场参数的值大于零时,活动实体应转去的语句标号,同时将A的值减去 1。

18 6-2 中级GPSSWorld 语言模块 举例: GENERATE 10 ASSIGN par_1,5 设定循环次数par_1
L_P ASSIGN par_2,P$par_1 ;循环开始 LOOP par_1,L_P ;循环计数 TERMINATE 1

19 6.3 中级 GPSSWorld 语言程序举例 例 6.2 假设有一个募捐站点接受各类民众的现金募捐。在募捐的人中大约有50%的人捐10元,有30%的人捐50元,有20%的人捐100元,请通过模拟实验来统计以上各类人的捐款数及总捐款数。(到达的人平均间隔5分钟) FUN1 FUNCTION RN3,D3 0.5,10/0.8,50/1,100 FUN2 FUNCTION P$vx_1,E3 10,PAR_1/50,PAR_2/100,PAR_3 INITIAL X$PAR_1,0 INITIAL X$PAR_2,0 INITIAL X$PAR_3,0 INITIAL X$ACC_MONEY,0 GENERATE 5 ASSIGN vx_1,FN$FUN1 SAVEVALUE FN$FUN2+,P$vx_1 SAVEVALUE ACC_MONEY+,P$vx_1 TERMINATE 1

20 6.3 中级 GPSSWorld 语言程序举例 上面的程序模拟了100个捐款人,有关保存值部分的标准输出如下:
SAVEVALUE RETRY VALUE PAR_ ( 10元的捐款总数 ) PAR_ ( 50元的捐款总数 ) PAR_ ( 100元的捐款总数 ) ACC_MONEY ( 全部捐款总数 ) CEC XN PRI M ASSEM CURRENT NEXT PARAMETER VALUE FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 从输出中可见,一类捐款人为62人,捐款620元; 二类捐款人为31人,捐款1550元; 三类捐款人为26人,捐款2600元; 合计119人总捐款4770元。

21 6.3 中级 GPSSWorld 语言程序举例 例 6.3 一单理发师的理发店,顾客到达时间为 18(6),理发时间
例 6.3 一单理发师的理发店,顾客到达时间为 18(6),理发时间 为 16(4),理发店营业 8 小时关门,但关门之前进入的顾客 要理完发才走。 提示: 1. 设置一逻辑开关,控制关门 及顾客的进入 2. 理发店不许顾客进入后,测 试已进入的顾客是否都理发 完毕?都完后关门。

22 6.3 中级 GPSSWorld 语言程序举例 GENERATE 18,6
GATE LR LOG_ ; 测试 LOG_1 号逻辑开关是否关闭 TRAN QUEUE L_ ; 若已关则不再进人 SEIZE F_1 DEPART L_1 ADVANCE ,4 DONE RELEASE F_1 TERMINATE GENERATE ; 理发店营业 8 小时 LOGIC S LOG_ ; 使 1 号逻辑开关关闭 TEST E N$TRAN,N$DONE ;测试最后关门条件 TERMINATE ;所有顾客理发完毕,关门

23 理发店模型输出结果 RELATIVE CLOCK 493 ABSOLUTE CLOCK 493
FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING UTILIZATION ENTRIES TIME/TRAN TRANS.NO. TRANS.NO. LOGIC SWITCH - SET (ON) STATUS SWITCH NAME NAME NAME NAME NAME NAME NAME NAME NAME 1 QUEUE MAXIMUM AVERAGE TOTAL ZERO PERC. AVERAGE $AVERAGE TABLE CURRENT CONTENT CONTENT ENTRIES ENTRIES ZERO TIME/TR TIME/TR NUMBR CONTENT

24 6.3 中级 GPSSWorld 语言程序举例 例 6.4 一露天矿模拟模型
例 6.4 一露天矿模拟模型 已知一露天矿剥离和采煤分别由二台电铲来完成。 一台以 4 (2) 分钟间隔时间装满一车矿石, 另一台以 5 (2) 分钟间隔时间装满一车煤,卡车各运行 15 分钟后分别卸入矿石场和储煤仓, 卸矿时间为 8分钟, 矿石场和储煤仓的容量分别为 吨及 2000 吨, 矿石卡车载重量为 35 吨, 而运煤卡车载重量为 18 吨。 模拟这一过程, 并记录矿石和煤的产量。 模型: 动态实体 运矿石卡车和运煤卡车 存储器 S_1 号 矿石场 S_2 号 储煤仓 保存值 V_1 号 产煤量 V_2 号 矿石剥离量

25 模型示意图 4/2 35 吨 5/2 储矿场 18 吨 15 20000 储煤仓 2000

26 例 6.4 一露天矿模拟模型 本例题用三个方式编程: 1. 详细方法 即每一步都表示清楚 (程序 A)
例 6.4 一露天矿模拟模型 本例题用三个方式编程: 1. 详细方法 即每一步都表示清楚 (程序 A) 2. 使用流动实体的参数 (程序 B) 3. 使用 SNA 码简化程序 (程序 C)

27 一般方法 (程序A) S_1 STORAGE 2000 S_2 STORAGE 20000 GENERATE 5,2 ;装煤
ADVANCE ENTER S_1,18 ADVANCE ;卸煤 SAVEVALUE V_1+, ;统计煤产量 LEAVE S_1,0 TERMINATE GENERATE , ;装矿石 ENTER S_2,35 ADVANCE ;卸矿石 SAVEVALUE V_2+, ;统计矿石产量 LEAVE S_2,0 GENERATE TERMINATE

28 使用参数 (B) 将代号或码用 SNA 表示. V_1参数表示煤或矿石车,V_2号参数表示载重量,V_3表示T_1或T_2存储值。
S_ STORAGE S_ STORAGE INITIAL X$T_1,0 INITIAL X$T_2,0 GENERATE , ;装煤 ASSIGN V_1,S_ ;S_1表示目的仓库 ASSIGN V_2,18 ASSIGN V_3,T_1 ADVANCE ENTER P$V_1,P$V_2 SAVEVALUE P$V_3+,P$V_2 ;统计煤产量 ADVANCE ;卸煤 LEAVE P$V_1,0 TERMINATE GENERATE , ;装矿石 ASSIGN V_1,S_2 ASSIGN V_2,35 ASSIGN V_3,T_2 ENTER P$V_1,(P$V_2) SAVEVALUE P$V_3+,P$V_ ;统计矿石产量 ADVANCE ;卸矿石 GENERATE TERMINATE

29 利用 SNA 码将相同程序段合并可简化程序: 利用 SNA 码 (C)
S_ STORAGE S_ STORAGE INITIAL X$T_1,0 INITIAL X$T_2,0 GENERATE , ;装煤 ASSIGN V_1,S_1 ASSIGN V_2,18 ASSIGN V_3,T_1 TRANSFER ,NEXT_C GENERATE , ;装矿石 ASSIGN V_1,S_2 ASSIGN V_2,35 ASSIGN V_3,T_2 NEXT_C ADVANCE ENTER P$V_1,(P$V_2) SAVEVALUE P$V_3+,P$V_ ;统计矿石产量 ADVANCE ;卸矿石 LEAVE P$V_1,0 TERMINATE GENERATE TERMINATE

30 6.3 中级 GPSSWorld 语言程序举例 例6.5 一零件加工过程的模拟
有一零件加工车间,主要是进行零件的钻孔工作。零件的到达间隔时间为10±3分钟,但零件在进入车间后应先进行打毛刺F_1等光滑处理,然后在进行画线F_2工作,最后才能钻孔F_3。上述每道工序都可能进行排队,我们分别用L_1、L_2、L_3表示这3个队列。为了简单起见,我们仍假设所有的过程都呈均匀分布,其均值和方差分别为: 打毛刺等光滑处理 ±2 分钟 画线 ±3 分钟 钻孔 ±1 分钟

31 初步结构6_5A GENERATE 10,3 ;零件到达 QUEUE L_1 ;排队打毛刺等光滑处理 SEIZE F_1
DEPART L_1 ADVANCE ,2 RELEASE F_1 QUEUE L_ ;排队画线 SEIZE F_2 DEPART L_2 ADVANCE ,3 RELEASE F_2 QUEUE L_ ;排队钻孔 SEIZE F_3 DEPART L_3 ADVANCE ,1 RELEASE F_3 TERMINATE

32 使用系统数字属性码简化程序 MEAN FUNCTION P$S_T,D3 ;服务间隔时间均值,,S_T为工序代码 1,10/2,9/3,8
DEF FUNCTION P$S_T,D3 ;服务间隔时间方差,,S_T为工序代码 1,2/2,3/3,1 W_Q FUNCTION P$S_T,E3 1,L_1/2,L_2/3,L_3 W_F FUNCTION P$S_T,E3 1,F_1/2,F_2/3,F_3 GENERATE ,3 ASSIGN Loop_C,3 ;设循环次数 B_ACK ASSIGN S_T+, ;设置 P$S_T 为工序代号 QUEUE FN$W_Q SEIZE FN$W_F DEPART FN$W_Q ADVANCE FN$MEAN,FN$DEF RELEASE FN$W_F LOOP Loop_C,B_ACK ;循环判断 TERMINATE 1

33 课 后 练 习 1. 读懂上述例题 2. 上机练习及实验 3. 改动部分参数, 多次实验, 分析结果 4. 若煤仓或储矿场满了怎么办?


Download ppt "第6章 中级GPSSWorld 程序设计 本章主要内容: 6.1 一家电修理部模型的建立及其模拟 6.2 中级 GPSSWorld 语言模块"

Similar presentations


Ads by Google