大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>算法与技巧>>贪心法矩阵胚理论介绍         本站全文搜索: 友情提示:

贪心法矩阵胚理论介绍
http://www.mydrs.org  7/1/2001  大榕树


矩阵胚的定义是:
M={S,I}
其中S为有限集,I为S的一个子集族,满足下面条件:
1.{}属于I
2.如果集合X属于I,则X的所有子集都属于I。
3.如果集合W,V都属于I,且|V|>|W|,则V中存在一个不在W中的集合z,使W并{z}属于I。

I中的集合叫做矩阵胚的独立子集。上面三个定义保证了独立子集具有如下属性:
1.独立子集至少有一个(空集)
2.独立子集是“遗传”的。
3.只要一个独立子集不是最大(元素最多)的,我们总可以把它变得更大。

定义:把S中的元素加非负的权,我们可以得到一个加权矩阵胚。

定理1:贪心的扩展加权矩阵胚可以得到最优子集。

证明:设贪心法得到的独立子集是B,最优独立子集为T(如果有多个T,选择使B交T最大的那个),那么:
i)如果B=T,则成功
ii)否则,设x为不在T中的第一个被贪心法选择的元素,则T并x为非独立集(否则与T最大矛盾)。
设C为T并x的子集中的最小的非独立集,则x属于C(否则C就为T的子集,与属性2矛盾)。这样,我们取C
中任意不属于B的元素y,又条件3,C-{y}为独立集。

下面,我们从C-{y}出发构造一个最优独立子集T_1,使B交T_1比B交T更大。

对于C-{y},我们把T中不属于其中的元素依次加到里面(根据属性3),则最后我们得到一个T_1,
其中T_1=T-{y}+{x}。

下面,我们来说明w(x)=w(y)。
1.T是最优的,因此w(T_1)<=w(T),即w(x)<=w(y)
2.假设贪心算法选择x之前选择过的元素集合为X,那么:X为T的子集,且X并{y}也是T的子集。那么,在
选择x的时候,y也是可以选的。但是贪心算法选择的是x,必有w(x)>=w(y),故w(x)=w(y)

这样,T_1也是最优独立子集,但是T_1比T多一个在B中的元素x,与T的选择矛盾。故贪心法能够选择最优
独立子集。


定理2:如果F关于子集运算是封闭的,而对于任何权函数(F,w),贪心法都适用,则F为某个矩阵胚的
独立子集族。

这里略去定理的证明,想知道证明的朋友可以来信问我。

两个常用的独立子集的例子是:
1.有限个n维向量集合中个线性无关的向量 。
2.某个图中没有圈的边集。

根据定理一,我们如果可以把问题归结成在加权矩阵胚中求最优独立子集的问题(需要验证问题的结构满足矩阵胚
的三个定义),我们就可以采用贪心法。也就是每次选取权值最优的元素加到独立子集中,最后得到的最大独立子
集必然是最优的。

作 者:SRbGa
来 源:OIBH
共有3188位读者阅读过此文

  • 上篇文章贪心法基础
  • 下篇文章:已经没有了

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8306]
    2. 七类高中生具有保送资格 [5910]
    3. NOI2006获奖选手名单 [4955]
    4. 关于举办NOIP2006模拟赛的通告 [4106]
    5. Turbo Pascal各语句运行速... [3594]
    6. Turbo王者归来新Delphi免费... [3181]
    7. IOI2006我国4名选手全部获得金... [2945]
    8. 关于APIO2007与IOI2007... [2763]
    9. noip倒计时 by 枯叶蝴蝶 [2683]
    10. 朱泽园:思想上的金牌更重要 [2168]
    矩形条覆盖问题的贪心算法
    埃及分数之和
    贪心法矩阵胚理论介绍
    贪心法基础
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号