背包问题的算法登上算法、递归算法、贪婪算法、动态规划算法利用matlab编程实现我把我仅有的分都给了
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 17:22:11
![背包问题的算法登上算法、递归算法、贪婪算法、动态规划算法利用matlab编程实现我把我仅有的分都给了](/uploads/image/z/6847281-9-1.jpg?t=%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%9A%84%E7%AE%97%E6%B3%95%E7%99%BB%E4%B8%8A%E7%AE%97%E6%B3%95%E3%80%81%E9%80%92%E5%BD%92%E7%AE%97%E6%B3%95%E3%80%81%E8%B4%AA%E5%A9%AA%E7%AE%97%E6%B3%95%E3%80%81%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%AE%97%E6%B3%95%E5%88%A9%E7%94%A8matlab%E7%BC%96%E7%A8%8B%E5%AE%9E%E7%8E%B0%E6%88%91%E6%8A%8A%E6%88%91%E4%BB%85%E6%9C%89%E7%9A%84%E5%88%86%E9%83%BD%E7%BB%99%E4%BA%86)
背包问题的算法登上算法、递归算法、贪婪算法、动态规划算法利用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)
首先建立一个堆栈,里面存放的是物品信息。算法开始后,按照一定的次序存放物品,每放进去一个物品,就检查是否越界,如果没越界,就继续选择物品放入(入栈);如果越界,就退出当前物品(出栈),当正好装满一个背包时,记录当前栈到一个数组,并退出顶端物品(出栈),往后放物品……一直到栈空为止,这样可以找到所有最佳存放方法。...
全部展开
首先建立一个堆栈,里面存放的是物品信息。算法开始后,按照一定的次序存放物品,每放进去一个物品,就检查是否越界,如果没越界,就继续选择物品放入(入栈);如果越界,就退出当前物品(出栈),当正好装满一个背包时,记录当前栈到一个数组,并退出顶端物品(出栈),往后放物品……一直到栈空为止,这样可以找到所有最佳存放方法。
收起
什么呀?