Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 多项式时间算法_Algorithm_Graph - Fatal编程技术网

Algorithm 多项式时间算法

Algorithm 多项式时间算法,algorithm,graph,Algorithm,Graph,什么样的多项式时间算法可以找到[V/2]个顶点 在任意无向图形中至少占四分之三(3/4)的边 图 请帮忙有吗?我不怀疑,但我真的不知道;顶点覆盖是NP完全的,这很接近(我们要问的是G是否有一个最大大小为|V |/2的顶点覆盖,它覆盖了四分之三的边 显然,首先尝试贪婪算法,从最高阶数的顶点中选取顶点。仔细想想,这是没有意义的。不过,我仍然认为贪婪的解决方案是可行的;如果你继续选取至少具有平均阶数的顶点,在我看来,你最终会得到大部分的总边。但我不确定pr噢。这里有一个证据证明它存在: 考虑随机选取一

什么样的多项式时间算法可以找到[V/2]个顶点 在任意无向图形中至少占四分之三(3/4)的边 图


请帮忙

有吗?我不怀疑,但我真的不知道;顶点覆盖是NP完全的,这很接近(我们要问的是
G
是否有一个最大大小为
|V |/2
的顶点覆盖,它覆盖了四分之三的边


显然,首先尝试贪婪算法,从最高阶数的顶点中选取顶点。

仔细想想,这是没有意义的。不过,我仍然认为贪婪的解决方案是可行的;如果你继续选取至少具有平均阶数的顶点,在我看来,你最终会得到大部分的总边。但我不确定pr噢。

这里有一个证据证明它存在:

考虑随机选取一半顶点的算法。对于任何给定的边,其两个端点中至少有一个被选择的概率为3/4,因此所覆盖的边的预期数量为3 | E |/4。因此,根据,必须至少存在一个覆盖>=3 | E |/4边的算法,仅使用1/2个顶点。非确定性算法立即跟进


在此基础上提出一个确定性算法是去随机化的练习(尝试使用).

这样的子集的存在是不保证的…@belisarius你有反例吗?我认为它是保证存在的,很难找到,但我的逻辑可能有错误。也许我错了,但如果你有一个项链型图,V/2顶点占了整个图的1/2edges@belisarius在一个二部中取任意一个分区图占了所有的边。由于循环图是二分图或远离二分图的一条边,我们只会在链中取V/2交替项而错过一条边。@Yonatan谢谢你的回答。我的英语理解能力并不总是能胜任任务。至少我没有回答:)我相信你对顶点覆盖问题的解释是反向的(要么是这样,要么是我误解了你)。近似算法提供的顶点数量可能是所需顶点数量的两倍,而不是一半(否则会有超优的解决方案!)嗯,请使用最贪婪的算法:删除边数最多的顶点以及这些边。重复[V/2]次。。我理解概率方法。你能用数学上令人信服的证据进一步解释确定性算法吗。非常感谢你