Rozważ następujące zadanie algorytmiczne:
Dane wejściowe: dodatnia liczba całkowita wraz z podstawową faktoryzacją
Znajdź: dodatnie liczby całkowite które minimalizują , z zastrzeżeniem ograniczenia, że
Jaka jest złożoność tego problemu? Czy istnieje algorytm czasu wielomianowego? Czy to trudne NP?
Ten problem zasadniczo pyta: ze wszystkich prostokątnych brył, których objętość wynosi i których wymiary są liczbami całkowitymi, który ma najmniejszą powierzchnię?
Problem ten postawił Dan Meyer pod tytułem Problem matematyczny, którego 1000 nauczycieli matematyki nie mogło rozwiązać . Jak dotąd żaden z nauczycieli matematyki, z którymi pracował, nie znalazł rozsądnego algorytmu dla tego problemu. W jego kontekście definicja „rozsądnego” jest nieco nieprecyzyjna, ale jako informatycy możemy zadać bardziej precyzyjne pytanie o złożoność tego problemu.
Oczywistym podejściem jest wyliczenie wszystkich możliwości dla , ale to zajmuje czas wykładniczy. Komentatorzy na blogu Dana Meyera zaproponowali wiele wydajnych algorytmów kandydujących, które niestety okazały się nieprawidłowe. Martin Strauss sugeruje, że ten problem wydaje się niejasno przypominać 3-partycję , ale nie widzę zmniejszenia.
Pozwolę sobie również wyjaśnić niektóre nieporozumienia, które widziałem w komentarzach / odpowiedziach:
Nie można zmniejszyć z 3-partycji, po prostu zastępując każdą liczbę jej siłą , ponieważ funkcje celu dwóch problemów są różne. Oczywista redukcja po prostu nie działa.
Nie jest prawdą, że optymalne rozwiązanie obejmuje wybranie jednego z jako najbliższego dzielnika od do . Widzę wiele osób, które zakładają, że tak jest, ale w rzeczywistości nie jest to poprawne. Zostało to już obalone na blogu Dana Meyera. Weźmy na przykład ; , a 4 dzieli 68, więc możesz pomyśleć, że co najmniej jeden z powinien wynosić 4; nie jest to jednak poprawne. Optymalnym rozwiązaniem jest , , . Kolejny kontrprzykład to ,, ale optymalnym rozwiązaniem jest,,. (Możebyć prawdą, że dla wszystkichoptymalne rozwiązanie polega na tym, aby co najmniej jeden zbył równy albo najmniejszemu dzielnikowiwiększemu niż lubnajwiększy dzielnikmniejszy niż - W tej chwili nie mam kontrprzykładu - ale jeśli uważasz, że to stwierdzenie jest prawdziwe, wymagałoby to dowodu. Absolutnie nie możesz zakładać, że to prawda.)
„Spraw , aby były tego samego rozmiaru” nie zawsze daje optymalną odpowiedź we wszystkich przypadkach; zobacz post na blogu Dana Meyera, aby uzyskać kontrprzykłady. Lub przynajmniej dla niektórych rozsądnych interpretacji wyrażenia „czynią je mniej więcej tego samego rozmiaru”, istnieją kontrprzykłady pokazujące, że ta strategia nie jest w rzeczywistości optymalna. Jeśli chcesz wypróbować jakąś strategię tego rodzaju, upewnij się, że dokładnie podałeś roszczenie, a następnie podaj dokładny matematyczny dowód.
Czas działania nie jest wielomianowy. Aby problem występował w P, czas działania musi być wielomianem na długości danych wejściowych . Długość danych wejściowych to coś w rodzaju lg n , a nie n . Oczywisty algorytm siły brutalnej można uruchomić w czasie O ( n 3 ) lub O ( n 2 ) , ale jest on wykładniczy w lg n, a zatem liczy się jako algorytm czasu wykładniczego. To nie jest pomocne.