Das Prüfhaube Problem kann wie folgt definiert werden:Integer Linear Programming-Formulierung für Test Cover?
Angenommen, wir eine Reihe von n
Krankheiten und eine Reihe von m
Tests haben wir durchführen können für die Symptome zu überprüfen. Wir sind auch die folgenden angegeben: A
- eine
n
xn
Matrix, woA[i][j]
ein an einem Patienten mit demi
th-Krankheit (1 zeigt ein positives Ergebnis der Ausführung desj
th Test, die das Ergebnis Binärwert ist, 0 bedeutet negativ); - die Kosten für den Lauftest
j
,c_j
; und dass - jeder Patient wird genau eine Krankheit
Die Aufgabe ist es, eine Reihe von Tests zu finden, die jeden der den n
Krankheiten zu minimal Kosten eindeutig identifizieren können.
Dieses Problem kann als Integer Linear-Programm formuliert werden, in denen wir die Zielfunktion \sum_{j=1}^{m} c_j x_j
, wo x_j
= 1, wenn wir Test wählen, um minimieren wollen j
in unserem Set enthalten und ansonsten 0.
Meine Frage ist:
Was für dieses Problem der Satz von linearen Bedingungen ist?
Übrigens glaube ich, dieses Problem ist NP-schwer (wie Integer Linear Programming im Allgemeinen).
Aber wenn x_j = 0 ist, dann ist diese Summe 0.Diese Zwänge zwingen uns dazu, jeden einzelnen Test zu wählen, was natürlich nicht stimmen kann ... Es sei denn, ich habe deine Antwort missverstanden. – Will
Nicht wirklich, wenn ein 'x_j.A_ij' 1 ist, dann ist die Summe mindestens eins, wonach du suchst. –
Ah, jetzt sehe ich was du meinst. Aber das ist immer noch nicht korrekt. Betrachten wir den Fall, bei dem wir zwei Krankheiten, D1 und D2, und zwei Tests, T1 und T2, haben, so dass sowohl D1 als auch D2 für T1 positiv und für T2 negativ sind. Wenn Sie dann x_1 = 1 und x_2 = 0 wählen, erfüllen Sie Ihre Einschränkungen, aber wir können die beiden Krankheiten nicht unterscheiden. – Will