Nietrudne problemy do rozwiązania w stałym czasie?


14

Stały czas jest absolutnie niskim stopniem złożoności czasu. Można się zastanawiać: czy jest coś nietypowego, co można obliczyć w stałym czasie? Jeśli trzymamy się modelu maszyny Turinga, niewiele można zrobić, ponieważ odpowiedź może zależeć tylko od początkowego odcinka wejścia o stałej długości, ponieważ dalsze części wejścia nie mogą być osiągnięte nawet w stałym czasie.

Z drugiej strony, jeśli przyjmiemy nieco bardziej wydajny (i bardziej realistyczny) model pamięci RAM kosztu jednostkowego, w którym elementarne operacje na liczbach są liczone jako pojedyncze kroki, wówczas możemy być w stanie rozwiązać nietrywialne zadania, nawet w stałym czasie. Oto przykład:O(logn)

Instancja: liczby całkowite , każda podana w formacie binarnym przez bity .n,k,l,dO(logn)

Pytanie: Czy istnieje wykres werteksowy, taki że jego łączność z wierzchołkami wynosi , jego łączność z krawędzią wynosi , a jego minimalny stopień to ?nkld

Zauważ, że z definicji nie jest nawet oczywiste, że problem dotyczy NP . Powodem jest to, że naturalny świadek (wykres) może potrzebować długiego opisu , podczas gdy dane wejściowe są podawane tylko przez bity . Z drugiej strony na ratunek przychodzi następujące twierdzenie (patrz: ekstremalna teoria grafów B. Bollobasa).O ( log n )Ω(n2)O(logn)

Twierdzenie: Niech będą liczbami całkowitymi. Istnieje wykres n- werteksów z łącznością wierzchołków k , łącznością krawędzi l i minimalnym stopniem d , tylko wtedy, gdy spełniony jest jeden z następujących warunków:n,k,l,dnkld

  • , 0kld<n/2
  • 12d+2nkl=d<n1
  • k=l=d=n1.

Ponieważ warunki te można sprawdzić w stałym czasie (w modelu RAM o koszcie jednostkowym), twierdzenie prowadzi do algorytmu stałego czasu w tym modelu.

Pytanie: Jakie są inne nietrywialne przykłady algorytmów stałego czasu?


6
Czy liczy się weryfikacja probabilistycznie sprawdzalnego dowodu?
David Eppstein,

6
Nie myśl, że twoim przykładem jest czas . Dane wejściowe mają długość m = O ( log n ) , w którym to przypadku typowe słowo RAM zezwala na operacje O ( log m ) tylko w jednym kroku. (Alternatywą jest umożliwienie wyrażenia proporcjonalnego do długości wejściowej, ale w takim przypadku można nazwać wiele algorytmów „stałego czasu”). Można spróbować dodać ciąg długości n po tych liczbach, ale wtedy I nie widzę, jak sprawdzanie tego formatu działałoby w O ( 1 )O(1)m=O(logn)O(logm)nO(1)czas: wydaje się, że musisz sprawdzić (powiedzmy przez wyszukiwanie binarne), że całkowita długość łańcucha rzeczywiście wynosi , co wymaga log n czasu. Ω(logn)logn
Ryan Williams

4
Myślę, że sugestia Davida Eppsteina wskazuje bardziej interesujący kierunek: rozważenie losowych algorytmów czasu O (1). Przynajmniej w takim przypadku można mieć nadzieję, że dostęp do każdego bitu wejściowego będzie możliwy w co najmniej jednym możliwym przebiegu algorytmu.
Ryan Williams

4
Prostym przykładem randomizowanych algorytmów czasu O (1) jest przybliżona mediana (przybliżona w tym sensie, że podzieli dane wejściowe w przybliżeniu 50-50). Po prostu wybierz losowo 1000000 elementów z wejścia równomiernie, oblicz ich medianę i wyślij ją.
Jukka Suomela,

5
Podoba mi się twoje pytanie, ale wadą twojego przykładu jest to, że opiera się on na matematycznym twierdzeniu. Przesuwając to do granicy można powiedzieć: Instancja Dodatnie liczby całkowite . Pytanie Czy istnieje liczba całkowita n > 2 taka, że x n + y n = z n (odpowiedź to Prawda lub Fałsz). Cóż, rzeczywiście istnieje algorytm stałego czasu, ponieważ odpowiedź zawsze brzmi „Fałsz”, ale najwyraźniej nie jest to rodzaj przykładów, których sobie życzysz. x,y,zn>2xn+yn=zn
J.-E.

Odpowiedzi:



5

Istnieje wiele przykładów gier badanych w kombinatorycznej teorii gier, w których stan gry można opisać za pomocą stałej liczby wartości całkowitych. W przypadku niektórych z nich zwycięską strategię gry można obliczyć w stałym czasie. Ale rodzą też pytania o to, jaki dokładnie jest twój model obliczeniowy.

Jedną z najprostszych i najbardziej podstawowych gier kombinatorycznych jest nim: jedna ma stałą liczbę stosów ziaren, a jednym ruchem możesz usunąć dowolną liczbę ziaren z jednego stosu, wygrywając lub przegrywając (w zależności od wybranych zasad) jeśli weźmiesz ostatnią fasolę. Optymalną strategię można obliczyć w stałym czasie, jeśli zezwolisz na bitowe operacje logiczne xor (tj. Operator ^ w językach programowania takich jak C / C ++ / Java / itp.) Czy jest to algorytm stałego czasu w twoim modelu?

Oto jeden, w którym wiadomo, że istnieje algorytm deterministyczny dokładny w czasie stałym (w możliwie nierealistycznym rozszerzonym modelu obliczeń, który pozwala testować pierwotność liczby w stałym czasie), ale nie wiadomo, czym jest ten algorytm: biorąc pod uwagę początek ruch w grze monet Sylver , określ, czy jest to ruch wygrywający czy przegrywający. Schemat blokowy tego problemu podano w Berlecamp, Conway i Guy, Winning Ways , ale zależy to od skończonego zestawu kontrprzykładów do ogólnej charakterystyki zwycięskich ruchów i nie wiadomo, co to jest za zestaw (a nawet czy to jest pusty).

Kolejnym interesującym przykładem z teorii gier kombinatorycznych jest gra Wythoffa. Każda pozycja gry może być opisana przez parę liczb całkowitych (tj. Stała przestrzeń, w twoim modelu obliczeniowym), ruchy w grze polegają na zmniejszeniu jednej z tych dwóch liczb całkowitych do mniejszej wartości, a strategia wygranej obejmuje przejście do pozycji, w której stosunek między tymi dwiema liczbami całkowitymi jest jak najbardziej zbliżony do złotego podziału. Ale w wielu pozycjach gry jest wybór: możesz zmniejszyć większą z dwóch liczb całkowitych do punktu, w którym jest to (prawie) mniejsza liczba całkowita razy złoty stosunek lub mniejsza liczba całkowita podzielona przez złoty stosunek. Tylko jedna z tych dwóch opcji będzie zwycięskim ruchem. Tak więc optymalną strategię można zdefiniować w kategoriach stałej liczby operacji arytmetycznych, ale operacje te obejmują liczbę nieracjonalną, złoty współczynnik. Czy to algorytm stałego czasu w twoim modelu? Może to'nlogn


Dziękuję, to są wszystkie interesujące przykłady. Ładnie rzucają też światło na fakt, że pojęcie „stałego czasu” jest mniej jasne, niż pierwotnie myślałem ...
Andras Farago

1

|sol|solpmm|sol|GpmG|G|mmm

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.