背包问题高维线性规划解

背包问题是一个1896年提出的经典问题,在100余年的时间里出现了许多变种,而他最早的形式是01背包。
###大意是指背包容量V,有n个物体每个物体体积ViV_iVi,质量MiM_iMi,问在空间允许下,可装入物体的最大质量总和为多少.

不难贪心的想到当物体的密度越大时,他的效益也就越高,那么…
学过背包的朋友看到这里可能就要笑了,因为这个贪心明显是错的,但至于我为什么要提这个贪心,后面再说。
为了防止误导大家,我先讲一下01背包的正解:
####枚举:不难发现状态数只有2n2^n2n个,然后…
####动态规划:定义dpi,jdp_{i,j}dpi,j为第放入i个物体,耗用j的空间的最大质量,O(Vn)即可做出来
ps:动态规划第二维可以滚动

#线性规划
看完正解之后,然后我来讲一讲背包问题的本质:
##背包问题本质是一个线性规划问题
##背包问题本质是一个线性规划问题
##背包问题本质是一个线性规划问题
重要的事说3遍。

关于线性规划,如果学过高中必修5,在不等式那一章有提到,其中的例题就是一个n=2的完全背包问题
如果没有学过必修5,也没有问题,线性规划是一个极易理解的方法。

不过,首先,你要确保你学过平面直角坐标系(-_-)///

对于平面上的一个点,我们可以用向量(x0x_0x0,y0y_0y0)来表示,
对于拓展到高维的情况,也可以用一个对应维度的向量表达:(t0t_0t0,t1t_1t1,t2t_2t2,…,tnt_ntn)

对于平面上的一条直线我们可以很容易表示出起显函数表达式:y=ax+by = ax + by=ax+b
我们称这种形式为斜截式,这种形式对于斜率为正负无穷的直线无法表示
故在此引入直线的一般式: Ax+By+C=0Ax + By + C = 0Ax+By+C=0,又称为直线方程<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值