最优装载问题课程设计
Ⅰ 装载问题 PASCAL 高手来帮帮
^我看的没错的话,抄你这个程序用的袭搜索,时间复杂度为(2^n),n只要到16你的程序准超时。所以搜索不是这个题的最优算法。这个题的最优算法是DP。很明显是个背包问题,我直接给你DP方程,你用2个for循环OK。
f[i,j]=max(f[i-1,j],f[i-1,j-w[i]]+1);
程序再怎么剪枝也没用啊,我如果n=31,就有2*10^9中可能,搜索肯定过不了,这个题就是动态规划,你从网上查一下DD牛的背包九讲。这个题属于第一个类型。
好吧……我错了……我不是很擅长剪枝。
价值怎么不是1?他要求的是最大的集装箱数目。那每装上一个,自然价值+1,你加个w[i]算什么?你的方程含义是在不超过最大容量的情况下,最多装的重量为多少。显然不对。
Ⅱ 将最优装载问题的贪心算法推广到2艘船的情形,贪心算法仍能产生最优解吗
贪心算法不能产生最优解。
两艘船的装载问题,是先装完第一艘,再装第版二艘,所以权就必须把第一艘尽可能的装满,才能使总的装载量更多。
对于一个具体问题,要确定它是否具有贪心选择的性质,必须证明每一步所作的贪心选择最终能得到问题的最优解,通常可以首先证明问题的一个整体最优解,是从贪心选择开始的,而且作了贪心选择后,原问题简化为一个规模更小的类似子问题。
(2)最优装载问题课程设计扩展阅读:
两艘船的装载问题需要用的是回溯法,有了问题的解空间后,还需要将解空间有效地组织起来,使得回溯法能方便地搜索整个解空间,通常将解空间组织成树或图的形式。
如果在当前的扩展结点处不能再向纵深方向移动,则当前的扩展结点就成为死结点。此时应往回移动(回溯)至最近的一个活结点处,并使其成为当前的扩展结点。回溯法以上述工作方式递归地在解空间中搜索,直至找到所要求的解或解空间中已无活结点时为止。
此外,贪心算法的每一次操作都对结果产生直接影响,而动态规划则不是。贪心算法对每个子问题的解决方案都做出选择,不能回退;动态规划则会根据以前的选择结果对当前进行选择,有回退功能。
Ⅲ 急求java实现最优装载问题。。。。。。。。。。。
是不是先将集装箱按照重量排个序,然后先装最轻的,依次装上去,当第i+1个装上去超过c时,就装i个。
Ⅳ 最优装载问题 c++
这个可以用贪心法去计算得出最优解,或者接近最优解,我有这方面的例子,要的话,跟我说一下呗
Ⅳ 如何证明最优装载问题具有贪心选择性质
设箱子重量从小到大(x1,x2,...,xn),若集合a是最优装载问题的一个最优解。a中第一个箱子为k。若k=1,a就是一个满足贪心性质的最优解。假如当k>1,令b=a-{k}+{1},因为wk>=w1,则b中的总重量小于等于a中的总重量,a是最优解,则b也是最优解,而b是选择以箱子1为开始的最优解。可知总存在以贪心选择开始的最优解。
Ⅵ 贪心算法的最优装载问题
void loading(W[],X[],c,n)
{
for(i=1,i<n,i++)
1.void loading(int W[],int X[],int c,int n)
2.没有定来义自i;
3.for(;;)是冒号,非逗号
Ⅶ 如何证明最优装载问题具有贪心选择性质
设某种货币系统为(1,5,10,25)四种币值(单位:元),要用最少的币数找出 n元钱,
问:能否用贪心算法进行求解,并证明。(不要求写算法) 参考解答:贪心性质(最大面额优先选最多)证明:
对 n<=25的情况,易由穷举得证。
当 n>25时,设 n=1*a1+5*a2+10*a3+25*a4
为了使 a1+a2+a3+a4最小,易知:
a1<5,若 a1>=5,可将 5个 1元兑换为 1个 5元,币数减少。
a2<2,若 a2>=2,可将 2个 5元兑换为 1个 10元,币数减少。
当 a2=0时,a3<3,若 a3>=3,可将 3个 10元兑换为 1个 5元和 1个 25元,币数减 少。
当 a2>0时,a3<2,若 a2>=2,可将 1个 5元和 2个 10元兑换为 1个 25元,币数减 少。
即,为了使 a1+a2+a3+a4最小,所使用的 1、5、10元币的币数的上限为: a1=4,a2=0,a3=2或 a1=4,a2=1,a3=1
则所使用的 1、5、10元币的币值上限为:
4*1+0*5+2*10=24或 4*1+1*5+1*10=19
均不超过 25,因此,为了使 a1+a2+a3+a4最小,应使 a4达到最大。贪心选择性质得 证。
最优子结构性质证明:
当 a4的值确定后,为了使 a1+a2+a3+a4达到最小,须使 a1+a2+a3达到最小,仍为同 型的最优问题。
Ⅷ 装载问题的贪心选择性质如何证明
设箱子重量从小到大(x1,x2,...,xn),若集合A是最优装载问题的一个最优解。A中第一个箱子为k。若k=1,A就是一个满足贪心性质的最优解。假如当k>1,令B=A-{k}+{1},因为Wk>=W1,则B中的总重量小于等于A中的总重量,A是最优解,则B也是最优解,而B是选择以箱子1为开始的最优解。可知总存在以贪心选择开始的最优解。
Ⅸ 最优装载问题求解
动态规划经典问题,网上搜0-1背包