Greedy Method
Greedy Method
3.1Introduction
解决最优化问题,最大最小问题
P: A->B
对于任何一个方法不止一种解决方法
- feasible (可行性)solution require:
satisfy some condition limitations
-
Optimization problem require:
min result/max result Optimal solution (feasible + optimal) only one
这三种方法都是可以使用去解决最优化问题
example :
collect feasible solution->choose the optimal
假设你想买一辆车,你希望这辆车是best car,那么你如何选择这些车?
check all the car (time consuming)
select brand ,找出你最喜欢的车,这是用你自己的method去选择的,基于不同的选择标准优惠不同的结果。不用检查所有的车,只需要选择一些,最终选出你想要的,这种方法就叫做greedy
再举一个例子,你的公司招人,你经过重重测试选择除了一个人,你这里并没有把所有的人都看一遍,只是通过某些条件过滤掉了某些人,然后通过这种method选出了最佳的人,这种方法就是贪心。
follow known method 去解决问题,你就能够很快的去解决问题
3.1 Knapsack Problem
把东西装进背包,在容量允许的情况下获得更多的利润:
constraint: weight < 15kg
我们可以找出很多的feasible解,但是这并不是最优解
是选择最小的重量/选择profit大的?
先计算p/w的比值:
input:谁的profit/weight越好,就先放入
这里算到最后只剩下2kg,但是这个p/w = 1.3的产品需要3kg的重量,因为是divisible,所以我们可以只取2/3。
最终的利润:
这里满足constraint,所以feasible