美文网首页移动开发程序员数据结构和算法分析
背包问题的动态规划解决方案和蛮力解决方案

背包问题的动态规划解决方案和蛮力解决方案

作者: alonwang | 来源:发表于2017-03-19 16:04 被阅读85次

给定n个重量为w1,w2,...,wn的价值为v1,v2,...,vn的物品和承重量为W的背包,求这些物品中最有价值的一个子集,并且这些物品是不可分割的。

  1. 动态规划

这里的思想和上一篇文章基本相同
上一篇
设F(i,j)为能够放进承重量为i的背包中的钱i个物品中最有价值子集的总价值
按照是否包含第i个物品,分为两组,不包含第i个物品,那么F(i,j)=F(i-1,j).
包含第i个物品,F(i,j)=F(i-1,j-w[i])+v[i]。这里还忽略了一种情况如果w[i]>j,也就是说物体i比背包的最大容纳量还要大,那么F(i,j)=F(i-1,j)。
有下面这个公式


(1) F(i,j)=max(F(i-1,j),F(i-1,j-w[i])+v[i])    j>=w[i]
(2) F(i,j)=F(i-1,j)                            j<w[i] 
#include <iostream>
using namespace std;
int maxProfit(int num,int val[],int w[],int n)
{
    int F[num+1][n+1]={0};
    int i,j;
    for(i=1;i<=num;i++)
        for(j=1;j<=n;j++)
        {
            if(j-w[i]>=0)
                F[i][j]=max(F[i-1][j],F[i-1][j-w[i]]+val[i]);
            else
                F[i][j]=F[i-1][j];
        }
    return F[num][n];
}
int main()
{
    int num=4;
    int val[num+1]={0,12,10,20,15};
    int w[num+1]={0,2,1,3,2};
    cout<<maxProfit(num,val,w,5);
    return 0;
}

它的时空效率都是O(nW)。

  1. 蛮力法
    使用蛮力法首先要求出n个物体的所有子集
    再不断比较找出总质量不大于背包容量的子集中使总价值取最大者。对n个物体有2n个子集,所以蛮力法的最低算法复杂度为2n,也就是说基本是不可行。这里可以利用BRGB来生成子集。生成子集后面的就无关紧要了。今天到此为止,跑步去了!!!

相关文章

  • 背包问题的动态规划解决方案和蛮力解决方案

    给定n个重量为w1,w2,...,wn的价值为v1,v2,...,vn的物品和承重量为W的背包,求这些物品中最有价...

  • 算法学习收藏

    动态规划问题 动态规划(最优子结构和重叠子问题的比较) 动态规划解决01背包问题 01背包问题 最优二叉查找树 《...

  • 动态规划

    动态规划解决方案从底部开始解决问题, 将所有小问题解决掉, 然后合并成一个整体解决方案, 从而解决掉整个大问题 。...

  • 初识动态规划

    0-1 背包问题 备忘录 动态规划-二维数组 动态规划-一维数组 0-1 背包问题升级版 回溯算法 动态规划-二维...

  • 2019-07-10 数据结构和算法(妙味杜鹏)

    八皇后 A *寻路 背包问题(动态规划方法) 背包问题(贪心算法)

  • 动态规划

    0-1背包问题 自己实现的0-1背包问题的动态规划解法,先贴上吧,动态规划原理解释有空再写。

  • 背包问题

    背包问题属于典型的动态规划问题。这里我们将详细介绍0-1背包,完全背包和多重背包问题 一、 0-1背包 有N件物品...

  • 【算法打卡60天】Day31初识动态规划:如何巧妙解决“双十一”

    Day31 动态规划基础和01的背包问题基础版。1.如何学习动态规划动态规划比较适合用来求解最优问题,比如求最大值...

  • 2022-02-19 动态规划高频题专题【1】

    动态规划基本类型 dp基础 背包问题 打家劫舍 股票问题 子序列问题 进阶动态规划 深入理解动态规划过程 定义dp...

  • 动态规划.背包问题

    动态规划 之 0-1背包问题 【背包问题】 现有n个物品,价值为`$$v_1,v_2....v_n$$ 重量为 现...

网友评论

    本文标题:背包问题的动态规划解决方案和蛮力解决方案

    本文链接:https://www.haomeiwen.com/subject/cgnmnttx.html