算法设计与分析笔记之整数规划
2019-11-14 本文已影响0人
小菜变大菜
课上讲了带权点覆盖问题的整数规划,考试可能会给一个问题让你建立整数规划模型。
带权点覆盖的整数规划(ILP)
对每一个点,用bool变量表示其是否在点覆盖集合中。,点不在点覆盖中;点在点覆盖中。因此,整数规划带权点覆盖问题转换为:
整数规划的最优解,就对应于权值最小的点覆盖
但点覆盖的整数规划是一个NP难问题,因此我们希望能找到它的近似算法,牺牲准确度以快速求解。很容易想到把它转化为线性规划问题,并找到它的近似程度。建立如下线性规划,注意第三式:
线性规划的约束条件不如整数规划苛刻,所以线性规划(LP)的最优解≤整数规划(ILP)的最优解。但会带来一个问题,加入点覆盖集合中的点其极有可能是分数,会呈现如下形式
那么,如何找到点覆盖问题线性规划与整数规划得到的解之间的关系?
定理: 如果是LP的最优解,那么点覆盖,且是准确解的2倍近似。
分别证明:
pf1. 对于边,
点覆盖中有,则或(边被覆盖).
pf2. 设点覆盖的准确值为,有
.
第一个不等式:根据整数规划的最优解不小于线性规划这一性质放缩;
第二个不等式:.
我的疑惑
整数规划的解不大于线性规划是指,前一个(整数规划)的可以省略,因为整数规划得到的点覆盖中的点其。而线性规划得到的点覆盖最小权值是,不乘以(注意这里的可以是分数),因为当就把点加入了点覆盖,算权值只将各点权值相加即可。(应该是这样吧,哪个大佬看见有不同的想法戳我)