Jakie są problemy, gdy wiemy, że mamy optymalny algorytm?


15

Jakie są nietrywialne problemy, o których wiemy, że obecny algorytm jest asymptotycznie optymalny? (Do maszyn Turinga)

Jak to udowodniono?


11
Maszyna Turinga to trudny model dla niższych granic. Zmiana defn może zmienić wielomian w czasie wykonywania, więc musisz być bardziej szczegółowy.
Suresh Venkat

Jak definiujesz nietrywialne?
funkstar

1
Jak mówi Suresh, rodzaj używanej TM ma wpływ. Wydaje mi się, że dla języka palindromów (słów, które można czytać do tyłu) mamy optymalną 1-taśmową TM, która decyduje o krokach w celu wyboru języka. W przypadku TM z 2 taśmami jest on rozstrzygalny w czasie liniowym, a więc również prawie optymalny. O(n2)
Bruno

Odpowiedzi:


18

Każdy algorytm, który wymaga czasu liniowego i musi odczytać całe dane wejściowe, musi być optymalny asymptotycznie. Podobnie, jak komentuje Raphael, optymalny jest każdy algorytm, którego środowisko wykonawcze jest tego samego rzędu co wielkość wyjściowa.


10
Podobnie każdy algorytm, którego środowisko wykonawcze jest tej samej kolejności co wielkość wyjściowa, jest optymalny.
Raphael

9
Wierzę, że ta odpowiedź i następujący po niej komentarz są kompletnym stanem wiedzy.
Jeffε

9
Cóż, to było rozczarowujące
pewnością

1
Dla przypomnienia komentarz Jɛ E wydaje się odnosić do odpowiedzi Shira poniżej.
András Salamon

1
Miałem na myśli odpowiedź Maxa, nie Shira, i komentarz Raphaela do odpowiedzi Maxa.
Jeffε

8

Jeśli rozważaną miarą złożoności jest złożoność zapytań, tzn. Ile razy maszyna musi spojrzeć na dane wejściowe w celu rozwiązania konkretnego problemu, istnieje wiele problemów, dla których mamy optymalne algorytmy. Powodem tego jest to, że dolne granice złożoności zapytań są łatwiejsze do osiągnięcia niż dolne granice złożoności czasowej lub przestrzennej, dzięki niektórym popularnym technikom, w tym metodzie przeciwnika .

Minusem jest jednak to, że ta miara złożoności jest prawie wyjątkowo wykorzystywana w przetwarzaniu informacji kwantowej, ponieważ zapewnia łatwy sposób wykazania luki między kwantową a klasyczną mocą obliczeniową. Najbardziej znanym algorytmem kwantowym w tym układzie jest algorytm Grovera . Biorąc pod uwagę ciąg binarny dla którego istnieje pojedyncze i takie, że x i = n , musisz znaleźć i . Klasycznie (bez komputera kwantowego) najbardziej trywialny algorytm jest optymalny: musisz znaleźć ten ciąg średnio n / 2 razy, aby znaleźćx1,,xnixi=nin/2 . Grover podał algorytm kwantowy, który robi to w O ( izapytania do ciągu. Zostało to również udowodnione jako optymalne.O(n)


2
Rzeczywiście, złożoność zapytań stanowi podstawę odpowiedzi Maxa. W przypadku większości problemów każdy algorytm „musi odczytać cały sygnał wejściowy” lub przynajmniej stałą część danych wejściowych.
Jeffε

6
  • Jeśli chcesz zmienić swój model, istnieje kilka dolnych granic w strukturach danych. Zobacz Dolne granice dla struktur danych dla wskaźników do dobrych odniesień dla dolnych granic w strukturach danych.
  • Na podstawie związanego z sortowaniem w modelu porównawczym, o którym wspomnieli tutaj niektórzy ludzie, można uzyskać podobne ograniczenie dla problemu wypukłego kadłuba, rozważając przypadek, w którym dane wejściowe składają się z punktów wzdłuż wykresu rosnąca funkcja w pierwszej ćwiartce samolotu.Ω(nlogn)

2
+1 za wzmiankę o strukturach danych. Ale nie sądzę, że można uzyskać użyteczną dolną granicę dla wypukłych kadłubów poprzez porównanie dolnych granic dla sortowania. Powodem jest to, że model porównawczy nie jest wystarczająco mocny, aby w ogóle obliczyć wypukłe kadłuby. Zamiast tego działa bardziej wydajny model, taki jak algebraiczne drzewa decyzyjne, w których można obliczać kadłuby, a następnie dostosowanie dolnej granicy sortowania do tego mocniejszego modelu.
David Eppstein

Ma sens, dziękuję za wyjaśnienie!
Abel Molina

3
  1. Sortowanie porównawcze przy użyciu porównań (sortowanie scalające, aby wymienić jedno) jest optymalne, dowód polega na obliczeniu wysokości drzewa za pomocą n ! pozostawia.O(nlogn)n!

  2. Zakładając, że Unique Games Conjecture, Khot, Kindler, Mossel i O'donnell pokazali, że NP-zupełne jest przybliżenie Max-Cut lepiej niż algorytm Goemansa i Williamsona. Tak więc w tym sensie G&W jest optymalna (zakładając również, że ).PNP

  3. Niektóre rozproszone algorytmy mogą być optymalne w odniesieniu do niektórych warunków (np. Odsetek procesorów przeciwnych), ale skoro wspomniałeś o maszynach Turinga, to chyba nie tego rodzaju przykładów szukasz.


2
To, czy punkt 2 odpowiada na pytanie, zależy od tego, co pytający rozumie przez „optymalny”, chociaż wątpię, czy pytający pyta w tym sensie (w przeciwnym razie istnieje wiele, wiele ścisłych wyników zbliżenia, które nawet nie wymagają UGC). Co więcej, nie sądzę, aby którykolwiek z punktów 1 lub 3 odpowiadał na pytanie.
Tsuyoshi Ito

@TsuyoshiIto, trudno zgadnąć, co dokładnie pytający miał na myśli, co skłoniło mnie do wypróbowania odpowiedzi w różnych kierunkach w nadziei, że trafię w coś przydatnego dla niego / niej. Nawiasem mówiąc, co sprawia, że ​​mówisz, że (1) nie jest poprawną odpowiedzią?
Shir

2
Pytający w szczególności pyta o algorytm optymalny dla maszyny Turinga .
Tsuyoshi Ito

6
Czy „sortowanie porównawcze” jest w rzeczywistości „problemem”? Czy jest to problem i ograniczenie modelu obliczeniowego?
Jeffε

3

Załóżmy, że dane wejściowe są podane i poprosił aby zdecydować, czy maszyna RAM M kończy się wejściowym x po t krokach. Według twierdzenia o hierarchii czasowej optymalnym algorytmem do podjęcia takiej decyzji jest symulacja wykonania M ( x ) dla tw=M,x,tMxtM(x)t kroków, które można wykonać w czasie .O(t)

(Uwaga: w przypadku maszyn Turinga symulacja wykonania wymaga wykonania kroków O ( t log t ) ; znamy tylko dolną granicę Ω ( t ) . Nie jest to zatem optymalne w przypadku maszyn Turinga).MO(tlogt)Ω(t)

Istnieje kilka innych problemów, które zawierają wersję problemu zatrzymania jako podprzykład. Na przykład podjęcie decyzji, czy zdanie jest konsekwencją WS1S, wymaga czasu 2 O ( | θ | ) i jest to optymalne.θ2↑↑O(|θ|)


3

Nie jestem pewien, co rozumiesz przez „nietrywialny”, ale co powiesz na to. . Dlatego ten język nie jest regularny, więc każda TM decydująca się na to musi działać w Ω ( n log n )L={02k|k0}Ω(nlogn) . Prosty algorytm (przecinanie wszystkich pozostałych 0) jest optymalny.


3

Jeśli pozwalasz na problemy z dynamiczną strukturą danych, znamy niektóre algorytmy superliniowe optymalne pod względem czasu. Jest tak w modelu sondy komórkowej, który jest tak silny jak słowo RAM, tzn. Nie jest to model ograniczony, taki jak algebraiczne drzewa decyzyjne.

A[1],,A[n]

  • ΔA[i]iΔ
  • j=1iA[i], given i

You can easily support both operations in O(logn) time with a data structure based on an augmented binary tree with A[i] at the leaves. Patrascu and Demaine showed this is optimal: for any data structure there is a sequence of n additions and prefix sum queries that must take Ω(nlogn) time total.

Another example is union find: start with a partition of {1,n} into singletons, and keep a data structure that allows the two operations:

  • Union: given i and j, replace the part containing i and the part containing j with their union
  • Find: given i, output a canonical element from the part containing i

Tarjan showed that the classical disjoint set forest data structure with the union by rank and path compression heuristics takes O(α(n)) time per operation, where α is the inverse Ackermann function. Fredman and Saks showed this is optimal: for any data structure there exists a sequence of n union and find operations which must take Ω(nα(n)) time.


1

Many streaming algorithms have upper bounds matching their lower bounds.


0

istnieją dwa dość podobne algorytmy wyszukiwania, które [rozumiem, że] są optymalne w oparciu o określone ograniczenia dotyczące kolejności / dystrybucji danych wejściowych. jednak prezentacje algorytmów zwykle nie podkreślają tej optymalności.

cytuję wikipedię powyżej, ale nie ma ona dowodów na to, że są one optymalne, może publiczność może znaleźć inne odniesienia, które dowodzą optymalności.


-1

Many sublinear time algorithms have upper bounds matching their lower bounds.


3
Flagged as a duplicate.
Jeffε

Sublinear time algorithm and streaming algorithm are different areas.
Bin Fu

1
That's true, but you should combine the answers into one.
Suresh Venkat

Some examples of optimal sublinear time algorithms can be
Bin Fu

1
it is also not clear why this is not a duplicate of the query complexity answer.
Artem Kaznatcheev
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.