Betrachten Sie das folgende Problem n 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 = 1 , ... , 2 n d i i : Wir erhalten eine ganze Zahl und Intervalle mit . Wir erhalten auch ganze Zahlen . Die Aufgabe besteht darin, eine minimale Anzahl von Intervallen so dass für jedes mindestens Intervalle ausgewählt werden, die die ganze Zahl enthalten.
Es ist nicht schwer zu erkennen, dass in Polynomzeit gelöst werden kann (siehe unten).
Betrachten Sie nun das folgende leicht modifizierte Problem i=1,...,n d 2 i - 1 2i-1 d 2 i 2i : Die Eingabe des Problems ist die gleiche wie zuvor. Die Aufgabe besteht nun jedoch darin, eine minimale Anzahl von Intervallen so auszuwählen, dass für jedes mindestens Intervalle mit der ganzen Zahl oder mindestens Intervalle mit der Ganzzahl ausgewählt sind (mit "oder" meinen wir das übliche logische oder).
Meine Frage: Kann in Polynomialzeit gelöst werden?
Hier sind zwei Möglichkeiten, um effizient zu lösen :
Ein einfacher Greedy-Algorithmus: Durchlaufen Sie die Intervalle von links nach rechts und wählen Sie nur so wenige Intervalle aus, wie erforderlich sind, um die Zahlen zu erfüllen . Wenn Sie zwischen verschiedenen Intervallen wählen können, wählen Sie die Intervalle mit dem maximalen rechten Endpunkt.
Ein ganzzahliges Programm: für jedes Intervall eine Entscheidungsvariable mit wenn das Intervall ausgewählt ist. Das Ziel besteht darin, zu minimieren , vorbehaltlich der Einschränkungen . Die Beschränkungsmatrix dieses ganzzahligen Programms hat die Eigenschaft der aufeinanderfolgenden und daher hat die lineare Programmierrelaxation dieses Programms eine ganzzahlige optimale Lösung.
Vielen Dank für Hinweise und auch für Hinweise!
quelle