区间覆盖问题的复杂性


17

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

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

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

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

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

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

的整数程序:对于每一个间隔引入一个决策变量X { 0 1 }X = 1当且仅当被选择的时间间隔。的目标是最小化X 1 + ... + X ķ,受约束Σ Ĵ [ Ĵ- [R Ĵ ] X Ĵd [li,ri]xi{0,1}xi=1x1++xkj:i[lj,rj]xjdi。该整数程序的约束矩阵具有连续的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.