Lecture11贪心算法的理论基础-拟阵.ppt
《Lecture11贪心算法的理论基础-拟阵.ppt》由会员分享,可在线阅读,更多相关《Lecture11贪心算法的理论基础-拟阵.ppt(43页珍藏版)》请在三一办公上搜索。
1、1,第4章 贪心算法,4.8 贪心算法的基础理论1.拟阵2.帯权拟阵的贪心算法3.任务时间表问题,本讲主要内容:,2,4.8 贪心算法的理论基础,借助于拟阵1(Matroid)工具,可建立关于贪心算法的较一般的理论。线性代数中有如下两条性质:(1)如果Xx1,x2,xk是一个线性无关向量组,则对X的任意子集X也是线性无关的。(2)如果Xx1,x2,xr和Yy1,y2,ym是两个线性无关向量组且mr,则必存在一个yiY,使得Xyi是一个线性无关向量组。1935年,Whitney把以上两条性质进行了抽象推广,提出了拟阵概念。,1赖虹建.拟阵论M.北京:高等教育出版社,2002年7月,3,4.8 贪
2、心算法的理论基础,1.拟阵独立公理集系统将拟阵M定义为满足下面3个条件的有序对(S,I)(1)S是非空有限集。(2)I是S的一类具有遗传性质的独立1子集族,即若BI,则B是S的独立子集,且B的任意子集也都是S的独立子集(即该子集属于I)。空集必为I的成员。(3)I满足交换性质,即若AI,BI且|A|B|,则存在某一元素xB-A,使得AxI。1:此处的独立子集是线性无关(或线性独立)概念的推广,代表I的入集条件,4,4.8 贪心算法的理论基础,例1:如非空集合S的子集K的幂集I=(K),(S,I)是否为拟阵?例2:无向图G=(V,E)的图拟阵:,其中SG定义为图G的边集E,IG定义为SG的无循环
3、边集族,AIG 当且仅当A构成图G的森林*。,注*:即IG是图G的无环支撑(生成)子图集合。支撑子图(生成子图):包含图G所有顶点的子图。,5,4.8 贪心算法的理论基础,证明:满足拟阵(S,I)的3个条件。(1)因为SG为图G的边集,显然非空;(2)由于从SG的一个无循环边集中去掉若干条边不会产生循环,即森林的子集还是森林,因此SG的无循环边集族IG具有遗传性质。,6,4.8 贪心算法的理论基础,(3)设A和B是图G的两个森林,且|B|A|,即B的边比A多。由于图G中有k条边的森林恰由|V|-k棵树组成,因此B中的树比A中的少。很显然,B中至少存在一棵树T,它的顶点分别在森林A的两棵树中。由
4、于T是连通的,故T中必有一条边(u,v)满足u,v分别在A的两棵树中。因此将(u,v)加入A不会产生循环。由此得出IG满足交换性质,即若AI,BI且|A|B|,则存在某一元素xB-A,使得AxI。,7,4.8 贪心算法的理论基础,2.拟阵的几个重要概念和性质【定义】:给定拟阵M=(S,I),对于I中的独立子集A I,若S有一元素x A,使得将x加入A后仍保持独立性,即Ax I,则称x为A的可扩展元素。【定义】:当拟阵M中的独立子集A没有可扩展元素时,称A为极大独立子集,或拟阵的基。,8,4.8 贪心算法的理论基础,关于极大独立子集的性质【定理4.1】拟阵M中所有极大独立子集的势相同。这个定理可
5、以用反证法证明(P134)。【定义】若对拟阵M=(S,I)中的S指定权函数W,使得对于任意x S,有W(x)0,则称拟阵M为带权拟阵。依此权函数,S的任一子集A的权定义为。,9,4.8 贪心算法的理论基础,3.关于带权拟阵的贪心算法许多用贪心算法求解的问题可以表示为求带权拟阵的最大权独立子集问题。给定带权拟阵M=(S,I),确定S的独立子集AI使得W(A)达到最大。这种使W(A)最大的独立子集A称为拟阵M的最优子集。由于S中任一元素x的权W(x)是正的,因此,最优子集也一定是极大独立子集(不存在可扩展元素)。,10,4.8 贪心算法的理论基础,例如,最小生成树问题可以表示为确定带权拟阵MG的最
6、优子集问题。求带权拟阵的最优子集A的算法可用于解最小生成树问题。带权拟阵最优子集的贪心算法框架如下:输入:具有正权函数W的带权拟阵M=(S,I)输出:M的最优子集A。,11,4.8 贪心算法的理论基础,Set greedy(M,W)A=;将S中元素依权值W(大者优先)组成优先队列;while(S!=)S.removeMax(x);if(AxI)A=Ax;return A,12,4.8 贪心算法的理论基础,算法Greedy的时间复杂度分析计算时间由两部分组成:(1)设n|S|。将S中的元素依照其权值大小组成一个优先队列,并对其进行n次removeMax运算,需要O(nn)的计算时间。(2)如果检
7、查Ax是否独立需要O(f(n)的计算时间,则对S中元素检查一遍共需O(nf(n)。算法的计算时间复杂性为。,13,4.8 贪心算法的理论基础,【引理4.2】拟阵的贪心选择性质设M=(S,I)是具有正权函数W的带权拟阵,且S中元素依权值从大到小排列。又设x S是S中第一个使得x是独立子集的元素,则存在S的最优子集A使得x A。,14,4.8 贪心算法的理论基础,证明:若不存在xS,使得x是独立子集,则引理是平凡的。设B是一个非空的最优子集。由于BI,且I具有遗传性,故B中所有单个元素子集y均为独立子集(满足解约束)。又由于x是S中的第一个单元素独立子集,故对任意的y B,均有:W(x)W(y)。
8、(1)若xB,则只要令A=B,定理得证;(2)若xB,我们按如下方法构造包含元素x的最优子集A。,15,4.8 贪心算法的理论基础,(a)首先,设A=x,此时A是一个独立子集。若|B|=|A|=1,则定理得证。(b)反复利用拟阵M的交换性质,从B中选择一个新元素加入A中并保持A的独立性,直到|B|=|A|。此时必有一元素yB且yA,使得A=B-yx,且满足:W(A)=W(B)-W(y)+W(x)W(B)由于B是一个最优子集,所以W(B)W(A)。因此W(A)=W(B),即A也是一个最优子集,且xA。,16,4.8 贪心算法的理论基础,首个x选出之前被舍弃元素的处理可以证明,这些被舍弃的元素,以
9、后也永远不可能用于构造最优子集。,17,4.8 贪心算法的理论基础,【引理4.3】:设M=(S,I)是拟阵。若S中元素x不是空集的可扩展元素,则x也不可能是S中任一独立子集A的可扩展元素证明:用反证法。设xS不是的一个可扩展元素,但它是S的某独立子集A的一个可扩展元素,即AxI,由I的遗传性可知x是独立的。这与x不是空集的一个可扩展元素相矛盾。由引理4.3可知,算法Greedy在初始化独立子集A时舍弃的元素可以永远舍弃。,18,4.8 贪心算法的理论基础,【引理4.4】拟阵的最优子结构性质设x是求带权拟阵M=(S,I)最优子集的贪心算法greedy所选择的S中的第一个元素。那么,原问题可简化为
10、求带权拟阵M=(S,I)的最优子集问题,其中:S=y|y S且x,y I,即y是x的可扩展元素I=B|B S-x且Bx IM的权函数是M的权函数在S上的限制(称M为M关于元素x的收缩)。,19,4.8 贪心算法的理论基础,证明:(P136)(1)若A是M的包含元素x的最大独立子集,则A=A-x是M的一个独立子集。反之,M的任一独立子集A产生M的一个独立子集A=Ax(均可由M的定义得到)。(2)在这两种情形下均有:W(A)=W(A)+W(x)因此M的包含元素x的最优子集包含M的一个最优子集,反之亦然。,20,4.8 贪心算法的理论基础,【定理4.5】带权拟阵贪心算法的正确性设M(S,I)是具有正
11、权函数W的带权拟阵,算法greedy返回M的最优子集证明:(P137)(1)由【引理4.2】可知,如第一次加入A的元素是x,则必存在包含元素x的一个最优子集。因此,Greedy第一次选择是正确的。(2)由【引理4.3】可知,选择x时被舍弃的元素不可能被再选中,即它们不可能是任一最优子集中的元素。因此,这些元素可以永远舍弃。,21,4.8 贪心算法的理论基础,(3)由【引理4.4】可知,Greedy选择了元素x后,原问题简化为求拟阵M的最优子集问题。由于对 M=(S,I)中的任一独立子集BI,均有Bx在M中是独立的(由M的定义可知)。因此,Greedy选择了元素x后,后续求解将演变为求拟阵M=(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lecture11 贪心 算法 理论基础 拟阵
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5437293.html