考虑下面的问题:我们给出的整数,和ķ间隔[ 升我,- [R 我 ]与1 ≤ 升我 ≤ [R 我 ≤ 2 Ñ。我们也给予2 ň整数ð 1,... ,d 2 ñ ≥ 0。任务是选择最小间隔数[ l i,r i ]这样对于每个,至少要选择包含整数 i的d i个间隔。
不难看出可以在多项式时间内求解(见下文)。
现在考虑以下经过稍微修改的问题:问题的输入与之前相同。但是,现在的任务是选择最小数量的间隔,以便对于每个,至少d 2 i - 1个包含整数2 i - 1的间隔或至少d 2 i个包含整数的间隔2 i被选中(用“或”表示通常的逻辑或)。
我的问题:能在多项式时间内求解吗?
这是两种解决方法 有效 Q的:
一个简单的贪心算法:从左到右扫过间隔,并仅选择“满足”数字d所需的尽可能少的间隔。只要在不同的时间间隔之间进行选择,就选择右端点最大的一个。
的整数程序:对于每一个间隔引入一个决策变量X 我 ∈ { 0 ,1 }与X 我 = 1当且仅当被选择的时间间隔。的目标是最小化X 1 + ... + X ķ,受约束Σ Ĵ :我∈ [ 升Ĵ,- [R Ĵ ] X Ĵ ≥ d 我。该整数程序的约束矩阵具有连续的1性质,因此该程序的线性规划松弛具有整数最优解。
感谢您的任何提示,也为您提供参考!