贪心策略的理论基础.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贪心策略的理论基础

贪心策略的理论基础——拟阵 我曾一直肤浅的认为贪心算法是没有什么理论基础来支撑的,是有局部最优解而导致可能的整体最优解,可是最近看了拟阵和贪心的相关,才知道,拟阵理论是贪心策略的理论基础..... 拟阵 1)S是一个有穷的集合。 2)I是S的一类具有遗传性质的非空子集族。遗传性质定义为:如果B∈I且A?B,那么A∈I。即若B∈I,则B是S的独立子集(独立子集的定义),且B的任意子集也都是S的独立子集。空集必为I的成员。注意,I是集合的集合。 3)I满足交换性质。交换性质定义为,若A∈I,B∈I且|A||B|,则存在某一元素x∈B-A,使得A∪{x}属于I。(这条性质给了我们已知集合B,构造集合A的方法。而性质2暗示了我们已知集合B,找出其子集的性质的办法) 下面是一个拟阵的例子: 无向图G=(V,E)的拟阵,定义为M[G]=(S[G],I[G])。 *集合S[G]定义为E,即G的边集。 *如果A是E的子集,而且A是无回路的,则A属于IG。亦即,一组边A是独立的当且仅当子图G[A]=(V,A)构成了一个森林。 下面证明M[G]是一个拟阵。 1)显然S[G]=E是一个有穷集合。 2)I[G]是遗传的。对于任意的B∈I[G],A?B,边集A都∈I[G],原因是从无环的一组边中去掉一些边并不会产生出回路。 3)具有k条边的森林恰好包含|V|-k棵树。若G[A]=(V,A)和G[B]=(V,B)是G的森林,且|B||A|,则G[A]中有|V|-|A|棵树,G[B]中有|V|-|B|棵树。由于G[B]中的树比G[A]中的树要少,必有边e(u,v)∈G[B],!∈G[A]而且连接G[A]中的两棵树。将e添加进A,不会产生回路。A∪{e}∈I。 命题得证。 给定拟阵M=(S,I),对于I中的独立子集A∈I,若S有一元素x!∈A,使得将x加入A中仍保持独立性,即A∪{x}∈I,则称x为A的可扩展元素。当拟阵M中的独立子集A没有可扩展元素时,即A不被M中别的独立子集所包含时。称A为极大独立子集。类似于极大线性无关组的证明,所有的极大独立子集具有相同的势。 若对拟阵M=(S,I)中的S指定权函数W,使得对于任意x∈S,有W(x)0,则称拟阵M为带权拟阵。依此权函数,对于S的子集A有W(A)=Σ(x∈A)W(x)。 适宜用贪心方法获得最优解的许多问题,都可以归结为在加权矩阵中找出一个具有最大权值的独立子集问题。因为任意元素的权值都是正的,故找出的最优子集同时也是最大子集。下面是求带权拟阵最优子集的贪心算法。 GREEDY( M , W ) A-空集 将S中的元素按照权值W大优先组织成一个优先队列。 While ( S不为空 ) ?? x = GetMax( S ) ; ??? if ( A ∪ {x} ∈ I) ???? A = A ∪ {x} ; return A 这个算法排序的时间为O(NlogN),共判断N次,设判断复杂度为f(N),则整个算法运行时间为O(NlogN+Nf(N)) 下面证明算法GREEDY返回的是一个最优子集。 引理1(拟阵具有贪心选择性质) 假设M=(S,I)是一个具有权函数W的加权拟阵,且S被按权值的单调减顺序排列。设x是S的第一个使{x}独立的元素。如果x存在,则存在S的一个包含x的最优子集A 引理2 设M=(S,I)为任意一个拟阵。如果x是S的任意元素,是S的独立子集A的一个可扩展元素,那么x也必然是空集的一个可扩展元素。 推论 设M=(S,i)为任意一个矩阵。如果x不是空集的可扩展元素,那么x也不会是S的任意独立子集A的一个可扩展元素。(这个推论说明了任何元素如果不能被立即用到,则以后也绝不会被用到。所以,在开始时,对S中的那些不是空集的可扩展元素的略过没有漏掉解) 引理3(拟阵具有最优子结构性质) 设x为S中被作用于加权拟阵M=(S,I)的GREEDY算法第一个选择的元素。找一个包含x的具有最大权值的独立子集问题,可以化归为找出加权矩阵M=(S,I)的一个具有最大权值的独立子集问题,此处 S={y∈S|{x,y}∈I} I={B?S-{x}|B∪{x}∈I} 其中,M权函数为受限于S的M的权函数(即M的由x引起的收缩)。 故可得定理,GREEDY返回最优子集。 首先,开始时被略去的不是空集的元素不予考虑(推论)。一旦选择了第一个元素x,将它加入A是正确的(引理1)。最后,余下的问题就是一个在M的由x引起的收缩M中寻找一个最优子集问题(引理3)。在过程GREEDY将A置为{x}后,余下的各步骤都可解释为是在拟阵M=(S,I)中进行的。因为B在M中是独立的,当且仅当B∪{x}在M中是独立的,其中B为任意属于I的集合。这样,GREEDY的后续操作就会找出M中的一个具有最大权值的独立子集。而GREEDY的全部操作就可

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档