zoukankan      html  css  js  c++  java
  • 算法设计与分析——背包问题求解

    假设,有4个体积分别为2,3,5,6;价值分别为3,4,5,7的物品;背包容量为11。求解下列背包问题。

    1、简述0-1背包问题,给出此问题求解问题

    问题描述:

    设U={u1,u2,...un}是一个准备放入容量为C的背包中n项物品的集合,0-1背包问题是用U中的一些物品来装满背包,这些物品的总体积不超过C,然而需要使它们的总价值最大。

    S 体积:2,3,5,6

    V 价值:3,4,5,7

    C 容量:11

    n 物品总数:4

    关系递推式如下:

    image.png

    自下而上填表法:

    ①创建表格并为了防止越界补0

    i\j 0 1 2 3 4 5 6 7 8 9 10 11
    0 0 0 0 0 0 0 0 0 0 0 0 0
    1 0
    2 0
    3 0
    4 0

    ②当i=1时,此时Si=2,Vi=3

    i\j 0 1 2 3 4 5 6 7 8 9 10 11
    0 0 0 0 0 0 0 0 0 0 0 0 0
    1 0 0 3 3 3 3 3 3 3 3 3 3
    2 0
    3 0
    4 0

    ③当i=2时,此时Si=3,Vi=4

    i\j 0 1 2 3 4 5 6 7 8 9 10 11
    0 0 0 0 0 0 0 0 0 0 0 0 0
    1 0 0 3 3 3 3 3 3 3 3 3 3
    2 0 0 3 4 4 7 7 7 7 7 7 7
    3 0
    4 0

    ④当i=3时,此时Si=5,Vi=5

    i\j 0 1 2 3 4 5 6 7 8 9 10 11
    0 0 0 0 0 0 0 0 0 0 0 0 0
    1 0 0 3 3 3 3 3 3 3 3 3 3
    2 0 0 3 4 4 7 7 7 7 7 7 7
    3 0 0 3 4 4 7 7 8 9 9 12 12
    4

    ⑤当i=4时,此时Si=6,Vi=7

    i\j 0 1 2 3 4 5 6 7 8 9 10 11
    0 0 0 0 0 0 0 0 0 0 0 0 0
    1 0 0 3 3 3 3 3 3 3 3 3 3
    2 0 0 3 4 4 7 7 7 7 7 7 7
    3 0 0 3 4 4 7 7 8 9 9 12 12
    4 0 0 3 4 4 7 7 8 10 11 12 14

    可得出选得的物品最大价值为14。

    2、简述分数背包问题,给出此问题的求解过程

    问题描述:

    分数背包问题是在背包问题的限制内将物品装满背包,使其物品的总价值最大。不同之处在于,可以装入一件物品的一部分。首先装入Vi/Si最大的物品,若Vi/Si < S,则装入Vi/Si第二大的物品,以此类推,将背包装满为止。若Vi/Si > S时,可以只装入该物品的一部分,直至装满背包。(Vi为第i个物品的价值,Si为第i个物品的体积 )

    S 体积:2,3,5,6

    V 价值:3,4,5,7

    C 容量:11

    n 物品总数:4

    number 1 2 3 4
    Si 2 3 5 6
    Vi 3 4 5 7
    Vi/Si 1.5 1.34 1 1.16

    按照比例,从大到小依次放入背包

    ∵V1/S1=3/2=1.5

    ∴将物品1装入背包

    此时,背包剩余空间为11-2=9,价值为0+3=3

    ∵V2/S2=4/3=1.34

    ∴将物品2装入背包

    此时,背包剩余空间为9-3=6,总价值为3+4=7

    ∵V4/S4=7/6=1.16

    ∴将物品4装入背包

    此时,背包剩余空间为6-6=0,总价值为3+4+7=14

    可得出选得的物品最大价值为14。

  • 相关阅读:
    准备重启blog。。。
    愿我成功省一。
    [LUOGU]P5502 [JSOI2015]最大公约数
    [LUOGU]P3400 仓鼠窝
    [LUOGU]P5149 会议座位
    OI退役记
    新开博客园~~
    1108 模拟赛
    牛客1102
    题解 CF21B 【Intersection】
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/15731540.html
Copyright © 2011-2022 走看看