动车组的一次检修包括a,b,c三个工序。每个工序拥有的作业车间和需要花费的时间如表1所示,相同工序不同车间的耗费时间相同。动车组按a→b→c顺序进行检修,完成一个检修工序后驶入下一个有空闲位置的车间进行下一个检修工序,若下一个工序所有车间都处于占用状态,则动车组需要在上一个车间中等待。动车运用所某12小时内每十五分钟来1辆待检修的动车,按照目前的车间设置,维修完所有这些动车组总共需要多长时间? 请给出安排检修的最佳方案。假设第一辆动车组抵达动车运用所时,所有检修车间都是空闲的,且车间之间的转换时间忽略不计。
工序类别 车间数量(个) 耗费时间(小时)
a 3 1
b 8 2
c 5 1.5
请问这题思路是什么
首先计算每个工序每个小时的处理能力a=3,b=4,c=3.333...,那么三个工序最容易出现处理能力瓶颈的就是a,保证减少排队的最佳方案是先使a处于饱和,然后是C,b是最不容易排队的
优先a,然后c,最后b
这道题是模拟题,可以想成动车进来后,若a工序有空余的车间,则进入a检测,完成后,若b工序有空余的车间,则进入b检测,完成后,若c工序有空余的车间,
则进入c检测,完成后,这里假设有一个d工序,则动车进入d,这里的d的车间可以看成是无限,从而结束这个操作;总的来说,对于
每一个工序,我们都要先判断该工序是否完成,是否能够进入下一个工序(即判断当前工序能不能出和能不能入下一个工序的问题))
判断因a取决于b,b取决于c,因此我们这里可以逆向判断,按照c,b,a的顺序对每一个工序判断能不能出和进入下一个工序,如果能出和入,当前工序就能能执行
出的操作(即进入到下一个工序),如果不能出和入,当前工序就不做任何操作,接着判断上一个工序;
举例说明:比如对于工序c,如果c的工序完成了,它可以进入d(无限的),那么c就执行出的操作,我们再判断工序b,如果b的工序完成了,且c工序有空余的车间,则b可以执行出操作,进入c;如果b没有完成工序,则不做任何操作,接着判断a的工序是否完成,以及b是否有空余的车间。
由于c,b,a三个工序之间是独立的,可以写成一个循环依次判断!