从上个星期就一直卡着的用队列式分支界限法解装载问题终于在今天告破,心里那个激动啊,想想为什么一个星期都没有找出错误呢,是因为我自己只看代码而不去进一步推敲他,今天自己在草稿纸上推导了一遍,一下子就发现错误了,那么为什么我以前不推导呢,太懒了呗。呵呵。言归正传吧,下面贴出我的代码,供自己以后参考使用。
2009/12/4修改如下
今天和老师讨论的时候发现前面的代码有错误,是在最优解结构那边错了,前面我举的例子是[10,40,40],这样的例子太特殊,所以没有发现问题。在确定最优解的时候,前面得到的bestw不能保证就是最有的,因为后面可能还有更优的,因此必须得遍历全部以后得到的bestw才是要求的bestw,因此我们不能再前面就输出最优解。如果只有一个最优解结构的话,那么久输出那么一个,但是如果存在多个最优解结构的话,那么输出的是最有找到的那个最优解结构。这里我还没有解决如何输出最前面的那个最优解结构,如果有人能再我的基础上改进下的话,可以留言,大家交流下,当然可能我一开始的构思就是错误的,导致后面想改也很难,大家可以把自己的代码贴出来。
下面是我更正过的代码: