算法教给我的人生道理-贪婪算法

算法教给我的人生道理-贪婪算法

在有些情况下,完美是优秀的敌人

最近在自学《算法图解》,真是一本很棒的入门书,更是教给我一些人生道理。
背包问题提到了贪婪算法,当背包能拿的东西有限时,就优先拿能装进背包的价值最大的那个就好了。尽管不一定是最优解,却是个优秀的近似解。顿时豁然开朗。
”在有些情况下,完美是优秀的敌人。有时候,你只需找到一个能够大致解决问题的算法,此时贪婪算法正好可派上用场,因为它们实现起来很容易,得到的结果又与正确结果相当接近。“真是点醒了人生。

案例介绍

假设你是个贪婪的小偷,背着可装35磅(1磅≈0.45千克)重东西的背包,在商场伺机盗窃各种可装入背包的商品。你力图往背包中装入价值最高的商品,你会使用哪种算法呢?同样,你采取贪婪策略,这非常简单。
(1) 盗窃可装入背包的最贵商品。
(2) 再盗窃还可装入背包的最贵商品,以此类推。
只是这次这种贪婪策略不好使了!例如,你可盗窃的商品有下面三种。
算法教给我的人生道理-贪婪算法_第1张图片
你的背包可装35磅的东西。音响最贵,你把它给偷了,但背包没有空间装其他东西了。
算法教给我的人生道理-贪婪算法_第2张图片
你偷到了价值3000美元的东西。且慢!如果不是偷音响,而是偷笔记本电脑和吉他,总价将为3500美元!
算法教给我的人生道理-贪婪算法_第3张图片
在这里,贪婪策略显然不能获得最优解,但非常接近。不过小偷去购物中心行窃时,不会强求所偷东西的总价最高,只要差不多就行了。

[1]: 《算法图解》, [美] Aditya Bhargava, 译者: 袁国忠.

你可能感兴趣的:(算法,算法)