Klasy złożoności dla przypadków innych niż „najgorszy przypadek”

10

Czy mamy klasy złożoności w odniesieniu do, powiedzmy, złożoności średnich przypadków? Na przykład, czy istnieje (nazwana) klasa złożoności dla problemów, których podjęcie wymaga wielomianu?

Kolejne pytanie dotyczy złożoności najlepszych przypadków , których przykłady przedstawiono poniżej:

Czy istnieje klasa (naturalnych) problemów, których decyzja wymaga co najmniej wykładniczego czasu?

Aby to wyjaśnić, zastanów się nad językiem uzupełnionym o EXP . Oczywiście nie wszystkie wystąpienia wymagają czasu wykładniczego: Istnieją przypadki, które można rozstrzygnąć nawet w czasie wielomianowym. Zatem najlepszą złożonością przypadku nie jest czas wykładniczy.LL.L.L.

EDYCJA: Ponieważ pojawiło się kilka niejasności, chcę spróbować wyjaśnić to jeszcze bardziej. Przez złożoność „najlepszego przypadku” rozumiem klasę złożoności, której złożoność problemów jest ograniczona przez jakąś funkcję. Na przykład zdefiniuj BestE jako klasę języków, których nie można ustalić w czasie krótszym niż pewien liniowy wykładniczy. Symbolicznie niech oznacza dowolną maszynę Turinga, a , i będą liczbami naturalnymi:c n 0 nM.don0n

L.bmistmi (do)(M.)[(L.(M.)=L.)(n0)(n>n0)(x{0,1}n)[T.(M.(x))2)do|x|]]

gdzie oznacza czas potrzebny do zatrzymania się na wejściu .M xT.(M.(x))M.x

Zgadzam się, że zdefiniowanie takiej klasy problemów jest bardzo dziwne, ponieważ wymagamy, aby każda maszyna Turinga , niezależnie od jej mocy, nie mogła decydować o języku w czasie krótszym niż jakiś liniowy wykładniczy.M.

Zauważ jednak, że odpowiednik czasu wielomianowego ( BestP ) jest naturalny, ponieważ każda maszyna Turinga wymaga czasuprzynajmniej odczytać jego dane wejściowe.|x|

PS: Może zamiast kwantyfikować jako „dla całej maszyny Turinga ”, musimy ograniczyć ją do niektórych wcześniej określonych klas maszyn Turinga, takich jak maszyny Turinga z wielomianowym czasem. W ten sposób możemy zdefiniować klasy takie jak , która jest klasą języków wymagających co najmniej kwadratu czasu na decyzję na maszynach Turinga z czasem wielomianowym.B e s t ( n 2 )M.bmist(n2))

PS2: Można również rozważyć odpowiednik złożoności obwodu, w którym decydujemy o najmniejszym rozmiarze / głębokości obwodu, aby wybrać język.

MS Dousti
źródło
Tylko dlatego, że istnieją przypadki SAT, które są łatwe, nie oznacza to, że oczekiwany czas jest wielomianowy. Nie jestem pewien, czy rozumiem twoje pytanie.
Lev Reyzin
@Lev Reyzin: Nie miałem na myśli, że SAT jest w oczekiwanym czasie pracy. Chodzi mi o to, że ponieważ SAT ma łatwe instancje, nie możemy powiedzieć, że złożoność „najlepszego przypadku” jest trudna.
MS Dousti,
Och, rozumiem, średnia złożoność przypadku i złożoność najlepszego przypadku to dwa osobne pytania! Jakoś mi tego brakowało w pierwszym czytaniu - mój błąd.
Lew Reyzin
Nie mogę dokładnie przeanalizować twojej definicji BestE. M i x siedzą poza ich kwantyfikacją ... również, czy nie chcesz, aby odrzucał dane wejściowe, które nie są w L ? M.L.
Ryan Williams,
@Ryan: Dzięki za zwrócenie uwagi na wadę. Poprawiłem to.
MS Dousti,

Odpowiedzi:

13

Chociaż nie mogę dokładnie przeanalizować twoich definicji, powinieneś wiedzieć, że znane są znacznie silniejsze hierarchie czasu, w szczególności hierarchie czasu „prawie wszędzie”.

Oto formalne stwierdzenie: dla każdego czasu istnieje język L T I M E [ T ( n ) ] z właściwością, że każdy algorytm deterministyczny, który poprawnie rozpoznaje L, musi działać w czasie asymptotycznie większym niż t ( n ) na wszystkich, ale nieskończenie wielu wejściach, przez wystarczająco krótki czas t ( n ) . T(n)LTIME[T(n)]Lt(n)t(n)

„Wystarczająco mały” oznacza .t(n)logt(n)o(T(n))

Załóżmy, że wybór dla przykładu i uzyskania języka twardego L . Następnie każdy algorytm, który poprawnie rozpoznaje L, musi zająć co najmniej 2 n / n 2 czasu na wszystkich wejściach o określonej długości. To wydaje się być tym, czego szukasz w swojej klasie BestE.T(n)=2nLL.2)n/n2)

Odniesienie:

John G. Geske, Dung T. Huynh, Joel I. Seiferas: Uwaga na temat prawie kompleksowych zestawów i oddzielania klas deterministyczno-złożoności Inf. Comput. 92 (1): 97–104 (1991)

Ryan Williams
źródło
Bardzo dobrze dzięki. Myślę, że całkiem dobrze zrozumiałeś moje pytanie, a twoje zdanie wprowadzające „Nie mogę dokładnie przeanalizować twoich definicji” jest tylko oznaką twojej skromności :)
MS Dousti
2
Pod warunkiem, że poprawnie zgadłem, twoja definicja powinna wyglądać następująco: „L \ w BestE \ iff (\ istnieje c) (\ forall M) [(L (M) = L) \ Rightarrow (\ istnieje n_0) (\ forall n > n_0) (\ forall x \ in \ {0,1 \} ^ n) [T (M (x))> 2 ^ {c | x |})]. "
Ryan Williams,
Tak, masz rację. Zredagowałem definicję w ostatniej chwili i zgubiłem niektóre z kwantyfikatorów. Poprawiłem pytanie na podstawie twojej definicji.
MS Dousti,
12

Istnieje szereg klas, które próbują zmierzyć się z różnymi pojęciami złożonej średniej wielkości przypadków. W Zoo Złożoności niektóre klasy, którymi możesz być zainteresowany, to:

Śr

HeurP

DistNP

(NP, P-samplable)

Arora / Barak obejmuje wiele podobnych klas (w rozdz. 18), definiujących distP, distNP i sampNP.

Dokładny związek między wszystkimi tymi klasami charakteryzuje Pięć Światów Impagliazza, o które wcześniej pytano w innym pytaniu .

Jeśli chodzi o pytanie o złożoność „najlepszego przypadku”, nie jestem pewien, czy rozumiem, co masz na myśli. Szukasz EXP ?

Jeśli masz na myśli klasy złożoności zdefiniowane w kategoriach najlepszego czasu działania wszystkich przypadków, nie jest to a priori bardzo dobra miara złożoności, ponieważ patrzysz tylko na trywialne przypadki dowolnego problemu.

Daniel Apon
źródło
Bardzo dobrze zrobione! Tego właśnie potrzebowałem w części pytania dotyczącej średniej złożoności przypadków. W odniesieniu do części „najlepszego przypadku” zauważyłem, że pierwotne stwierdzenie pytania było niejasne. Mój błąd! Często go edytowałem, więc proszę, przeczytaj go ponownie.
MS Dousti,
5

[Rozszerzając odpowiedź Ryana Williamsa i dodając dla ciebie pewne wyszukiwane hasła] Twoje pojęcie najlepszej złożoności przypadku ma już nazwę: prawie wszędzie (ae) twardość lub odporność biologiczna. (Przykład Ryana jest -bi-odporność). Jeśli C jest klasa złożoności, a następnie język L jest C -immune jeśli nie ma nieskończony podzbiór L 'L takie, że L 'C . L jest odporny na C, jeśli zarówno L, jak i jego dopełniacz ¯ LT.jaM.mi[T.(n)]doL.doL.L.L.doL.doL. oznacza C- odporność. Na przykład nietrudno wykazać, że twoja definicja B e s t E jest równoważna klasie zbiorów E -odpornych.L.¯=ΣL.dobmistmimi

(Na marginesie: pojęcie odporności zostało po raz pierwszy rozwinięte przez Posta w 1944 r. W teorii obliczeń, na długo przed zdefiniowaniem P. Post faktycznie uważano za „zbiory proste” - zbiór jest prosty, jeśli jego dopełnienie jest odporne. Dla teoretyków obliczeń, słowo „odporny” zwykle oznacza „odporny na zestawy obliczalne”. W tym ustawieniu odporność jest równoważna „zestawom odpornym na ce”, ponieważ każdy nieskończony zestaw ce zawiera nieskończony zestaw obliczeniowy. Uważam, że artykuł Posta był również pierwszym, który wprowadził pojęcie redukcji wielu, ale nie mogłem tego przysiąc.)

Joshua Grochow
źródło
M.L.L.M.(x)=1
L.L.do
1
@Sadeq: naprawiono, dziękuję. @Ryan: True (lub to było kilka godzin temu: od tego czasu zaktualizował definicję). Wtedy byłaby to odporność zamiast podwójnej odporności. Tak czy inaczej, głównie chciałem tylko zwrócić uwagę na słowo kluczowe „odporność”.
Joshua Grochow
2

Różne przypadki mają większy sens, gdy mówimy o algorytmach, a nie problemach. Z drugiej strony klasy złożoności dotyczą problemów, a nie algorytmów. Dlatego klasa złożoności, która zawsze stanowi najgorszy przypadek dla dowolnego algorytmu, wynika z definicji.

Złożonym celem jest znajomość liczby zasobów potrzebnych do rozwiązania dowolnego wystąpienia danego problemu. Dlatego wiesz, że dla każdego wystąpienia i algorytmu będziesz potrzebować tych zasobów i nic więcej.

W analizie algorytmów Twoim celem jest upewnienie się, że algorytm ma górną granicę dla zasobu, w każdym przypadku problemu. Trywialną granicą jest klasa złożoności problemu, ponieważ żaden przydatny (niepotrzebny krok) algorytm nie zajmuje więcej czasu. Można jednak poprawić tę granicę, biorąc pod uwagę specyfikę algorytmu.

Θ

Jeśli chodzi o najlepszy przypadek, dla każdego problemu znalezienie najmniejszej liczby potrzebnych zasobów jest banalne. Załóżmy, że wejście ma długość O (n), a wyjście o długości O (m). Następnie następujący TM M zawsze działa w O (n) + O (m) w najlepszym przypadku:

M {Dane wejściowe, wystąpienie, rozwiązanie}

  1. Porównaj dane wystąpienie z wystąpieniem zakodowanym w komputerze.
  2. Jeśli są równe, zwróć zakodowane rozwiązanie.
  3. W przeciwnym razie przeszukaj brutalną siłę.
chazisop
źródło
-1

O(1)

umar
źródło
1
Nie sądzę, że liczy się to jako poprawny algorytm dla problemu. Jednak algorytm można zmodyfikować, aby najpierw sprawdził, czy dane wejściowe są równe określonej instancji, którą wcześniej zdefiniowałeś (w czasie O (1)). Jeśli tak, wyświetla wstępnie obliczoną odpowiedź. Jeśli nie, rozwiązujesz daną instancję w jakikolwiek sposób. Myśląc o tym, każdy poprawny algorytm działa w czasie O (1) dla każdej instancji, jeśli możemy wziąć różne stałe za notacją O dla różnych instancji. Dlatego „złożoność najlepszych przypadków” w dosłownym tego słowa znaczeniu nie jest przydatna.
Tsuyoshi Ito,
Jeśli mówisz o deterministycznym, nieprobabilistycznym obliczeniu, zajęłoby to czas liniowy (O (n)), aby sprawdzić, czy dwa kodowania instancji są równoważne: zeskanuj n bitów kodowania wejściowego i sprawdź, czy jest taki sam jako zaprogramowane kodowanie, nie?
Daniel Apon,
2
@Daniel: Tak, ale jeśli jedna z instancji jest stała, zajmuje to tylko czas stały, przy czym stała zależy od długości stałej instancji.
Tsuyoshi Ito,