多背包问题

本文探讨了多背包问题的解决方案,分别使用贪心算法和动态规划结合整数规划来求解。贪心算法通过每次尽可能填充背包达到局部最优,而动态规划则确保全局最优解,但求解速度较慢。动态规划首先找到所有可能的背包装满方案,然后用整数规划找出最优解。
摘要由CSDN通过智能技术生成

多背包问题

已知:运送一批物品,质量和需求数量如下:
   质量: 26, 30, 40, 56, 60, 76, 80, 86, 90, 100, 110, 116, 120, 176, 180, 200
   数量: 2, 10, 8, 16, 80, 6, 32, 4, 36, 4, 10, 8, 18, 40, 16, 8

求解:最小需要承重为600的背包多少个?

解答:

  • 贪心算法 + 整数规划
  • 动态规划 + 整数规划

贪心算法 + 整数规划

  • 整体思路:
      一个背包一个背包的装入,每次将背包最大程度的装满(整数规划),直至所需物品全部装入。
  • 贪心算法:
      每次将背包最大程度的装满
  • 整数规划:
      数量, x 1 , x 2 , . . . , x 22 x_1,x_2,...,x_{22} x1,x2,...,x22
      maximize:   26 ∗ x 1 + 29 ∗ x 2 + . . . + 201 ∗ x 22 26 * x_1 + 29 * x_2 + ... + 201 * x_{22} 26x1+29x2+...+201x22
      S.T.:
         26 ∗ x 1 + 29 ∗ x 2 + . . . + 201 ∗ x 22 ≤ 600 26 * x_1 + 29 * x_2 + ... + 201 * x_{22} \leq 600 26x1+29x2+...+201x22600
         0 ≤ x 1 ≤ 2 , i n t e g e r 0 \leq x_1 \leq 2, integer 0x12,integer
        
  • 10
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值