背包问题的算法登上算法、递归算法、贪婪算法、动态规划算法利用matlab编程实现我把我仅有的分都给了
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 09:59:45
背包问题的算法登上算法、递归算法、贪婪算法、动态规划算法利用matlab编程实现我把我仅有的分都给了
背包问题的算法
登上算法、递归算法、贪婪算法、动态规划算法
利用matlab编程实现
我把我仅有的分都给了
背包问题的算法登上算法、递归算法、贪婪算法、动态规划算法利用matlab编程实现我把我仅有的分都给了
1)登上算法
用登山算法求解背包问题 function []=DengShan(n,G,P,W) %n是背包的个数,G是背包的总容量,P是价值向量,W是物体的重量向量 %n=3;G=20;P=[25,24,15];W2=[18,15,10];%输入量 W2=W; [Y,I]=sort(-P./W2);W1=[];X=[];X1=[]; for i=1:length(I) W1(i)=W2(I(i)); end W=W1; for i=1:n X(i)=0; RES=G;%背包的剩余容量 j=1; while W(j)
首先建立一个堆栈,里面存放的是物品信息。算法开始后,按照一定的次序存放物品,每放进去一个物品,就检查是否越界,如果没越界,就继续选择物品放入(入栈);如果越界,就退出当前物品(出栈),当正好装满一个背包时,记录当前栈到一个数组,并退出顶端物品(出栈),往后放物品……一直到栈空为止,这样可以找到所有最佳存放方法。...
全部展开
首先建立一个堆栈,里面存放的是物品信息。算法开始后,按照一定的次序存放物品,每放进去一个物品,就检查是否越界,如果没越界,就继续选择物品放入(入栈);如果越界,就退出当前物品(出栈),当正好装满一个背包时,记录当前栈到一个数组,并退出顶端物品(出栈),往后放物品……一直到栈空为止,这样可以找到所有最佳存放方法。
收起
什么呀?