Rozważmy następujący problem : Otrzymujemy liczbę całkowitą i przedziałów z . także liczb całkowitych . Zadanie polega na wybraniu minimalnej liczby przedziałów , że dla każdego i = 1 , ... , 2 n , co najmniej d ı odstępach zawierających całkowitą i są zaznaczone.
Nietrudno dostrzec, że można rozwiązać w czasie wielomianowym (patrz poniżej).
Teraz rozważ następujący nieznacznie zmodyfikowany problem : Wkład problemu jest taki sam jak poprzednio. Teraz zadaniem jest jednak wybranie minimalnej liczby przedziałów, tak aby dla każdego , co najmniej d 2 i - 1 przedziałów zawierających liczbę całkowitą 2 i - 1 lub co najmniej d 2 i przedziałów zawierających liczbę całkowitą 2 i są wybrane („lub” oznacza zwykłą logiczną lub).
Moje pytanie: Czy można rozwiązać w czasie wielomianowym?
Oto dwa sposoby skutecznego rozwiązania :
Prosty chciwy algorytm: przeciągnij przedziały od lewej do prawej i wybierz tylko tyle przedziałów, ile potrzeba, aby „spełnić” liczby . Ilekroć istnieje wybór między różnymi przedziałami, wybierz ten (y) z maksymalnym prawym punktem końcowym.
Program całkowita: Dla każdego przedziału Wprowadzenie zmienną decyzyjną x i ∈ { 0 , 1 } z X i = 1, wtedy i tylko wtedy wybiera się odstęp. Celem jest zminimalizowanie x 1 + … + x k , z zastrzeżeniem ograniczeń ∑ j : i ∈ [ l j , r j ] x j ≥ d i. Macierz ograniczeń tego programu liczb całkowitych ma kolejną właściwość jedynek, a zatem relaksacja programowania liniowego tego programu ma optymalne rozwiązanie liczb całkowitych.
Dzięki za wszelkie wskazówki, a także za referencje!
źródło