最优装卸安排优化模型(共42页).doc
精选优质文档-倾情为你奉上最优装卸安排优化模型046队王天成 代川 李黎摘要:本文针对倒煤台最优装卸安排问题,首先为其设定了其装卸操作规则,并且对标准日和非标准日(周四)的情况分别分析,结合了概率密度函数和三重积分的相关理论依据,建立了以总期望费用最少为优化目标的模型,求得每个问题的结果,而后又充分利用计算机对整个装煤、运煤的过程进行模拟仿真,并且对计算的结果进行验证,具体的工作如下; 对于问题一、二,我们首先证明了在装车或者装煤的过程中,只要有列车到达,应调用两个工作班。随后,在我们制定的操作规则的前提下,分别对标准日和非标准日以及周五调用第二个工作班的次数进行了讨论,标准日分成了12种情况,非标准日分成10中情况来讨论,最后计算出了每种情况的概率和期望,求得的结果是:770次,浮动区间为744,796,月滞期费用为348.7716万元,占总费用的48%。 对于问题三,我们分别对标准日和周四的日调度计划进行了设计,设计的原则有两个:第一是尽可能的不调用第二个工作班,第二是尽可能减少列车的滞期费用。最终我们给出的调度计划为:标准日为一个调度区间,具体调度安排有两种,详情请参阅正文,其费用是10.8万元;周四的调度安排是第一辆列车到达时间为5:00,大容量列车到达时间为11:00,第二辆列车到达时间为20:00,第三辆标准列车到达时间为20:00,此时总费用为33.6万元;由于周四的安排对周五产生影响的概率很大,因此对周五也应该做如下的安排:第一辆列车6:00到达,第二辆列车13:00到达,第三辆列车20:00到达,总费用为11.1万元。 对于问题四,我们找到了有利于调用第三个工作班的情形区间,通过对比调用一个工作班、两个工作班和三个工作班所产生的总费用大小,最后得出了厂方应该考虑调用三个工作班的情况。之后,对于能否再加满第四辆标准列车,通过分析,我们发现,虽然能在时间上允许,但是由于其产生的滞期费用会使得总费用增加,因此,我们不建议厂方再装第四辆标准列车。 基于上述的整个讨论过程,我们用计算机进行模拟仿真,并且放宽假设条件,使得每天都是连续的,并且在不同的初始容量情况下进行模拟,最终得到的模拟结果如下:年调用第二个工作班的次数为771次,月滞期费用为361.8205,与上面通过计算得到的解很接近,说明我们的模型是比较可靠的。关键字: 最优装卸安排计划 matlab计算机模拟仿真 滞期费用联合概率密度函数 蒙特卡洛模拟 一 问题重述(略)二 条件假设 为了便于讨论,本文建立了如下的基本假设条件: (1)各个工序之间无间隔,即工作班装煤至煤台,煤台装车没有时间的间隔。 (2)各个工作班装煤效率相同,即第二、三工作班的装煤速度与第一个工作班相同。 (3)第二、三工作班随时处于准备工作状态,只要有需要,均可以按时到达。 (4)列车的到达时间是随机的,并且到达时间服从独立的均匀分布。 (5)火车容量与装车时间成正比,即一个大容量的列车装满的时间为6小时。 (6)场地的服务原则是“先来先装”,即先到的煤车装满煤开出倒煤台之后,下一列煤车才能开进倒煤台装煤。 (7)为计算的方便,我们假设以一周为一个初级单位时间计算,一年计算52周。另外,在计算过程中,对一周中,只对星期四和星期五独立讨论,其他的均采用相同的结果。 (8)为了计算方便,从第一天开始,我们假定倒煤台的初始容量为1.5倍标准列车容量。(9)假设一年有52个星期,一个月4个星期。三 符号变量 符号基本含义分别代表第一、二、三辆标准列车到达的时间代表大容量列车到达的时间表示单位时间内装煤操作总费用(含滞期费用)表示单位时间内第i辆列车的滞期费用表示单位时间内第i辆列车的操作费用表示单位时间内调用第二个工作班的次数表示单位时间内调用第二个班的次数的概率表示第i辆列车的滞期时间表示为了装满第i辆列车而付出的操作时间表示第i辆车到达的时间的概率密度函数表示三辆车到达的时间的联合概率密度函数表示单位时间内调用第二个工作班的次数的期望每一天中倒煤台中的初始容量周四会对周五产生影响的概率总费用的期望值四 问题分析对于第一个问题和第二个问题,我们认为是一体的,因此我们做如下的分析: (1) 对标准日和非标准日加以区分(2) 计算出标准日调用第二个工作班的概率及其期望(3) 计算出非标准日调用第二个工作班的概率及其期望(4) 在既定概率条件下,对产生的总费用和滞期费用分别积分,才能得到一月中的滞期费用。 对于问题三,题目要求给出日调度计划,因此,必须得对标准日、周四、周五进行分开讨论,而且列车到达时间的调度依据是使得总费用降低,这里要遵循两个原则:第一是尽可能的不调用第二个工作班,第二是尽可能的不让列车等待而产生滞期费用。 对于问题四,题目的问题是是否可以安排第三个工作队,如果我们假设有一种状况是,安排了第三个工作队后,会更优(总费用最少),那么,第三个工作班的调用就是合理的。然而对于能否再加满第四辆标准列车,必须考虑以下两个问题:第一,时间是否允许;第二,是否会增加滞期费用,如果时间允许,且不会增加滞期费用,那么久可以接受,否则,就不建议增加列车。 五 模型建立及其求解5.1.问题一和问题二的模型及其求解5.1.1 模型准备 (一)标准列车到达时间的密度函数的概率分布 三列标准煤车,每一列煤车都具有随机一致分布,因此每列煤车的概率密度函数为: , 因此,其分布函数为 : , (二)理论证明 命题1:对于在任意一辆列车,在其装车的过程中,如果有另外的一列车到达,则当第一列车走后,调用两个工作队运煤比只用一个工程队运煤费用要少。证明过程如下:设车于时刻开始装车,正在装车时,车到达了,设此时为时刻。则当第一列车装满走后,用一个工作队运煤时产生的运煤费和滞时费用为: 当第一列车转满走后,用两个工作队运煤时产生的运煤费和滞时费用为:显然,命题得证。 命题2:第一个工程队正在往煤台中运煤时,一列车到了,若此时煤台中的煤量不够列车所需的量,则马上调用第二个工程队运煤加快运煤效率可以减少总费用。证明过程: 当第一个工程队正在往煤台中运煤时,一列车到了,此时煤台中的煤量为。若继续只用一个工程队工作,则产生的运煤费和时滞费为: 若立刻调用第二个工程队工作,则产生的运煤费和时滞费为: 显然,命题得证。5.1.2 模型建立 (一) 目标函数及其约束由于本问题是要为经理决策倒煤台的操作过程,而寻求年预期开支最少,即寻找一种最优的操作过程,使得总费用最少,而厂方能够决定的只有是否加第二个工作班,在什么时候加第二个工作班,其目标是为了降低由于列车等待而产生的滞期费。因此,我们建立如下的模型:目标函数: 满足条件: , 其中,表示第i辆标准列车的滞期费用,表示第i辆标准列车发生的操作费用,表示第i辆列车的滞期时间,表示为了装满第i辆列车而付出的操作时间,其中既包含了第一工作班的操作时间,也包含了第二工作班的操作时间。本模型主要是优化的值,使得在使用一定的第二工作班的基础上,让尽可能的小。为了求得本模型,我们必须定义如下的调用操作规则: (二)操作规则 在定义操作规则的时候,需要用到我们前面给出了的证明,即在装车的过程中,只要有列车到达,那么当装车完毕后,应该立即调用第二工作班,降低费用。 整个规则,我们分成三个部分讨论,第一个部分是标准日(非周四),另一个部分是非标准日(周四),第三个是时候非标准日影响的周五。 (1). 标准日(非周四)规则的讨论: 对于一个标准日来说,调用工作班所遵循得规则如下: 判断初始值,如果初始值,则让第一个到达的列车装车完离开,如果初始值,则直接加两个工作班进行加煤直到1为止。 如果第一辆列车加满走后,时间更新到了,此时判断第二、三辆列车到达时间与的大小。若,则此时面临两种情况,第一种是直接用一个工作班加煤;第二种是用两个工作班一起加煤。用一个工作班对应的条件是:;用两个工作班对应的情形的条件是:或者。 如规则中第二步一样,接下来继续往下逐个更新时间,分别讨论,讨论的过程中应该注意:当一辆列车加满走后,依旧没有列车到达,那么则选择一个工作班工作;当一列车在装车的过程中,有列车到达,则到装车的列车离开后,调用两个工作班;当一个工作班在给煤台加煤的时候,来了列车,则判断此时煤台中的煤是否足够装一辆列车,如果不够,则迅速调用第二个工作队,如果足够一辆列车装满,则立即停下,迅速为列车装车;如果一个工作队在给煤台加煤的时候,煤台容量足够一辆列车转满的时候,若依然没有车来,那么继续往煤台加煤。 在为第一辆列车加煤的过程中,要逐个比较第二辆车与第三辆车到达的时间,如果加煤过程中有列车到达,则调用第二个工作班;在为第二辆列车加煤的过程中,只需要比较第三辆列车到达的时间,如果第三辆车到达,那么调用第二个工作班,反之则调用一个班。 原则一:每一次更新时间,都必须与之后没有到达的列车的时间进行对比,逐个分析。 原则二:在装车的过程中或者是在往煤台中加煤的过程中,如果有后面的列车到达的时间间隔足够小(可以认为是同时到达,但是同时到达与实际情况不符合),那么我们采取先到的列车先加煤。 (2). 对于非标准日(周四)的规则 对于周四,我们仍然采取先到先来的操作方式,先到先加。 周四整天都用两个工作班加煤 当大容量的列车到达时候,如果倒煤台里面的容量超过0.5个标准列车容量,如果不足0.5个标准列车容量,则先将倒煤台加满,然后向大容量列车加煤。 (3). 周五的操作规则 由于周五列车的到达会受周四影响,因此我们定义周五如下操作: 如果周五的安排受了周四影响,而不能在第一辆列车到达之前完成装满倒煤台,周五会直接调用第二个工作班。 如果周五的安排没有受周四的影响,那么周五调用第二次工作班的情形跟标准日一样的规则。 (三 )对调用第二工作班的次数的分情况讨论 根据上面的规则,我们每更新一次时间(装车的过车或者是加煤的过车),就把更新后的时间与后面列车到达的时刻做比较,然后确定是否调用第二个工作班。这部分讨论依然分成三个部分,即标准日的调用情况,非标准日(周四)的调用情况,以及周五第二个工作班调用的情况。 (1).对于标准日的讨论 标准日部分,一共分成了12种情形,这12种情形涵盖了在一个标准日中,三辆列车任意时刻到达所需要调用二个工作班的次数,很显然,一个标准日中,调用第二个工作班的次数有三种情形,即调用0次,调用1次,调用2次。 下面我们分别对这12种情形加以说明: 第1种:t1t1+5t2t2+7t3 在这种情形下: 需要满足的条件有: 在这种情形下,调用第二个工作班的次数为0,因为三辆列车到达的时间间隔的时间足够大,一个工作班足够应付,而且费用最省。 第2种:t1t1+5t2t3t2+7 在这种情形下: 需要满足的条件有: 在这种情形中,由于,第为二辆列车加煤的时候,第三辆列车到达,因此调用第二个工作班的次数是1。 第3种:t1t1+5t2t3t2+3 在这种情形下: 需要满足的条件有: 此时,在为第二辆列车装车的时候,第三辆列车到达,所以,这种情况下调用第二个工作班的次数是1。 第4种:t1t2t1+5t1+12t3t1+3 在这种情形下: 需要满足的条件有: 此时,在第一辆列车装满离开后,正在为第二辆列车加煤的过程中,第二辆列车到达,而后,第三辆列车到达时间在第二辆列车离开之后,因此只需要调用一次第二个工作班。 第5种情形:t1t1+12t1+5t1+3t3t2 在这种情形下: 需要满足的条件有: 在这种情况下,在第一辆列车装满离开后,正在为第二辆列车加煤的过程中,第二辆列车到达,而后,第三辆列车到达的时候,工作队还在为第三辆列车加煤的过程中,因此整个过程需要调用2次第二个工作班。 第6种情形:t1+8t3t1+5t2t1t1+3 在这种情形下: 需要满足的条件有: 在这种情况的时候,在第一辆列车装满离开后,正在为第二辆列车加煤的过程中,第二辆列车到达,第三辆车到达的时间在第二辆车离开之前,因此要调用2次第二个工作班。 第7种情形:t1t1+5t3t1+3t2 在这种情形下: 需要满足的条件有: 这种情况是在为第二辆车加煤的过程中,第二辆、第三辆车同时到达,因此要调用两次第2个工作班。 第8种情形:t1t2t1+3t1+11t3 在这种情形下: 需要满足的条件有: 这种情况下,只是在第一辆列车装车的过程中,第二辆车到达,第三辆列车与第二辆列车的间距时间很长,因此只需要调用一次第二工作班。 第9种情形:t1+7t1+3t3t1t2t1+11 在这种情形下: 需要满足的条件有: 这种情况需要用两次第二个工作班。 第10种情形:t1t1+11t3t2t1+3t1+7 在这种情形下: 需要满足的条件有: 这种情况也需要调用第二个工作班两次。 第11种情形: t1t1+11t3t2t1+3t1+4 在这种情形下: 需要满足的条件有: 这种情况的时候,需要调用两次第二个工作班。 第12种情形: t1t1+3t2t3 在这种情形下: 需要满足的条件有: 同样这种情形也需要调用两次第二个工作班。 (2) 非标准日(周四)调用第二个工作班次数的讨论: 通过分析,我们发现周四存在大容量的列车后,一共有四种情形: t0-t1-t2-t3-情形 这种情形表示三辆标准车均在大容量车之后到达,那么其操作总费用计算如下:总费用 其满足的条件是: 此时,需要调用4次第二个工作班。 t1-t0-t2-t3-情形 这种情形表示在大容量列车到达之前第一辆列车已经到达,两辆标准列车在其之后。这种情形有三种子情形: 子情形1:总费用 其满足的条件是: 此时,需要调用3次第二个工作班。 子情形2: 总费用 其满足的条件是: 此时,需要调用4次第二个工作班。 子情形3: 总费用 其满足的条件是: 此时,需要调用3次第二个工作班。 t1-t2-t0-t3-情形 这种情形表示在大容量列车到达之前有两辆标准列车到达,在其之后又一辆标准列车到达。这种情形分三种情况讨论如下: 子情况1: 总费用 其满足的条件是: 此时,需要调用4次第二个工作班。 子情况2: 总费用 其满足的条件是: 这种情况会调用4次第二个工作班。 子情况3: 总费用 其满足的条件是: 这种情况会调用4次第二个工作班。 t1-t2-t3-t0-情形 这种情形表示三辆标准列车均在大容量列车之前到达。这种情况也有三种子情形。 子情况1: 总费用 其满足的条件是: 这种情况会调用4次第二个工作班。 子情况2: 总费用 其满足的条件是: 这种情况会调用4次第二个工作班。 子情况3: 总费用 其满足的条件是: 这种情况会调用4次第二个工作班。 (四)每天调用第二个工作班的期望次数(1). 标准日调用第二个工作班的期望 由于我们的假设,每天都是独立的,因此对于标准日,就是离散变量,因此我们对其求期望,得到每天调用第二个工作班的期望值: (2)周四调用第二个工作班的期望 (3) 周五调用第二个工作班的期望 由于周四会对周五产生影响,因此,我们对周五调用第二个工作班进行调整,那么周五会调用第二个个班,我们认为周五调用第二个班的次数应该在标准日与标准日加1之间浮动,因此设定了一个浮动的区间,浮动区间如下: 综上所述,我们讨论完了所有的在一周之内的调用第二个工作班的期望次数, 对其进行加总后就会得到一年中调用第二个工作班的期望次数。 (五)总费用的期望 综上,一周内的总费用: 其中, 一周内的滞期总费用: 5.1.3 模型求解 模型求解过程我们matlab编程求概率、积分的方法,对上述模型进行求解。求解结果如下: (一)调用第二个工作班的次数的概率 计算调用第二个工作班的次数的概率我们用matlab蒙特卡洛模拟的方法求得,通过蒙特卡洛模拟次,然后分别求得在一个标准日和周四的情况下调用第二个工作班的概率及其期望次数。 (1)标准日调用第二个工作班的概率及其期望 标准日调用第二个工作班的概率及其期望计算matlab源代码见附录一,其运行结果如下:调用第二个工作班的次数调用第二个工作班的概率调用第二个工作班的期望次数情形一00.0情形二10.0.情形三10.0.情形四10.0.情形五20.0.情形六20.0.情形七20.0.情形八10.0.情形九20.0.情形十20.0.情形十一20.0.情形十二20.1.一个标准日调用第二个工作班的期望次数1.(2)非标准日调用第二个工作班的概率及其期望 非标准日调用第二工作队的概率及其期望次数的计算源代码见附录二,通过蒙特卡洛模拟次后,其运行结果如下:调用第二个工作班的次数调用第二个工作班的概率调用第二个工作班的期望次数情形一40.1540.616情形二30.17130.5138情形三40.11440.4576情形四30.11080.3325情形五40.28271.131情形六40.03520.1408情形七40.02990.1194情形八40.09490.3798情形九40.00590.0238情形十40.0030.0119一个标准日调用第二个工作班的期望次数3.7265(3)一年中调用第二个工作班的期望次数 全年中调用第二个工作班的次数=52×一周中的调用期望次数 =52×(标准日次数×5+周四的次数+周五的次数) 因此,根据这个公式,由于周五的期望次数是一个区间,因此,我们最终得到的一周的调用期望次数也为一个区间:14.80930.5 最后,求得一年中调用第二个工作班的期望次数=770次。 其上下浮动的区间是。 (二)期望费用计算结果 根据上面建立的总费用期望模型,利用matlab求三重积分,程序代码见附录三、四。最后得到如下的结果:(单位:万元)滞期费用操作费用总费用日非标准日8.785411.98420.7794周四34.480520.154.5805周87.192992.004179.1969月348.7716368.016716.7876年4185.25924416.1928601.4512滞期费用占用总费用的比例48.66% 综上,每一个月的滞期费用为348.7716万元,年总费用为8601.4512万元。5.2 问题三的模型5.2.1 模型建立 本问题中,厂方的可控变量在前面两个问题的基础上增加了一个,现在厂方可以安排列车的到达时间,并且让列车安装日调度安排到达,从而降低总费用。 通过分析,易得:如果要降低总费用,必须满足两个条件: (1)调度第二个工作队的次数尽量少,从而使得操作费用尽量少 (2)尽可能的不让列车等待,产生滞期费。 建立如下的模型: 总费用 该模型等价于: 5.2.2 问题三模型求解 对该模型求解,实际上是让列车到达的时间在520之内搜索3者的组合,使得总费用最小,也可以使调度第二次工作班的次数少,或者同时使知其费用最少。而我们知道调度第二次工作班的最小次数为0,且滞期费最小依然为0,如果能找到同时使得二者为0的方案,即可。我们对标准日、非标准日(星期四)和周五展开不同的讨论: (1)标准日的调度时间讨论 现在存在一种情形:列车到达时间5:0010:0017:00总费用10.8万元 可以看到在标准日中,存在着很多种组合使得总费用最低,因为在一个标准日中,即便是不让任何一个车等待产生滞期费,且不调动第二个工作班的情况,依然还有3个小时的富余时间。 因此,我们给出了另外的更加普遍的列车到达时刻区间: 此时要分两种情况: 情形一:第一辆列车第一辆列车第三辆列车到达时间费用10.8万元 情形二:第一辆列车第一辆列车第三辆列车到达时间费用10.8万元 标准日的整个调度计划按照第一辆车到达的时间逐步确定,最后的总费用为10.8万元。 (2)非标准日(周四)的调度时间讨论 对于星期四,根据前面讨论的结果,一共有4中大的情形,很显然我们能够排除2种情况,即:t1-t2-t3-t0的情形和t0-t1-t2-t3的情形。最后我们对余下的两种情况进行讨论: t1-t2-t0-t3情形 在这种情况下,存在这样的调度情形:t1t0t2t3时间煤量1.5581291314.517.520222430.5100.501.5001列车 在这种情形中,列车的调度时刻如下:第一辆标准列车第二辆标准列车大容量列车第三辆标准列车到达时刻5:009:0013:0020:00 这种情况下的总费用为: t1-t0-t2-t3情形 这种情况下存在一种极端的情况,其调度情况为:110.500.501.5123201816.515.5111851.5煤量时间t2,t3t0t1列车4 在这种情形中,列车的调度时刻如下:第一辆标准列车大容量列车第二辆标准列车第三辆标准列车到达时刻5:0011.:0020:0020:00 在这种情况下,第二辆车与第三辆车是同时到达,但这与实际不符,我们把情形理解成是两辆车的到达时间间距足够小。 这种情况的总费用为: 对比以上两种情形的总费用,我们认为第一种情况的日调度时刻表更加优化,能使得费用最低。 因此,在周四的列车调度计划安排如下:第一辆标准列车大容量列车第二辆标准列车第三辆标准列车到达时刻5:0011:0020:0020:00总费用33.6万元 (3)对周五的调度计划 由于周四对周五会产生影响,因此我们对周五也独立分析,根据上面我们定义的原则,对周五的调度计划作出如下安排:第一辆标准列车第二辆标准列车第三辆标准列车到达时刻6:0013:0020:00总费用11.1万元 5.3 问题四的模型建立及其求解本问题着力在解决调用第三个工作班能否降低年操作费用,因此我们利用模型证明第三个工作班的加入能否降低年操作费用,并且考虑是否能再装第四辆标准列车。5.3.1 能否调用第三个工作班我们先讨论第一个问题:加入新的工作班,能否降低操作费有一种情形:当有列车到达的时候,如果煤台中的容量,那么就会给该列车装煤,如果煤台中的容量,那么此时考虑调用几个工作班加煤,并且计算加煤过程中产生的所有费用(包括列车等待的滞期费)。下面我们分情况讨论: 当选择用两个工作队的时候的总费用: 当选择用三个工作队的时候的总费用:对比以上两种情况,很显然调用第三个工作班比调用两个工作班的费用要少。因此,调用第三个工作班可以降低年操作费。5.3.2 能否再装第四辆标准列车 根据前面的分析,我们知道现在全部使用两个工作班的情况下,每周至少要花费的时间是115个小时,如果增加一个车,需要增加35个小时,即每周总共需要150个小时,一周一共有24×7=168个小时,因此,在时间方面,是可以做到再装第四辆标准列车的煤。但是,由于目前滞期费用占总费用的比例达到了48.66%,因此再增加一辆标准列车,滞期费会大大增加,所以,我们建议不要再装第四辆标准列车。5.4 计算机模拟仿真5.4.1 仿真过程 基于上述的计算规则讨论,我们利用matlab进行了全过程的仿真,整个仿真过程着力解决的问题如下:(1)把整个一年看成是连续的,解决了之前模型讨论的每天独立(除了周四、周五之间)的弊端,仿真的过程考虑了每天之间的相互影响过程。(2)之前的模型中,我们假定了煤台的初始容量为1.5个标准列车容量,即倒煤台是满的。但是在仿真过程中,我们对于任意的给定的煤台初始容量,进行分类,设计了两种模式,一种模式是倒煤台的初始容量大于或等于一辆列车的容量,另外一种是小于一辆列车的容量。(3)仿真的年数设计为10000年,因此对于算法中初始容量可以任意给出,其误差可以忽略不计,不会影响整个过程的结果。5.4.2 仿真算法 着力解决如上三个问题,我们设计的仿真算法如下: stepA:赋初始值,费用f=0,滞时费用zs=0,调用第二个工程队的次数dd=0, i=1,表示周一,在1到7之间循环,j=1,表示第一周,t=24,表示 前一天最后一辆车装完时是24点。进入下一步; stepB:如果j<,继续执行,判断i=4,进入stepP,否则进入step3; 如果j>=,输出f,zs,dd;stepP:随机生成今天3列车的到达 时间t1,t2,t3。对上一天第三列车装完的时间t与今天第一列车t1 进行比较。进行2种情况的选择; stepB.1:t1>t时,调用2个工程队加煤到1,t1装完开走。更新dd;判断煤量,在step1和step2中选择一种; stepB.2:t1<t时,上一天最后一列车装完后,立即调用1个工程队开始运煤,直到装满或者t1到来。更新f。判断煤量,在step1和step2中选择一种; step1:t1车来时,煤量x>=1,t1车装1然后开走,进行三种情况的选择; step1.1:t1+3<t2,t1+3,t3时,用一个工程队加煤,直到加满或者t2车到来。更新总费用f、滞时费用zs。判断煤量,进行两种情况的选择; step1.1.1:x>=1时,t2装完开走。进行两种情况的选择; step1.1.1.1:t2+3<t3时,用一个工程队加煤,直到加满或者t2车到来。更新总费用f、滞时费用zs。判断煤量,进行两种情况的选择; step1.1.1.1.1:x>=1时,t3装完开走。更新总费用f、滞时费用zs,t3装完的时间t。i=i+1;进入stepB; step1.1.1.1.2:x<=1时,调用2个工程队加煤至1,t3装完开走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。i=i+1;进入stepB; step1.1.1.2:t2+3>t3时,用2个工程队加煤到1,t3装完开走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。 i=i+1;进入stepB; step1.1.2:x<=1时,调用2个工程队加煤至1,t2装完开走。更新总 费用f、滞时费用zs。进行2种情况的选择; step1.1.2.1:t2车装完时,t3未到。用1个工程队加煤,直到加满或者t2车到来。更新总费用f、滞时费用zs。判断煤量,进行两种情况的选择; step1.1.2.1.1:x>=1时,t3装完开走。更新总费用f、滞时费用zs,t3装完的时间t。i=i+1;进入stepB; step1.1.2.1.1:x<=1时,调用2个工程队加煤至1,t3装完开走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。i=i+1;进入stepB;step1.1.2.2:t2车装完时,t3已到。调用2个工程队加煤至1,t3装完开走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。step1.2:t1+3>t2,t1+3<t3时,用2个工程队加煤到1,t2装完开走。更新调用 次数zs;进行2种情况的选择; step1.2.1:t2装完时,t3未到。用1个工程队加煤,直到加满或者t3车到来。判断煤量,进行2种情况的选择; step1.2.1.1:x>=1时,t3装完开走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。i=i+1;进入stepB; step1.2.1.2:x<1时,调用2个工程队加煤至1,t3装完开走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。i=i+1;进入stepB; step1.2.2:t2装完时,t3已到。调用2个工程队加煤至1,t3装完开走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。i=i+1;进入stepB;step1.3:t1+3<t2,t1+3<t3时,用2个工程队加煤到1,t2装了走。再用2个工程队加煤到1,t3装了走。更新调用次数dd、总费用f、滞时费用zs、t3装完的时间t。i=i+1;进入stepB;step2:t1车来时,煤量x<=1,调用2个工程队,加煤到1,t1车装完开走。更新调用次数;进入step1下面三种情况的选择;step3:用均匀分布随机产生今天的4列车的到达时间,T,t1,t2,t3,t4,根据到达时间,进行2种情况的选择; step3.1:T最早时,根据煤量,进行三种情况的选择; step3.1.1:x=1.5时,先给T装1.5,立即用2个工程队加煤到1,给T装完开走,用2个工程队加煤到1,给t1装完开走,用2个工程队加煤到1,给t2装完开走,用2个工程队加煤到1,给t3装完开走,更新dd,f,zs,t;i=i+1;进入stepB; ste