区间覆盖问题的复杂性
考虑下面的问题QQQ:我们给出的整数,和ķ间隔[ 升我,- [R 我 ]与1 ≤ 升我 ≤ [R 我 ≤ 2 Ñ。我们也给予2 ň整数ð 1,... ,d 2 ñ ≥ 0。任务是选择最小间隔数[ l i,r i ]nnnkkk[li,ri][li,ri][l_i,r_i]1≤li≤ri≤2n1≤li≤ri≤2n1\leq l_i\leq r_i\leq 2n2n2n2nd1,…,d2n≥0d1,…,d2n≥0d_1,…,d_{2n}\geq 0[li,ri][li,ri][l_i,r_i]这样对于每个,至少要选择包含整数 i的d i个间隔。i=1,…,2ni=1,…,2ni=1,…,2ndidid_iiii 不难看出可以在多项式时间内求解(见下文)。QQQ 现在考虑以下经过稍微修改的问题Q′Q′Q’:问题的输入与之前相同。但是,现在的任务是选择最小数量的间隔,以便对于每个,至少d 2 i - 1个包含整数2 i - 1的间隔或至少d 2 i个包含整数的间隔2 i被选中(用“或”表示通常的逻辑或)。i=1,…,ni=1,…,ni=1,…,nd2i−1d2i−1d_{2i-1}2i−12i−12i-1d2id2id_{2i}2i2i2i 我的问题:能在多项式时间内求解吗?Q′Q′Q’ 这是两种解决方法 有效 Q的:QQQ 一个简单的贪心算法:从左到右扫过间隔,并仅选择“满足”数字d所需的尽可能少的间隔。只要在不同的时间间隔之间进行选择,就选择右端点最大的一个。didid_i 的整数程序:对于每一个间隔引入一个决策变量X 我 ∈ …