运筹学问题,如图。 希望能提供可靠有效的思路。(此题最有可能对应动态规划部分,当然也可能不是)

如题所述

说一下我的思路,不够严密,仅抛砖引玉,有错误请指正。

首先用n1A,n1B,n2A,n2B...nxA,nxB来代表各零件在A,B机床上的加工时间
(1,2,3等代表顺序,不代表原题的零件编号)

然后简化一下规模,用3个零件,用下面图形来分析问题:

如果如图1所示的情况, 即n2A<n1B,n3A<n2B
那么总加工时间是n1A+n1B+n2B+n3B


如果如图2所示情况,即n2A>n1B,n3A>n2B
那么总加工时间是n1A+n2A+n3A+n3B



如果如图3所示情况,即图1,图2的混合情况
那么总加工时间是
n1A+n1B+n3A+n3B



从上面可以看出,无论哪种情况,
还原规模后,总加工时间可以统一表述为
n1A+max{n1B,n2A}+max{n2B,n3A}+...max{nxB,n(x+1)A}+n6B

需要求解的就是上式的最小值,及此时的排列情况。
分两部分考虑
1) max那部分
2)n1A+n6B

因为1)占比较大,优先考虑
max{n1B,n2A}+max{n2B,n3A}+...max{nxB,n(x+1)A}
这里有个朴素的思路
一组数字,两两组合后,各组合最大值之和什么场合最小?
比如1,2,3,4两两组合,有3种情况,分别是
12 34
13 24
14 23
3种情况,各组合的最大值之和分别是6,7,7
那么可以看出,
各组合的两个数字之差的绝对值之和越小,各组合的最大值之和最小

那么需求解各零件怎么排列时,下列式子可能取得最小值

|n1B-n2A|+|n2B-n3A|+......+|n5B-n6A|
 

关于绝对值之和最小值的求解, 具体请参考
http://wenku.baidu.com/link?url=AtlNnxwJOF7tYenXf0m2yoTBV5nymXIbS80YpVYeF2RpI-J1-mQKo5JpGZCg4TqoT2pfS5q1g-Orf9WbbNIW9yOPKPFqKJgcuJ9eH2XvXza
要点是:在上面各因子同号(都是正号或负号)的情况下,可能取得最小值

6个零件的全排列是6!=720, 穷举还是太麻烦了
那看一下题中加工工时有没有什么地方能快速切入的
1)6个零件的A工时之和是29.3, B工时之和是27.9
由此看来,n1B-n2A ,n2B-n3A等,都取负值的容易实现

2) A工时最短的零件是1号零件 (3.2) ,恰好有1个且只有一个零件(4号零件)的B工时短于3.2;
那么4号零件排第一位(),1号零件排第2位,又恰好1号零件的B工时较大(6.3), B工时大于6.3的零件有且只有1个,就是3号零件,那么3号零件要排第3位

好了,前3位定下来的,后3位全排列也才6种可能,
各种情况比较一下,得出下面情况,总工时最短





如果说不限于6个零件,要考虑一般情况的解法
感觉是NPC问题,我想不出最优解的办法 .......

温馨提示:答案为网友推荐,仅供参考
相似回答