区间覆盖问题的复杂性


17

考虑下面的问题Q:我们给出的整数,和ķ间隔[ 升我,- [R 我 ]与1 ≤ 升我 ≤ [R 我 ≤ 2 Ñ。我们也给予2 ň整数ð 1,... ,d 2 ñ ≥ 0。任务是选择最小间隔数[ l i,r i ]nk[li,ri]1≤li≤ri≤2n2nd1,…,d2n≥0[li,ri]这样对于每个,至少要选择包含整数 i的d i个间隔。i=1,…,2ndii

不难看出可以在多项式时间内求解(见下文)。Q

现在考虑以下经过稍微修改的问题Q′:问题的输入与之前相同。但是,现在的任务是选择最小数量的间隔,以便对于每个,至少d 2 i - 1个包含整数2 i - 1的间隔或至少d 2 i个包含整数的间隔2 i被选中(用“或”表示通常的逻辑或)。i=1,…,nd2i−12i−1d2i2i

我的问题:能在多项式时间内求解吗?Q′

这是两种解决方法 有效 Q的:Q

一个简单的贪心算法:从左到右扫过间隔,并仅选择“满足”数字d所需的尽可能少的间隔。只要在不同的时间间隔之间进行选择,就选择右端点最大的一个。di

的整数程序:对于每一个间隔引入一个决策变量X 我 ∈ { 0 ,1 }与X 我 = 1当且仅当被选择的时间间隔。的目标是最小化X 1 + ... + X ķ,受约束Σ Ĵ :我∈ [ 升Ĵ,- [R Ĵ ] X Ĵ ≥ d 我[li,ri]xi∈{0,1}xi=1x1+…+xk∑j:i∈[lj,rj]xj≥di。该整数程序的约束矩阵具有连续的1性质,因此该程序的线性规划松弛具有整数最优解。

感谢您的任何提示,也为您提供参考!

Answers:


-1

Q的每个实例都可以转换成多集覆盖问题的一个实例,其中位置是间隔,覆盖了连续的需求点序列(= integer d i)。[li,ri]di


3
G=(V1,V2,E)V1V1V2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.