1、 垃圾回收物流仿真系统设计 23 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 第十一章 垃圾回收物流仿真系统设计 11.1 垃圾回收物流系统介绍 城市某一区域, 共有7个居民小区, 每个小区有一个固定垃圾投放处, 两个垃圾箱分别投放完全废弃垃圾和可回收利用垃圾; 每天有专门公司( 垃圾处理公司) 派运输车收集垃圾, 将垃圾从居民区运送之中转站, 再由中转站运至目的地—垃圾处理中心。 仿真程序研究如何设计物流系统, 能够使收集系统在满足时间约束、 载重约束的条件下, 使垃圾处理公司的物流总成本最低。系统配置的项目主要
2、有车辆载重量、 随车工作人员数、 客户满意度。 本节内容能够参看随书光盘models/垃圾回收仿真文件夹下的dumpreversesim.mod, 模型运行结果参看此目录下的reverse.xls文件。 11.2 数据信息 仿真系统涉及的数据信息如下: 11.2.1 地理及需求信息 各个收集点所有的人口数、 距离垃圾转运站、 公司停车场的距离信息如表11.1所示。 各收集点之间以及停车场和转运站之间的距离信息如表11.2所示。 表11.1 收集点信息 收集点 名称 收集点居民数people(i)(千人) 距离停车场距离distance(ip)( km)
3、 距离垃圾转运站距离distance(it)(km) Dump001 1.5 6 16 Dump002 1.45 16 27 Dump003 1.65 26 24 Dump004 1.85 38 36 Dump005 1.4 28 26 Dump006 2.05 16 14 Dump007 1.6 10 8 表11.2 点间距离 路径起点 路径终点 距离( km) 符号 Tran_station Corp park 11 Distance(pt) Dump001 Dump002 10 D
4、istance(12) Dump002 Dump003 10 Distance(23) Dump003 Dump004 12 Distance(34) Dump004 Dump005 10 Distance(45) Dump005 Dump006 12 Distance(56) Dump006 Dump007 6 Distance(67) 11.2.2 与收集车辆有关的信息 l 固定成本[price(i)]: 收集车辆的购买费用; l 可变成本[cost(i)]: 车辆的行驶费用、 维护费用和雇员工资; l 行驶速度: 分为空车行驶速度[un
5、loadspeed(i)]和载重行驶速度[loadspeed(i)]; l 收集时间[loadtime(i)]: 在垃圾收集点收集垃圾所需的时间 l 卸载时间[unloadtime(i)]: 在转运站卸载垃圾所需的时间 具体信息如表11.3所示: 表11.3 收集车辆信息 车辆 名称 载重 t 固定成本 万元 可变成本 元/km 载重速度 km/h 空载速度 km/h 人员 人 人员工资 元/天.人 收集时间 min 卸载时间 min 车1 X1 2+ X1 X1 60 72 P1 60 3+y*6/ P1 3+ X
6、1*6/ P1 车2 X2 2+1.2* X2 X2 60 72 P2 60 2+y*8/ P2 2+ X2*6/ P2 说明: 车1用来收集不可回收垃圾; 车2用来收集可回收利用垃圾; X1, X2为现有两种车的吨位数, X1取值: 3, 4或5吨; X2取值: 1.5; 2; 2.5; y为每次收集的垃圾量, 单位--吨; P1, P2为两种车可配备的随车工作人员数( 能够是1, 2, 3) 。 11.2.3 与垃圾相关的信息 l 人均垃圾量: 平均每人每天产生的垃圾数量; l 垃圾比例: 各种垃圾成分所占比例。 假设人均垃圾量服从均值为1
7、2kg/天的埃尔郎分布, 垃圾成分分为两类: 一类为可重复利用资源, 一类为无用需销毁垃圾, 两者比例为1: 2。 11.3 收集垃圾的成本函数 现在假设仿真一年365天的垃圾回收工作, 决定两种型号的车配置何种吨位以及随车工作人员数, 垃圾回收物流成本( Total Logistic Cost, TLC) 最低。 TLC=车1成本+车2成本 车I所耗成本=I的固定成本+I的可变成本+I的服务时间成本+I的人员成本 即: TLC=CC1+CC2 CC[i]=X[i]+V[i]+S[i]+P[i]*365*60 S[i]=(runtime[i]-240)*m S[i]为垃
8、圾回收的服务时间成本, m为收集时间对服务时间成本的惩罚因子。垃圾回收公司在十二点之前收集完毕, 社会效应好, 给予奖励; 在十二点后完成, 社会满意度低, 影响公司信誉, 成本增加。 runtime[i]为垃圾车将垃圾全部回收完成的最终时间, 也即垃圾车每天的运行时间; 11.4 系统逻辑结构 此垃圾回收物流系统的逻辑结构分为五个子模块: 垃圾产生模块、 叫车模块、 收集模块、 收工模块、 数据处理模块。 l 垃圾产生模块 每天收集工作开始时, 系统根据小区的人数、 人均垃圾量、 两种垃圾量的比例, 经过爱尔朗随机分布函数, 随机产生各个小区的两种垃圾数量, 分别存放入各个
9、小区的两个垃圾箱内。 l 叫车模块 在垃圾存放入各个小区的两个垃圾箱过程中, 根据每种垃圾的总量以及每种垃圾车的载重量, 生成叫车的次数。 l 收集模块 叫车次数确定之后, 车辆根据需求, 沿着最短路径依次收集垃圾。在收集过程中, 在一个垃圾点, 如果垃圾车收集满了或当天的收集工作全部完成, 车辆驶向垃圾中转站, 进行卸载操作; 如果垃圾车未满, 则驶向下一最近垃圾收集点继续收集。 l 收工模块 当天的收集工作全部完成之后, 车辆驶向公司停车场, 当天收集工作完毕。 l 数据处理模块 每天车辆收工时, 11.5 仿真模型的建立 根据系统逻辑结构和数据信息,
10、 我们建立具有7个垃圾收集点、 一个垃圾转运站的WITNESS垃圾回收仿真模型。具体步骤如下: 11.5.1 元素定义Difine 建立仿真模型时, 首先定义仿真模型中所需的元素, 并设计它们的可视效果。我们将设计的元素分为两类――实体元素和逻辑元素, 名称如下。 表11.4 实体元素列表: 元素名称 类型 说明 dumpa(1)~ dumpa(7) Part 七个小区不可回收的垃圾 dumpb(1)~ dumpb(7) Part 七个小区可回收利用的垃圾 dumpcart(1) Vehicle 专门回收dumpa的垃圾回收车 dumpcart(2)
11、Vehicle 专门回收dumpb的垃圾回收车 buffera(1) ~buffera(7) Buffer 各小区不可回收垃圾的垃圾箱 bufferb(1) ~bufferb(7) buffer 各小区可回收利用垃圾的垃圾箱 Corppark Track 公司停车场, Transfer_station Buffer 垃圾转运站 road(i, j) Track 由节点实体i向节点实体j方向的道路 road(j, i) track 由节点实体j向节点实体i方向的道路 Geta(1)~geta(7) Track 车辆将经过它们来进行垃圾a的回收 Ge
12、tb(1)~getb(7) Track 车辆将经过它们来进行垃圾b的回收 表11.5 逻辑元素—变量列表: 变量名称 类型 说明 people(7) integer 各小区的居民数量 capacitycart(2) integer 两种垃圾车每次可收集的垃圾数量, 即载重量 ndemand(2) integer 每天对两种垃圾车的需求次数 labor(2) integer 两种垃圾车的随车工作人员数 Salary Real 工作人员每天工资 price(2) Real 两种垃圾车的购买价格 costrate(2) Real 两种垃
13、圾车的运行费率 unloadspeed(2) Real 两种垃圾车的空载速度 loadspeed(2) Real 两种垃圾车的实载速度 loadnum( 2) integer 两车辆到达垃圾收集点可收集的垃圾数量 nfree(2) integer 两车辆剩余载重能力 Nparts7) integer 每一垃圾收集点在特定仿真时点剩余垃圾量 loadtime(2) Real 两车辆收集垃圾所需的时间 unloadtime(2) Real 两车辆卸载垃圾所需的时间 runtime(2,3) Real 存储车辆的时间参数, runtime(k,1)存
14、储仿真钟的当前数值, runtime(k,2)存储车辆k在当天的运行时间, runtime(k,3)存储车辆k在仿真过程中总的运行时间 Timeweigh Real 时间惩罚因子 timecost(2) Real 时间惩罚成本 sumcost Real 目标函数objfun中用于统计系统运行的总费用 定义一个实数型逻辑函数objfun(), 用于计算和统计系统运行一年365天所花费的总费用。 11.5.2 元素显示display 各个元素的显示设置如图11.1所示。 图11.1 垃圾回收物流仿真系统可视化界面 11.5.3 元素详细设计 在该子模块中定义
15、随着仿真钟的推进, 装载垃圾的逻辑条件。该系统的工作班次制度采用每天工作8小时, 每一仿真时间等价于现实时间一分钟。 为了实现系统的仿真运行, 需要对系统中的元素进行详细设计。 l 系统初始化程序设计( initialize actions) , 经过选择系统菜单model/initialize actions…菜单项, 得到初始化程序编辑框, 输入如下程序: personum (1) = 1.5 personum (2) = 1.45 personum (3) = 1.65 personum (4) = 1.85 personum (5) = 1.4 personum (6
16、) = 2.05 personum (7) = 1.6 !给各小区的人数赋初值, 单位: 千人 FOR num = 1 TO 7 meandump (num) = 1.2 * personum (num) * 1000 NEXT !分别生成每天七个小区产生垃圾的均值 set capacity of dumpcart1 to capacitycart(1) set capacity of dumpcart2 to capacitycart(2) !分别设定两个车辆的载重量, 由变量数组capacitycart(1)和capacitycart(2)决定。 unloadt
17、ime = 0 !卸载时间 FOR num = 1 TO 7 moddemanda (num) = 0 moddemandb (num) = 0 !决定叫车次数的变量 NEXT FOR num = 1 TO 4 roadchoicea (num) = 0 roadchoiceb (num) = 0 !最短路径控制变量 NEXT FOR num = 1 TO 3 runtimea (num) = 0 runtimeb (num) = 0
18、 !车辆运行时间控制变量 NEXT intervaltime = 1440 !每天的分钟数 timeweigh = 5 !时间惩罚因子 laborneeda = 1 laborneedb = 1 !两辆车随车工作人员数 !对变量赋初始值 l 各个小区垃圾的详细设计 表11.6 垃圾元素详细设计列表 Name First arrival Inter arrival Lot size To Dumpa1 0.0001 1440 ERLANG
19、 (meandump (1) / 3,3,1) PUSH to buffera1 Dumpa2 0.0002 1440 ERLANG (meandump (2) / 3,3,2) PUSH to buffera2 Dumpa3 0.0003 1440 ERLANG (meandump (3) / 3,3,3) PUSH to buffera3 Dumpa4 0.0004 1440 ERLANG (meandump (4) / 3,3,4) PUSH to buffera4 Dumpa5 0.0005 1440 ERLANG (meandump (5) /
20、 3,3,5) PUSH to buffera5 Dumpa6 0.0006 1440 ERLANG (meandump (6) / 3,3,6) PUSH to buffera6 Dumpa7 0.0007 1440 ERLANG (meandump (7) / 3,3,7) PUSH to buffera7 Dumpb1 0.0001 1440 ERLANG (meandump (1) / 3,3,8) PUSH to bufferb1 Dumpb2 0.0002 1440 ERLANG (meandump (2) / 3,3,9) PUSH to
21、 bufferb2 Dumpb3 0.0003 1440 ERLANG (meandump (3) / 3,3,10) PUSH to bufferb3 Dumpb4 0.0004 1440 ERLANG (meandump (4) / 3,3,11) PUSH to bufferb4 Dumpb5 0.0005 1440 ERLANG (meandump (5) / 3,3,12) PUSH to bufferb5 Dumpb6 0.0006 1440 ERLANG (meandump (6) / 3,3,13) PUSH to bufferb6 D
22、umpb7 0.0007 1440 ERLANG (meandump (7) / 3,3,14) PUSH to bufferb7 垃圾名称 * 一天的分钟数 Meandump为经过各小区人数计算出来的变量数组 决定垃圾的存放 *决定每天各个小区的垃圾依次产生, 以便于生产叫车次数。 l 运输车辆详细设计 表11.7 运输车辆详细设计列表 Name Unload speed Load speed to Dumpcart1 1.2 1.0 PUSH to corppark(1) Dumpcart2 1.2 1.0 PUSH to corppark
23、2) 车辆名称 空载速度( km/min) 实载速度 生成时, 放入公司停车场的车位 l 垃圾箱详细设计 设计垃圾放入垃圾箱时的活动, 也即每个垃圾箱的”actions on input”中的程序。 buffera1.actions on input: IF MOD (NPARTS (buffera1),cartcapacity(1)) = 1 CALL dumpcart1, get1, road7_t, 1 VSEARCH road0_1, corppark, road1_2, road1_0, road2_3, road3_4, road4_5, road5
24、6, road6_5, road6_7, road7_t, roadt_7, road1_0, road3_6, road6_3, road7_0, road0_7, road2_1, geta1, geta2, geta3, geta4, geta5, geta6, geta7, getb1, getb2, getb3, getb4, getb5,getb6,getb7 ENDIF moddemanda (1) = MOD (NPARTS (buffera1),cartcapacity(1)) 程序解释: 第一行: 判断当buffera1中的垃圾的数量同车辆1的载重量取余为1时
25、 发生if…endif之间的活动; 第二行: 叫车dumpcart1, 该车将在路径get1上装载垃圾, 在路径road7_t上卸载垃圾, 优先级为1; 第三行至第五行: 在所有路径上搜索车辆dumpcart1; 第七行: 汇总非整车垃圾的数量, 带到buffera2中继续计算并叫车。 Buffera2~buffera7的actions on input: IF MOD (moddemanda (i-1) + NPARTS (buffera(i)),cartcapacity1) = 1 CALL dumpcart1,geta(i),road7_t,0 VSEA
26、RCH road0_1, corppark, road1_2, road1_0, road2_3, road3_4, road4_5, road5_6, road6_5, road6_7, road7_t, roadt_7, road1_0, road3_6, road6_3, road7_0, road0_7, road2_1, geta1, geta2, geta3, geta4, geta5, geta6, geta7, getb1, getb2, getb3, getb4, getb5,getb6,getb7 ENDIF moddemanda (i) = MOD (moddema
27、nda (I-1) + NPARTS (buffera(i)),cartcapacity1) i表示本垃圾箱的序号, 为2, 3, 4, 5, 6, 7; 第一行: 将其上一个垃圾箱的非整车垃圾数量同本垃圾箱中的垃圾数相加, 然后与车辆一的载重量取余, 当结果为1时, 叫车。 垃圾箱bufferb1~bufferb7的”actions on input”同垃圾箱buffera1~buffera7的”actions on input”处理逻辑完全一样, 只需要将buffera改为bufferb、 dumpcart1改为dumpcart2、 moddemanda改为moddeman
28、db、 geta改为getb即可。 l 两点间运输路径上的程序设计 下面以road2_3为例, 加以说明其逻辑流程。其它路径类似, 能够在路径的general detail 中的output to中加以查看。 IF VEHICLE (road2_3,1) = dumpcart1 IF NPARTS (buffera3) > 0 PUSH to geta3(1) ELSE PUSH to road3_4 ENDIF ELSEIF VEHICLE (road2_3,1) = dumpcart2 IF NPARTS (bufferb3) > 0 PUSH
29、to getb3 ELSE PUSH to road3_4 ENDIF ELSE Wait ENDIF 第一行到第六行: 决定车辆dumpcart1到达路径road2_3末端时, 它的运行路径。如果此时垃圾箱buffera3中有垃圾, 则车辆dumpcart1驶向路径geta3, 进行垃圾收集( 第二行到第四行) ; 如果垃圾箱buffera3中没有垃圾, 则车辆dumpcart1驶向路径road3_4。 第七行到第十二行: 决定车辆dumpcart2到达路径road2_3末端时, 它的运行路径。如果此时垃圾箱bufferb3中有垃圾, 则车辆dumpcart2驶
30、向路径getb3, 进行垃圾收集( 第八行到第十行) ; 如果垃圾箱bufferb3中没有垃圾, 则车辆dumpcart2驶向路径road3_4。 如果是其它情况, 等待( 第十三行到第十四行) 。 l 路径get系列的设置 在Get系列( Geta1~geta7, Getb1~getb7) 路径中设置车辆的装载( loading) 程序和条件, 它们的设定以及程序的处理流程基本相同, 下面举geta2加以说明。其中装载数量( loadnum) 和装载时间(loadtime)在general detail页的actions on front中设定; 装载程序和条件在loading
31、detail页中进行设定。 General detail页的actions on front程序如下: IF NFREE (dumpcart1) >= NPARTS (buffera2) loadnum = NPARTS (buffera2) ELSE loadnum = NFREE (dumpcart1) ENDIF loadtimea (1) = 3 + loadnum / 1000 * loadindexa / laborneeda dayloadtimea = dayloadtimea + loadtimea (1) 程序解释: 第一行至第五行: 如果车辆
32、dumpcart1的空余容量NFREE(dumpcart1)不小于垃圾箱buffera2中的垃圾数量, 则收集数量loadnum为垃圾箱buffera2中的所有垃圾; 否则, 收集数量loadnum为车辆的空余容量。 第六行: 计算本次收集所需的时间loadtimea(1), 它是本次垃圾收集量、 随车工作人员数以及收集时间系数的函数。 图11.2 路径geta2中的loading详细设计图 路径geta2中的loading detail页框的设定如图11.2所示。 在选中loading enabled( 能够装载) 前的复选框后, 将会出现该界面上的其它内容。Transfer Mo
33、de( 装载模式) 有三种: if、 call、 always。我们选择条件模式if, 在条件condition:框中输入条件表示式NPARTS(buffera2)>0, 即当垃圾箱buffera2中的垃圾数量大于零时, 能够装载; 装载数量等于Quantity to框中的变量loadnum的值; 装载的时间需要Time to Load框中的变量loadtimea(1); 装载的源在Input Loading Rule规则中进行设定, 为”PULL from buffera2”, 从垃圾箱buffera2中收集。 l road7_t的设定 车辆每次到达路径road7_t的末端时,
34、都要进行卸载处理, 因此对路径road7_t的详细设计项目包括卸载所需的时间, 卸载模式等。 经过路径road7_t的General detail页的actions on front 中设定卸载所需的时间, 程序如下: IF VEHICLE (road7_t,1) = dumpcart1 unloadtime = 3 + 6 * NPARTS (dumpcart1) / 1000 / laborneeda dayunloadtimea = dayunloadtimea + unloadtime ELSE unloadtime = 2 + 6 * NPARTS (dumpc
35、art2) / 1000 / laborneedb dayunloadtimeb = dayunloadtimeb + unloadtime ENDIF 程序解释: 第一行至第三行, 根据函数VEHICLE()的结果, 如果到达车辆是dumpcart1, 就经过车辆dumpcart1中所装载的垃圾数量NPARTS (dumpcart1)、 车辆dumpcart1的随车工作人员数laborneeda来确定卸载时间unloadtime (第二行), 然后统计车辆dumpcart1的总的卸载时间dayunloadtimeb (第三行)。 第四行至第七行, 否则, 也就是到达的车辆是du
36、mpcart2, 就经过车辆dumpcart2中所装载的垃圾数量NPARTS (dumpcart2)、 车辆dumpcart2的随车工作人员数laborneedb来确定卸载时间unloadtime(第五行), 然后统计车辆dumpcart2的总卸载时间dayunloadtimeb (第六行)。 图11.3是路径road7_t设置中的另一项内容, 就是车辆卸载的相关内容。 在选中Unloading Enabled( 能够卸载) 前的复选框后, 该页面上的其它选项将能够被用户设置。卸载模式( Transfer Mode) 也有三种模式if、 call、 always, 我们选
37、择模式always, 只要车辆到达路径road7_t的末端, 就进行卸载活动。卸载数量Quantity to 设定为All, 就是卸载车辆上的所有垃圾。卸载时间Time to设定为变量unloadtime, 决定本次卸载所需要的时间。停车Park设定为公司停车场corppark, 决定在当天回收任务完成后, 车辆泊放的位置。卸载到什么地方, 将由”output unloading rule”中的程序决定, 程序为: push to ship, 将所有垃圾送出系统。 图11.3路径卸载Unloading页框界面 11.5.5 数据处理子模块 每天车辆完成收集工作完成后, 驶向垃圾处理公司停
38、车场停泊时, 都将进行一些数据统计和处理活动。这些程序写在路径road7_0的”Actions on Front”中, 程序及其说明如下: IF VEHICLE (road7_0,1) = dumpcart1 IF NDemands (dumpcart1) = 0 runtimea (1) = TIME runtimea (2) = runtimea (2) + 1 runtimea (3) = runtimea (1) - 1000 * (runtimea (2) - 1) timecosta = timecosta + timeweigh * (runt
39、imea (3) - 240) daydistance = DISTANCE (dumpcart1) / 10 - lastdaydistance lastdaydistance = DISTANCE (dumpcart1) / 10 dayunloadtimea = 0 dayloadtimeb = 0 ENDIF ELSEIF VEHICLE (road7_0,1) = dumpcart2 IF NDemands (dumpcart2) = 0 runtimeb (1) = TIME runtimeb (2) = runtimeb (2)
40、 1 runtimeb (3) = runtimeb (1) - 1000 * (runtimeb (2) - 1) timecostb = timecostb + timeweigh * (runtimeb (3) - 240) daydistancea = DISTANCE (dumpcart2) / 10 - lastdaydistancea lastdaydistancea = DISTANCE (dumpcart2) / 10 dayunloadtimeb = 0 dayloadtimeb = 0 ENDIF ENDIF FOR num
41、 1 TO 4 IF VEHICLE (road7_0,1) = dumpcart1 roadchoicea (num) = 0 ELSEIF VEHICLE (road7_0,1) = dumpcart2 roadchoiceb (num) = 0 ENDIF NEXT 程序解释: 第一行至第十一行, 如果即将停泊的车辆是dumpcart1, 同时系统此时对车辆dumpcart1的需求是零( 第三行) ; 先统计车辆dumpcart1在当天收集工作的完成时间, 并判断是否超过了12点, 然后计算当天的时间惩罚成本timecost(第三至第六行); 统计车
42、辆的运行距离(第七至第八行); 对两个变量置零( 第九至第十行) 。 第十二行至第二十二行, 统计如果即将停泊的车辆是dumpcart2的一些数据, 解释同dumpcart1一样。 第二十四行至第三十行, 对路径选择变量数组置零。 11.5.6 目标函数objfun()中的程序 sumcost = 0 !统计总费用的变量置零 sumcost = initialcosta + initialcostb + sumcost ! 将车辆的购置成本加到总费用变量中 sumcost = (laborneedb + laborneeda) * 60 * (runtimea (2
43、) + 1) + sumcost !将工作人员工资添加到总费用变量 sumcost = DISTANCE (dumpcart001) / 10 * permilecosta + DISTANCE (dumpcart002) / 10 * permilecostb + sumcost !将车辆的运行费用添加到总费用变量 sumcost = timecosta + timecostb + sumcost ! 将时间惩罚成本添加到总费用变量 RETURN sumcost !返回变量sumcost给目标函数 11.6 仿真运行与结果分析 我们现在采用如表11.8所示的
44、两种配置, 来运行该仿真模型, 仿真时间为一年( 即365*1440分钟) 。 表11.8 两种配置方案的异样数据表 项目 方案 车辆名称 载重量 ( 吨) 随车人员( 人) 时间惩罚因子 方案一 Dumpcart(1) 3 1 2 Dumpcart(2) 1.5 1 2 方案二 Dumpcart(1) 5 3 2 Dumpcart(2) 2.5 3 2 其它的元素与数值在两个方案中的值完全相同, 参见前面的表格。 经过仿真运行后得到统计数据如表11.9。 表11.9 垃圾回收仿真系统报表 方案 运行 距离km 运行
45、 时间 h 时间 成本 万元 收集 时间 h 卸载 时间 h 可变 成本 万元 固定 成本 万元 人员 工资 万元 总成本万元 总成本万元 一 Dumpcart(1) 73691 2310 10.2 744 407 22.1 5 2.2 39.5 66.3 Dumpcart(2) 74336 2263 9.6 813 217 11.2 3.8 2.2 26.8 二 Dumpcart(1) 54657 1366 -1.1 342 157 27.3 7 6.6 39.8 63 Dump
46、cart(2) 54489 1292 -2 332 86 13.6 5 6.6 23.2 为了更清晰的比较两种方案的成本参数, 将上表的数据绘制成直方图, 如图11.4所示。 图11.4 两种方案的成本参数比较图 从成本数据比较图上能够看出, 当采用方案二时, 车辆吨位数和随车人员的增加, 使得固定成本、 人员工资都比喻案一要大; 同时, 回收速度要比喻案一快的多, 使得可变成本和居民满意度较高; 时间惩罚成本低于零, 即取得了很好的市场评价和公司品牌效应。在这两种方案下, 每年方案二的物流成本比喻案一要少3.3万元。 图11.5 两种方案的运行参数比较图 从运行参数比较图上能够看出, 两种方案的物流成本差异收集时间、 卸载时间、 运行时间、 运行距离的差异引起的。由于方案一的车辆吨位和随车人员都比喻案二要少, 因此同是收集等量垃圾, 它的收集时间和卸载时间都比喻案二长, 它的收集次数要比喻案二多, 即运行距离比喻案二长。






