2012-04-10 4 views
-1

テストカバー問題を定義することができます。整数型テストカバー用線形計画式?次のように

我々はn疾患のセットと、私たちは、症状を確認するために行うことができますm一連のテストを持っていると仮定します。我々はまた、次のように与えられる:

  • A[i][j]i番目の疾患(1患者にj番目のテストを実行した結果を示すバイナリ値であるAn X n行列が陽性の結果を示し、 0は負の値を示します)。
  • 実行テストのコストj,c_j;そして
  • 任意の患者が持っていることを正確に1つの疾患

タスクを一意に最小限のコストでn疾患のそれぞれを識別することができる一連のテストを見つけることです。


この問題は、我々はそうでない場合は、当社のセットでテストj、および0を含めることを選択した場合x_j = 1目的関数\sum_{j=1}^{m} c_j x_jを、最小限にしたい整数線形プログラムとして処方することができます。

私の質問は:

この問題に対する線形制約のセットは何ですか?

ちなみに、私はこの問題がNP-hard(一般的な整数線形計画法)であると信じています。まあ

答えて

-1

Tはその後、すべてjなど= 0 x_j

そのためAj番目の列を削除した結果、マトリックスとすることを確認する必要があります2つの疾患を一意に区別できる一連のテストを選択することは、Tのすべての行が一意であることを保証することと同じです。

klの2行は、すべてjの場合には(T[k][j] XOR T[l][j]) = 0の場合にのみ同一であることに注意してください。

だから、私たちが望むの制約は、すべての1 <= k <= m1 <= l <= 1k != lそのため

\sum_{j=1}^{m} x_j(A[k][j] XOR A[l][j]) >= 1

です。

上記の制約は、係数(A[k][j] XOR A[l][j])をあらかじめ計算することができるので、線形であることに注意してください。

0

私が正しいだ場合、あなただけの

\sum_j x_j.A_ij >= 1 forall i 
+0

x_j = 0ならば、その合計は0です。ですから、それらの制約は、私たちにあなたの答えを誤解していない限り、もちろん、それぞれのテストを選択するよう強制します。 – Will

+0

実際、 'x_j.A_ij'が1ならば、合計は少なくとも1つです。これはあなたが探しているものです。 –

+0

ああ、今私はあなたが意味するものを参照してください。しかし、それはまだ正しくありません。 D1とD2の2つの疾患、T1とT2の両方がT1に対して陽性、T2が陰性になるような2つの検査T1とT2がある場合を考える。 x_1 = 1とx_2 = 0を選択すると制約条件を満たすことができますが、2つの疾患を区別することはできません。 – Will