Czy istnieje kandydat na naturalny problem w ?

27

Chcę wiedzieć, czy niejednorodność pomaga w praktyce funkcji obliczeniowych. Łatwo jest pokazać, że istnieją funkcje w , weź dowolną funkcję nieobliczalną i rozważ język { }, który wyraźnie ma proste niejednorodne obwody , ale w ogóle nie da się go obliczyć jednolicie, ale to nie są funkcje, którymi się interesuję.P/polyPf0f(n):nω

Czy istnieje funkcja, o której wiemy, że można ją obliczyć nierównomiernie, ale nie wiemy, czy można ją obliczyć jednolicie (lub przynajmniej udowodnienie, że nie można obliczyć jednolicie, nie jest oczywiste)?

W jaki sposób można wykorzystać nierównomierność obwodów do funkcji obliczeniowych, o których nie wiadomo, że można je obliczyć jednorodnie (przy prawie takiej samej ilości zasobów)?

Zauważ, że nie chcę funkcji patologicznych, takich jak funkcje niepoliczalne wspomniane powyżej, chcę naturalnych funkcji, które ludzie są naprawdę zainteresowani komputerami i prawdopodobne jest, że mogą być lub mogłyby być obliczone jednolicie.

Edycja: Wiem, że . Więc odpowiedź, która nie jest wynikiem derandomizacji, jest dla mnie bardziej interesująca.BPPP/poly

Edycja 2: Jak powiedzieli András Salamon i Tsuyoshi Ito w swoich odpowiedziach: , i istnieją problemy w , o których nie wiadomo, że są w , więc formalnie odpowiedzieli na to, o co prosiłem, ale że nie pomaga w tym, co naprawdę mnie interesuje, ponieważ powodem, dla którego są w jest możliwość twardego kodowania rzadkiego języka w obwodzie. Język, który nie jest rzadki, byłby bardziej interesujący.SparseP/polySparsePP/poly

Kaveh
źródło
@ András Salamon, @Tsuyoshi Ito: Dziękuję. Ale interesuje mnie zrozumienie, w jaki sposób niejednorodność może pomóc w funkcjach obliczeniowych. Fakt, że rzadkie języki są w , nie pomaga w tym, są one w tylko dlatego, że możemy „zakodować” je na stałe w obwodzie. Powinienem dodać warunek do mojego pytania, że ​​„język nie jest trywialnie w ”. P/polyP/polyP/poly
Kaveh

Odpowiedzi:

13

Nie wiem, czy to spełnia twoje wymagania, ale blog Billa Gasarcha w lipcu 2010 r. Pyta o języki w SPARSE ∩NP, których nie uważa się za P, podając przykład z teorii Ramseya. Wszelkie takie języki należą do (P / poly) ∩NP.

W związku z tym, dla dowolnego języka L ∈NP, język T L = {1 n : L zawiera jakiś ciąg długości n } jest w TALLY ∩NP ⊆ SPARSE∩NP ⊆ (P / poli) ∩NP. W zależności od wyboru języka L , T L może nie mieć oczywistego powodu, aby należeć do P.

Tsuyoshi Ito
źródło
8

Tsuyoshi Ito elegancko rzadkie frazowanie w innej odpowiedzi nie mówi wprost, ale być może warto wskazać: każdy rzadki język jest w języku P / poly. Wtedy również każdy język tally jest w P / poly (ponieważ każdy język tally jest rzadki).

Tak więc jednym ze sposobów na znalezienie „naturalnych” języków w P / poli, ale nie w P, jest poszukiwanie „twardych” rzadkich języków. Jak zauważyłeś, „najtrudniejszymi” są nierozstrzygalne, gdy są zakodowane w rzadki sposób, na przykład jednoargumentowy. Mówiąc bardziej ogólnie, unarnie zakodowana wersja dowolnego języka spoza EXP będzie wtedy poza P. (Jeśli nie, to rozważ maszynę Turinga w czasie wykładniczym, która generuje jednoargumentowe kodowanie, skomponowaną z maszyną, która rozwiązuje powstały w rezultacie język niezakodowany w czasie który jest wielomianowy w jednostronnym kodowaniu. Jest to wykładniczy rozmiar oryginalnej instancji. Ogólna maszyna następnie działa w wykładniczym czasie.) Jakiś przydatny język z kompletnym 2-EXP może więc odpowiadać twojemu gustowi jako „naturalny” problem.

Zauważ, że rzadki, teoretyczny język Billa Gasarcha wydaje się należeć do kategorii języków skonstruowanych przez sparyfikowanie twardego języka. Jeśli ktoś koduje instancję jako potrójną liczbę dwójkową zamiast dwóch jednorzędowych i jednej dwójkowej, wówczas kolorowanie nie jest już wielomianowe, więc język nie jest oczywiście w NP.

András Salamon
źródło
6

To bardziej przypomina komentarz w odpowiedzi na zmienione pytanie (wersja 3) niż odpowiedź, ale jest zbyt długi na komentarz.

Samo wykluczenie rzadkich języków nie wystarczy, aby wykluczyć języki takie jak { x ∈ {0,1} * : | x | ∈ S } zamiast {1 n : nS }, gdzie S jest nieskończonym podzbiorem {0, 1, 2,…}. Chciałbym zauważyć, że rozróżnienie między przypadkiem, w którym język należy do P / poly, może być trudne, ponieważ jest on „zasadniczo rzadki” (taki jak {1 n : nS } i { x : | x | ∈ S.}) oraz przypadek, w którym język należy do P / poly z innych powodów. Problematyczne jest tutaj, jak zdefiniować termin „zasadniczo rzadki”.

Możesz zdefiniować „niezbędną rzadkość” w następujący sposób: język jest zasadniczo rzadki, jeśli można go zredukować do języka rzadkiego. Należy jednak zachować ostrożność, ponieważ w przypadku tej wielomianowej redukcji Turinga w czasie wielomianowym definicja jest równoznaczna z przynależnością do P / poly!

Oczywistą rzeczą, którą należy wypróbować, jest zastosowanie wielomianowej redukcji wielokrotności w czasie wielomianowym. Nie wiem, czy jest to równoznaczne z członkostwem w P / poly, nie mówiąc już o tym, czy P / poly zawiera jakiś język naturalny, który nie jest zasadniczo rzadki w tym znaczeniu.

Tsuyoshi Ito
źródło
Właściwie pomyślałem o tym, kiedy zobaczyłem odpowiedzi przed modyfikacją pytania, ponieważ naturalne było wymyślenie logicznej kombinacji rzadkich języków. Pomyślałem, że wykluczenie języków redukujących do języków rzadkich (a może trochę więcej) powinno wystarczyć na moje pytanie, ale wydaje się, że jest to bardziej zaangażowane niż myślałem. AC0
Kaveh
@Kaveh: To może być kolejna dobra definicja słowa „zasadniczo rzadki”. Czytając twój komentarz, zastanawiam się, czy P / poly = P∪ (AC0 / poly) (chyba nie), ponieważ jakikolwiek problem z (P / poly) ∖ ( P∪ (AC0 / poli)) można by powiedzieć, że „można go obliczyć, stosując niejednorodną rodzinę obwodów wielomianowych, naprawdę łącząc moc obwodów wielomianowych z potęgą niejednorodności”
Tsuyoshi Ito
Możliwy problem z moim definicja oparta na jednym z przykładów jest to, czy język jest następujący zasadniczo rzadkie : Sprawdź, czy liczba jedynek na wejściu jest w rozrzedzony języka . (Mówiąc bardziej ogólnie, niech będzie całkowitym problemem funkcji dla klasy złożoności i niech będzie językiem rzadkim. Pomyśl o jako o dużym zakresie podobnym do funkcji NumOnesa. Niech będzie zbiorem s st )SfCSfLxf(x)S
Kaveh
[ciąg dalszy] Inna klasa języków: weź rzadki język i język kompletny dla klasy złożoności a następnie rozważ konkatenację ( to gdzie każdy symbol jest zastąpiony dwiema kopiami , np. 010 staje się 001100). Można również wymagać, aby długość drugiej części w konkatenacji była mniejsza niż długość pierwszej części. Te języki spełniają wszystkie warunki, z wyjątkiem naturalnego problemu, który ludzie są naprawdę zainteresowani rozwiązaniem. SACL=A.01.SAA
Kaveh
@Kaveh: Hmm, rozumiem. Dziękujemy za podzielenie się przykładami. Wycofuję ideę oglądania (P / poli) ∖ (P∪ (AC0 / poli)) jako „P / poli z przyczyn nieistotnych”. Jeśli się nie mylę, oba wasze przykłady są wielomianowe, wielokrotne, wielokrotne rzadki język, więc nadal istnieje nadzieja, że ​​definicja „niezbędnej rzadkości”, którą zasugerowałem w odpowiedzi, może być odpowiednia.
Tsuyoshi Ito