算法设计与分析笔记之近似算法

问题1:对于无权图中点覆盖问题给出一个2倍近似算法?

想法1:考虑随机从图中选出一条边,并将图中该边的两点从图中删除,依次重复操作直到图中无边。

     这个算法的确不会大于最优解的两倍,因为每一条选出的边两端点中至少有一个点在最优解的解集中,显然这样找出来的点不会大于最优解的两倍。

问题2:对于带权重的点覆盖要求得出解的权值和最小的的近似算法?

    首先这个问题显然比不带权值的点覆盖问题会复杂些,设置当图结构复杂到一定程度,这个最优解可能很难知道。当然我们要有这样的思想,就是如果当最优解无从得知的时候,可以考虑找到一个最优解的下界,如此只要找到一个算法使得结果是接近这个下界,那么这个算法是一个近似解。当然这种情况忽略了近似解的近似程度,但至少是找到了一个近似解。分析如图一所示:

算法设计与分析笔记之近似算法_第1张图片

图一

想法1:考虑竞价算法。这个算法的意思是说既然点覆盖是要求每条边都有一个点在解集中,那么我们可以假设每条边都给出一定价格,那么这样做的原则是每个点相邻的所有边总价格不超过该顶点的权值。比如图一所示:

算法设计与分析笔记之近似算法_第2张图片

图二

    这个算法的确是一个点覆盖问题的2倍近似解,原因是如果假设这样得出的解不是一个点覆盖,那么图中当存在不饱和点,那么肯定存在一条边的价格可以往上抬,于是这样又与假设矛盾,结论得证。推导过程如图三所示:

算法设计与分析笔记之近似算法_第3张图片

图三

想法2:考虑线性规划模型。分析如图四:

算法设计与分析笔记之近似算法_第4张图片

图四


你可能感兴趣的:(算法设计与分析笔记之近似算法)