以下の検討問題:我々は、整数を与えられ、及びk個の区間[ L Iを、rはiは ]で1 ≤ L I ≤ rはI ≤ 2 N。我々はまた、与えられた2 n個の整数は、dは1、... 、D 2 のn ≥ 0を。タスクは、間隔の最小数[ l i、r i ]を選択することですすべての、整数iを含む少なくともd iの間隔が選択されるようにします。
が多項式時間で解けることを確認するのは難しくありません(以下を参照)。
ここで、次のわずかに変更された問題考えます。問題の入力は以前と同じです。しかし、タスクは、現在の間隔の最小数を選択することであるようなすべてのためにその、少なくともD 2は、I - 1つの整数含有間隔2をI - 1、または少なくともD 2つのI整数を含む間隔2 iが選択されます(「または」は通常の論理ORを意味します)。
私の質問:は多項式時間で解くことができますか?
効率的に解決する2つの方法を次に示します。
シンプルな欲張りアルゴリズム:間隔を左から右にスイープし、数値を「満たす」ために必要な数だけ間隔を選択します。異なる間隔の間で選択がある場合は常に、右端が最大になるものを選択します。
整数プログラム:各間隔の決定変数を導入するには、xはI ∈ { 0 、1 }で、X iは = 1間隔IFFが選択されています。目的は、最小限に抑えることであるX 1 + ... + X kの制約を、被験者Σのjは:I ∈ [ L個のJ、R J ] X J ≥ D I。この整数プログラムの制約行列には連続した1の特性があるため、このプログラムの線形計画法の緩和には整数の最適解があります。
ヒントや参考資料をありがとう!