管理系统模拟作业资料.docx
《管理系统模拟作业资料.docx》由会员分享,可在线阅读,更多相关《管理系统模拟作业资料.docx(34页珍藏版)》请在冰豆网上搜索。
管理系统模拟作业资料
管理系统模拟作业资料:
江苏大学管理学院信息系张征
1、单窗口串联排队系统的模拟
某汽车加油站只有一台加油器,加油的汽车到达间隔时间为均匀分布,均值为100秒,方差为10秒。
到达加油站后先排队等候,再加油,加油服务时间也为均匀分布,均值为80秒,方差为8秒。
加油后司机要去交费窗口排队交费,交费时间也为均匀分布,均值为50秒,方差为30秒。
求解:
(1)加油站与交费窗口的利用率;
(2)加油与交费的平均等候时间。
模拟程序如下:
SIMULATE
GENERATE100,10
QUEUE1
SEIZE1
DEPART1
ADVANCE80,8
RELEASE1
QUEUE2
SEIZE2
DEPART2
ADVANCE50,30
RELEASE2
TERMINATE1
START100
2、并联排队系统
(一)
如果在1中所模拟的加油站中有两台效率相同的加油器,而加油的汽车的排一个队(交费环节略)。
通过实验来求解各个加油器的利用率和汽车的平均等候时间。
图4.3
SIMULATE
LINEEQU1
FA1EQU1
FA2EQU2
GENERATE40,10
QUEUELINE
TRANSFERBOTH,FA1D,FA2D
FA1DSEIZEFA1
DEPARTLINE
ADVANCE80,8
RELEASEFA1
TERMINATE1
FA2DSEIZEFA2
DEPARTLINE
ADVANCE80,8
RELEASEFA2
TERMINATE1
START100
对于例2的系统除将加油器作为设施处理外,我们还可将加油器作为存储器来对待。
因为
有两台加油器,所以存储器的容量定义为2,名称标号定义为S_1。
图4.4
SIMULATE
LINEEQU1
S_1EQU1
S_1STORAGE2
GENERATE40,10
QUEUELINE
ENTERS_1
DEPARTLINE
ADVANCE80,8
LEAVES_1
TERMINATE1
START100
3、具有两个入口的加油站
与上述两例的系统相似,是一个具有两个入口的加油站,两个入口可同时进车,但是只站一队等候,下面给出模拟程序清单,图4.5为本系统的示意图:
SIMULATE
LINEEQU1
S_1EQU1
S_1STORAGE2
GENERATE80,10
QUEUELINE
ENTERS_1
DEPARTLINE
ADVANCE80,8
LEAVES_1
TERMINATE1
GENERATE80,10
QUEUELINE
ENTERS_1
DEPARTLINE
ADVANCE80,8
LEAVES_1
TERMINATE1
START100
上述例子4.4程序中有6条模块是重复的,下面给出将此6个模块合并在一起的程序清单及其运行结果,大家比较一下:
SIMULATE
LINEEQU1
S_1EQU1
S_1STORAGE2
GENERATE80,10
TRANSFER,QU
GENERATE80,10
QUQUEUELINE
ENTERS_1
DEPARTLINE
ADVANCE80,8
LEAVES_1
TERMINATE1
START100
4、传输带上质量检查
若加工后的零件放在传输带上运输,零件到达第一个检查员及每个检查员之间需要输送2分钟,通过模拟分析每个检查员的工作情况,有多少个零件在通过第3个检查员后仍然检查不到?
图4.6是这一系统的示意图,下面给出程序清单及运行结果。
程序清单:
GENERATE5
ADVANCE2
TRANSFERBOTH,NET1,CON1
NET1SEIZE1
ADVANCE12,9
RELEASE1
TERMINATE1
CON1ADVANCE2
TRANSFERBOTH,NET2,CON2
NET2SEIZE2
ADVANCE12,9
RELEASE2
TERMINATE1
CON2ADVANCE2
TRANSFERBOTH,NET3,CON3
NET3SEIZE3
ADVANCE12,9
RELEASE3
TERMINATE1
CON3TERMINATE1
START10,NP
RESET
START1000
注意:
请做模拟试验,使漏检产品数量尽量变小!
!
5、邮电局打电话模拟系统设计分析
已知某个邮电所有两台公共电话,打电话的顾客到达后的间隔时间呈均匀分布,均值为8分钟,方差为3分钟,每个顾客都应该先排队预交费,交费时间呈均匀分布,均值为2分钟,方差为1分钟。
然后再排队打电话,顾客打电话时间呈均匀分布,均值为12分钟,方差为5分钟。
打完电话再去排队交费结算费用,结算时间呈均匀分布,均值为3分钟,方差为1分钟。
模拟100个顾客,求顾客在邮电所的停留时间?
交费平均等待时间?
平均打电话时间:
?
收费员的平均利用率?
公共电话的平均利用?
提示:
预交费与结算可排同一队,即由一个收费员服务。
方法一:
将二台电话机定义成为存储器,容量为二。
SIMULATE
L_JFEQU1
L_DHEQU2
JF_1EQU1
S_DHEQU1
S_DHSTORAGE2
GENERATE8,3
QUEUEL_JF
SEIZEJF_1
DEPARTL_JF
ADVANCE2,1
RELEASEJF_1
QUEUEL_DH
ENTERS_DH
DEPARTL_DH
ADVANCE12,5
LEAVES_DH
QUEUEL_JF
SEIZEJF_1
DEPARTL_JF
ADVANCE3,1
RELEASEJF_1
TERMINATE1
START100
请用改变DEPART位置方法完成本题。
方法二:
将二台电话机定义为二个服务设施
SIMULATE
L_JFEQU1
L_DHEQU2
JF_1EQU1
S_DH1EQU2
S_DH2EQU3
GENERATE8,3
QUEUEL_JF
SEIZEJF_1
DEPARTL_JF
ADVANCE2,1
RELEASEJF_1
QUEUEL_DH
TRANSFERBOTH,FA1D,FA2D
FA1DSEIZES_DH1
DEPARTL_DH
ADVANCE12,5
RELEASES_DH1
TRANSFER,JFA1D
FA2DSEIZES_DH2
DEPARTL_DH
ADVANCE12,5
RELEASES_DH2
JFA1DQUEUEL_JF
SEIZEJF_1
DEPARTL_JF
ADVANCE3,1
RELEASEJF_1
TERMINATE1
START100
6、一家电修理部模型的建立及其模拟
已知一家电修理部,除管理人员外,有一名普通修理工干各种零活,两个有经验的专家负责较难的技术性工作。
需要修理的家电中有70%可由普通修理工完成,其余30%具有难一些的技术性问题的家电则需要由经过训练的两个专家中的一个来完成。
需要专家服务的顾客应该先由普通修理工完成检查和初步修理工作,再由专家进行修理。
修理部原始记录表明:
(1)顾客到达间隔时间为11±5分钟,均匀分布。
(2)不用专家修理的家电的服务时间为13±5分钟,均匀分布。
(3)需要专家修理的家电应先由普通修理工检查或修理4±2分钟(均匀分布),再由一个专家修理62±20分钟(均匀分布)。
(4)平均每天服务45个顾客。
求解:
(1)普通修理工及专家的平均利用率。
(2)普通修理工及专家队列的平均等待时间。
(3)普通修理工及专家队列的平均队长。
(4)普通修理工修理一件设备的平均时间。
(5)专家修理一件设备的平均时间。
(6)需维修的家电在修理部平均的逗留时间。
模型的建立:
图6.1是这系统的工作示意图。
在此系统中,可以将来修理的家电定义为活动实体,普通修理工定义为设施,两名专家因为具有相同的特性可以统一考虑按存储器对待。
系统应该有两个队列,一个是普通修理工队列,另一个是需要专家修理的专家队列。
上述设计的各类的实体名称和代号如表6.1所示。
模拟长度可以按每天接待的顾客数为准,是45个,也可以按上班时间设定,这里先按45个模拟顾客为模拟长度。
表6.1 例6.1系统模型设计的各类实体的名称和代号
实体码
实体类型
实体名称
实体代号
1
设施
普通修理工
HANDYM
1
存储器
两名专家
SPCLST
1
队列1
普通修理工队列
GENQ
2
队列2
专家队列
SPECQ
程序清单如下:
SIMULATE
GENQEQU1
SPECQEQU2
HANDYMEQU1
SPCLSTEQU1
SPCLSTSTORAGE2
GENERATE11,5
QUEUEGENQ
TRANSFER.7,SPEC,HANDY
HANDYSEIZEHANDYM
DEPARTGENQ
ADVANCE13,5
RELEASEHANDYM
TRANSFER,DONE
SPECSEIZEHANDYM
DEPARTGENQ
ADVANCE4,2
RELEASEHANDYM
QUEUESPECQ
ENTERSPCLST,1
DEPARTSPECQ
ADVANCE60,20
LEAVESPCLST,1
DONETERMINATE1
START45
应该特别指出的是,上述数据仅是一次模拟的结果,当我们重新设置随机数发生器的种子后(RMULT语句完成),模拟结果将会发生变化。
一般情况下,我们应该利用不同的随机数发生器种子对系统模拟多次,再求其平均值。
所模拟的次数与所要求的模拟精度有关,我们将在输出数据分析一章讲解模拟次数的确定问题。
7、假设有一个募捐站点接受各类民众的现金募捐。
在募捐中大约有50%的人捐10元,有30%的人捐50元,有20%捐100元。
请通过模拟实验来统计以上各类人的捐款数及总捐款数。
这类问题有很多种解法,下面给出的是这个模拟程序的答案之一。
其中我们引入了函数、变量和保存值等概念,程序中FABD号函数是为了鉴别是哪一类人捐款而设置的,可以看出捐款10元的是第一类人,捐款50的是第二类人,捐款100的是第三类人,他们捐款的累计数目分别用1、2、3号保存值统计,而4号保存值是捐款总数。
程序清单如下:
FABEFUNCTIONRN1,D3
.5,10/.8,50/1,100
FABDFUNCTIONP1,D3
10,1/50,2/100,3
GENERATE5
ASSIGN1,FN$FABE
SAVEVALUEFN$FABD+,P1
SAVEVALUE4+,P1
TERMINATE1
START100
8、有一个仅有一个理发师的理发店,顾客到达间隔时间为18±6分钟(均匀分布),理发时间为16±4分钟(均匀分布),,理发店营业8小时关门,但关门之前进入的顾客要理发完毕后才能走。
请模拟这一系统。
这个问题的关键就是如何终止模拟。
首先我们需要设置一逻辑开关,到关门时控制关门及顾客进入,在理发店不许顾客进入后,又需要不断测试已经进入的顾客是否都理发完毕?
全都理发完后,模拟才能结束。
程序清单如下:
SIMULATE
L_1EQU1
S_1EQU1
INITIALLS1
GENERATE18,6
GATELSLS1
TRANQUEUEL_1
SEIZES_1
DEPARTL_1
ADVANCE16,4
DONERELEASES_1
TERMINATE
GENERATE480
LOGICRLS1
TESTEN$TRAN,N$DONE
TERMINATE1
START1
9、某零件加工过程的模拟
有一零件加工车间,主要进行零件的钻孔工作。
零件的到达间隔时间为10±3分钟,但零件在进入车间后应该先进行打毛刺等光滑处理工作,然后进行画线工作,最后才能进行钻孔。
上述每道工序都可能进行排队,我们分别用1、2、3表示这3个队列,为了简单起见,我们仍然假设所有的过程都呈均匀分布,其均值和方差分别为:
打毛刺等光滑处理:
10±2分钟
画线:
9±3分钟
钻孔:
8±1分钟
程序清单:
SIMULATE
GENERATE10,3
QUEUE1
SEIZE1
DEPART1
ADVANCE10,2
RELEASE1
QUEUE2
SEIZE2
DEPART2
ADVANCE9,3
RELEASE2
QUEUE3
SEIZE3
DEPART3
ADVANCE8,1
RELEASE3
TERMINATE1
START50
在上面的程序中我们会发现许多相似的程序段,我们是否可以利用循环和系统数字属性码来简化上述过程?
方法是1.先定义两个函数,使各个过程时间的均值和方差能自动选取,均值函数为MEAN,方差函数为DEF,都是用活动实体的1号参数值进行选用。
2.各个工序的代号1、2、3应该由动态实体携带,可使用参数P1来区别各类不同的工序。
3.各个工序的接续采用循环的方法,利用2号参数设置循环次数,利用3号参数选取各类工序过程的方差时间。
通过这样变化,程序清单如下:
SIMULATE
MEANEQU1
DEFEQU2
MEANFUNCTIONP1,D3
1,10/2,9/3,8
DEFFUNCTIONP1,D3
1,2/2,3/3,1/
GENERATE10,3,,,3
ASSIGN2,3
BAKASSIGN1+,1
QUEUEP1
SEIZEP1
DEPARTP1
ASSIGN3,FN$DEF
ADVANCEFN$MEAN,P3
RELEASEP1
LOOPP2,BAK
TERMINATE1
START50
10、上机编程综合作业题:
船舶停港问题
船舶只有在涨潮的时候才出港。
船如要出发,在选定航行前,船要航行6±3小时。
如果某一特定港口有空位,船就前往此港口。
假设每天从早上6点开始涨潮,12小时后开始落潮,再过12小时又恢复涨潮。
如此24小时循环。
另一方面,每15±10小时系统产生一个船舶实体,并检查如在涨潮时,才能离开。
涨潮时开关置为1,底潮时开关置为0,利用GATE语句检查开关状态。
如果处于底潮状态,船舶就等待。
当船舶出发后,航行时间为6±3小时到的一个港口。
到达目标港口PORT1时,需检查该港口是否有空位,该港口一次可停泊5艘船舶。
如果该港口有空位,该船舶就驶往港口PORT1,航程需40±10小时,如果该港口不空,该船舶就驶往别处。
到达该港口PORT1的船舶还有从其他航线来的船只,其到达速率为30±15小时一艘。
港口卸货时间为65±30小时。
请你模拟该系统的运行(1000艘)。
SIMULATE
PORT1EQU1
PORT1STORAGE5
INITIALLS$MOVABLE
GENERATE,,6,1
HIGHLOGICSMOVABLE
ADVANCE12
LOGICRMOVABLE
ADVANCE12
TRANSFER,HIGH
GENERATE15,10
GATELSMOVABLE
ADVANCE6,3
GATESNFPORT1,PRT2
ADVANCE40,10
PRT1ENTERPORT1
ADVANCE65,30
LEAVEPORT1
TERMINATE1
GENERATE30,15
TRANSFER,PRT1
PRT2TERMINATE
START1000
11、某公共汽车站的模拟
某公共汽车站每15分钟来一辆公共汽车,有±1分钟的误差。
每辆汽车有30个座位。
汽车到站时车上一般已经有30±20个乘客,每次下车4±3人。
欲上车的乘客到达汽车站的间隔时间呈指数分布,均值为24秒。
如果一辆汽车到站,因上满乘客而上不去的人就会离开汽车站。
上满或无人下车时汽车就会驶离车站。
每个乘客下车需要时间是10±2秒,上车用15±5秒。
先下车,后上车,上下只能一个一个的进行。
试模拟25辆公共汽车运行的情况。
本模块有两类活动实体,一个是汽车,一个是乘客,因此用两个GENERATE模块分别表示汽车和乘客的模拟过程。
汽车门的开关用一逻辑开关来控制,当汽车到达后,先下车,然后开门上车。
1号表格统计乘客排队等待时间的变化情况,2号表格统计因车上人多而走开的乘客人数的变化情况,每辆车上人多而走开的乘客人数是由1号保存值来累计的。
程序的主体部分由两个进程组成。
一个是乘客到达车站和上车的过程,一个是汽车到达和下乘客的过程。
我们先讲解汽车到达和下乘客的过程,这一过程是从程序中第二个GENERATE模块开始的。
当一辆汽车到达时,先确定车内的乘客数并存入2号保存值中,而应下车的人数(FN$FNABC)则存入活动实体的1号参数,接着是乘客下车的循环过程。
由于要先下后上,因此在模拟下车时就不打开车门,保证排队的乘客不能上车。
在上下车结束后,也即所判断的两个条件(已无人排队及已无人上车)都满足时,汽车关门离开车站。
汽车到达和下乘客的过程是从程序中第一个GENERATE模块开始的。
到达的乘客先排队,然后测试是否有打开车门的汽车到达,若有,则再看看是否车内乘客数已经达到30人,若已有30人,则乘客就因无坐位而决定不再上车,并经过GOA模块统计后离开,人数小于30就开始上车,同时使车内人数增加1。
程序清单如下:
SIMULATE
LINEEQU1
BUSEQU1
FNABAFUNCTIONRN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/1,8
FNABBFUNCTIONRN2,D2
0,10/1,51
FNABCFUNCTIONRN3,D2
0,1/1,8
QTAB1QTABLELINE,0,100,15
TAB1TABLEX1,0,10,10
GENERATE24,FN$FNABA
QUEUELINE
GATELSBUS
DEPARTLINE
TESTLX2,30,GOA
GETONADVANCE15,5
SAVEVALUE2+,1
TERMINATE
GOASAVEVALUE1+,1
TERMINATE
GENERATE900,60
SAVEVALUE2,FN$FNABB
ASSIGN1,FN$FNABC
NEXTADVANCE10,2
SAVEVALUE2-,1
LOOP1,NEXT
LOGICSBUS
TESTEQ$LINE,0
TESTEW$GETON,0
TABULATETAB1
SAVEVALUE1,0
LOGICRBUS
TERMINATE1
START25
问:
1、分析输出数据报告,调试程序,使上车人数不为0。
2、进行模拟试验,使上车人数尽量多,并对试验给出管理上的决策意见。
12、某公司销售部门收到客户一份订货单后,按常规销售部门一方面应该通知客户汇来货款支票,要一方面要通知生产部门准备货品。
待汇款达到后再进行包装成箱,并办理发货手续,通知来车提货。
请模拟这一过程。
按题意,将订货单作为动态实体,首先它要复制一份,一份留在销售部门处理,一份送到生产部门配货。
然后分销售部和生产部两个部分进行模拟,最后按装箱货卡与货品发票与包装好的货品全部达到的条件控制货物的发出。
设置两个队列,1号队列为配货队列,2号队列为包装队列;两个设施,设施SHOP(1号)为配货员,设施PACK(2号)为包装工。
模拟程序清单:
SIMULATE
LPHEQU1
LBZEQU2
PHYEQU1
BZYEQU2
GENERATE24,8
SPLIT1,COOP
ADVANCE32,8
ADD1MATCHADD2
ADVANCE24,4
OUTASSEMBLE2
TERMINATE1
COOPQUEUELPH
SEIZEPHY
DEPARTLPH
ADVANCE18,6
RELEASEPHY
ADD2MATCHADD1
QUEUELBZ
SEIZEBZY
DEPARTLBZ
ADVANCE15,5
RELEASEBZY
TRANSFER,OUT
START100
13、用户链
某一零件加工系统在生产某一产品时需要3道工序,每道工序都由不同的机床来完成。
现有一车间仅有3台机床,每台机床可完成一道工序。
但是在每道工序之前排队的零件并不是按FOFO的原则接受加工的,而是按“下一个加工零件是所有等待加工零件中加工时间最短的零件”的原则进行选择。
模拟这一过程。
系统的其他情况和参数如下:
(1)零件达到间隔时间均值为150秒,指数分布。
(2)各机床加工时间的平均值分别为50秒、70秒和60秒。
但是需要乘以下列随机因素的修正值,各修正值及其概率为:
0.5及20%,1.0及50%,1.5及20%,2及10%。
本系统是一般的串联排队系统,正常的模拟是比较简单和规范的、现在的问题是系统采用了新的排队原则,这样GPSS中队列实体就不适用了。
因此我们要建立自己的用户链,来实现新的排队原则。
在下面的程序中,我们为3台机床建立3个用户链。
为此我们分别用活动实体的5、6、7号参数存储零件的加工时间,然后按这3个参数值组成用户链,这就实现了按加工时间排序的原则,使加工时间最短的零件排在最前面。
在下面的程序中我们还对零件的加工时间进行了列表分析,我们可以通过模拟来观察结果。
程序清单如下:
SIMULATE
MACH1EQU1
MACH2EQU2
MACH3EQU3
TAA1TABLEM1,100,60,20
FNA1FUNCTIONP1,D3
5