背包问题之贪心算法

本文介绍了经典的背包问题,包括01背包和部分背包问题。01背包要求物品要么全放要么不放,而部分背包允许选取物品的一部分。针对部分背包问题,文章通过贪心算法进行了解决,解释了贪心策略的步骤,并通过实例展示了如何最大化背包中物品的总价值。在示例中,性价比最高的物品被优先考虑,并逐步将剩余容量分配给其他物品。
摘要由CSDN通过智能技术生成

经典的背包问题有两种:

        1. 01背包问题-->01背包-动态规划_KING素清风的博客-CSDN博客

                【01背包问题这里就不详细介绍了,感兴趣的可以看我的另一篇博客】

        2.部分背包问题-->有一个背包,容量是C,有若干个物品,价值各不相同,

                                          重量也各不相同。接下来请你选择一部分物品装入背包,

                                          要保证不超过背包的容量的前提下,使背包中物体的总价值最大。

                                          允许选择一件物品的一部分。【与01背包的不同之处】

                2.1  贪心算法:每次都做出对于目前情况最好的选择,注意这里说的使对于目前情况。

                                          也就是说寻求问题对于决策时刻的局部最有解。而不是对于整个问题。

                                          所以贪心算法往往只能得到最优解的近似解,对于有些问题使用贪心算                                            法就不太合适了。

                        贪心:哈哈,喜欢占小便宜。笑死

 贪心详解:贪心法通常一自顶而下的方式进行,分阶段工作,以迭代的作出相继的贪心选择。每做一次贪心选择就将所求问题简化为规模更小的子问题。在每一个阶段总是选择认为当前最好的方案,然后从小的方案推广到大的方案解决问题。

解题步骤:

                循环求解--->求出可行解的一个解元素-->由所有解元素组合成问题的一个可行解

问题模拟:

        物品1-->价值:9  重量:4    

        物品2-->价值:3  重量:6

        物品3-->价值:1  重量:3

        物品4-->价值:6  重量:2

        物品5-->价值:5  重量:5

        假设背包的容量为:10

        一:计算性价比

                物品1:2.55   

                物品2:0.5

                物品3:0.33

                物品4:3

                物品5:1

        二:将性价比最高的 物品 4 放入背包

                 C = 10 - 2 = 8

                 v  = 0 + 6 = 6

         三:将物品1放入背包

                    C = 8 -  4 = 4

                       V = 6 + 9 = 15

        四:将物品5的部分放入背包中

                    4 = 5x  -- >     x = 0.8

                     C = 4 - 5*0.8 = 0

                V = 15+5*0.8 =  19

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@陈一言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值