算法导论之第十六章-贪心算法

也称作贪婪算法(Greedy Algorithm),通过做一系列的选择来给出某一问题的最优解。对算法中的每一个决策点做一个在当时看起来是最佳的选择。这是贪心算法的核心思想。但是这种启发式策略不是总能产生出最优解,但常常能给出最优解。贪心算法以动态规划作为基础,大致遵循着这样的步骤:
1.确定待解决问题的最优子结构;
2.设计递归求解方式;
3.证明在递归的任一阶段,最优选择之一总是贪心的。那么做贪心选择是合适的;
4.证明通过做贪心选择,所有的子问题都为空(除一个以外);
5.设计实现贪心策略的递归算法;
6.将设计好的递归算法转换成迭代算法。

拟阵的概念:
拟阵(Matroid)是满足如下条件的一个序对M=(S,l):
1、S是一个非空有穷集合;
2、l是S的非空子集族(子集族,就是由多个子集组成),若B∈l,A⊆B,则A∈l。称B是S的独立子集。我们说l是遗传的。[我的理解就是,l中的任一子集,他的子集也属于l,比如:{3,4}是属于l,那么{4},{3}都属于l,所以ϕ必定属于l];
3、如果A和B是l的两个独立集,A比B有更多的元素, 则在A中存在一个元素,当其加入B时得到一个比B更大独立集。这是交换性质。[例如,{1,2}属于l,{2,3,4}属于l,所以{1,2,3}和{1,2,4}中至少有一个也属于l];
在这里插入图片描述
具体怎么用拟阵,还是不是很清楚,有空再看吧
https://blog.csdn.net/ChiXueZhiHun/article/details/54808939
《拟阵》网址
http://ishare.iask.sina.com.cn/f/19117635.html?from=like

猜你喜欢

转载自blog.csdn.net/qq_33321609/article/details/87716607