顶点覆盖问题的近似算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c c * max , c* c
该近似算法的相对误差 近似算法的相对误差定义为λ= 。若对问题的输入规模n, 近似算法的相对误差 c* c − 近似算法的相对误差界 c* 有一函数ε(n)使得 ≤ε(n),则称ε(n)为该近似算法的相对误差界 近似算法的相对误差界。 c* 近似算法的性能比ρ(n)与相对误差界ε(n)之间显然有如下关系: ε(n)≤ρ(n)ε(n)≤ρ(n)-1。
近似算法的性能
若一个最优化问题的最优值为c*,求解该问题的一个近似算法求得的近 似最优解相应的目标函数值为c,则将该近似算法的性能比 近似算法的性能比定义为 近似算法的性能比 η= 。在通常情况下,该性能比是问题输入规模n的一个函数ρ(n) c c * max , ,即 c* c ≤ρ(n)。
c −c*
顶点覆盖问题的近似算法
问题描述:无向图G=(V,E)的顶点覆盖是它的顶点集V的一个子集V’⊆V, 使得若(u,v)是G的一条边,则v∈V’或u∈V’。顶点覆盖V’的大小是它所包含的 顶点个数|V’|。
VertexSet approxVertexCover ( Graph g ) { cset=∅; e1=g.e; while (e1 != ∅) { 从e1中任取一条边(u,v); cset=cset∪{u,v}; 从e1中删去与u和v相关联的所有边; } return c }
顶点覆盖问题的近似算法
图(a)~(e)说明 a)Βιβλιοθήκη Baidu(e)说明 了算法的运行过程 及结果。 e)表示 及结果。(e)表示 算法产生的近似最 优顶点覆盖cset cset, 优顶点覆盖cset, 它由顶点 b,c,d,e,f,g所组 b,c,d,e,f,g所组 f)是图 是图G 成。(f)是图G的一 个最小顶点覆盖, 个最小顶点覆盖, 它只含有3个顶点: 它只含有3个顶点: b,d和 b,d和e。
算法approxVertexCover approxVertexCover的性能比为2。 approxVertexCover
Cset用来存储顶点 Cset用来存储顶点 覆盖中的各顶点。 覆盖中的各顶点。初 始为空, 始为空,不断从边集 e1中选取一边 中选取一边( e1中选取一边(u,v) ,将边的端点加入 cset中 并将e1 e1中已 cset中,并将e1中已 覆盖的边删去, 被u和v覆盖的边删去, 直至cset cset已覆盖所有 直至cset已覆盖所有 e1为空 为空。 边。即e1为空。
该近似算法的相对误差 近似算法的相对误差定义为λ= 。若对问题的输入规模n, 近似算法的相对误差 c* c − 近似算法的相对误差界 c* 有一函数ε(n)使得 ≤ε(n),则称ε(n)为该近似算法的相对误差界 近似算法的相对误差界。 c* 近似算法的性能比ρ(n)与相对误差界ε(n)之间显然有如下关系: ε(n)≤ρ(n)ε(n)≤ρ(n)-1。
近似算法的性能
若一个最优化问题的最优值为c*,求解该问题的一个近似算法求得的近 似最优解相应的目标函数值为c,则将该近似算法的性能比 近似算法的性能比定义为 近似算法的性能比 η= 。在通常情况下,该性能比是问题输入规模n的一个函数ρ(n) c c * max , ,即 c* c ≤ρ(n)。
c −c*
顶点覆盖问题的近似算法
问题描述:无向图G=(V,E)的顶点覆盖是它的顶点集V的一个子集V’⊆V, 使得若(u,v)是G的一条边,则v∈V’或u∈V’。顶点覆盖V’的大小是它所包含的 顶点个数|V’|。
VertexSet approxVertexCover ( Graph g ) { cset=∅; e1=g.e; while (e1 != ∅) { 从e1中任取一条边(u,v); cset=cset∪{u,v}; 从e1中删去与u和v相关联的所有边; } return c }
顶点覆盖问题的近似算法
图(a)~(e)说明 a)Βιβλιοθήκη Baidu(e)说明 了算法的运行过程 及结果。 e)表示 及结果。(e)表示 算法产生的近似最 优顶点覆盖cset cset, 优顶点覆盖cset, 它由顶点 b,c,d,e,f,g所组 b,c,d,e,f,g所组 f)是图 是图G 成。(f)是图G的一 个最小顶点覆盖, 个最小顶点覆盖, 它只含有3个顶点: 它只含有3个顶点: b,d和 b,d和e。
算法approxVertexCover approxVertexCover的性能比为2。 approxVertexCover
Cset用来存储顶点 Cset用来存储顶点 覆盖中的各顶点。 覆盖中的各顶点。初 始为空, 始为空,不断从边集 e1中选取一边 中选取一边( e1中选取一边(u,v) ,将边的端点加入 cset中 并将e1 e1中已 cset中,并将e1中已 覆盖的边删去, 被u和v覆盖的边删去, 直至cset cset已覆盖所有 直至cset已覆盖所有 e1为空 为空。 边。即e1为空。