Wykorzystanie złożoności Kołmogorowa jako wejściowego „rozmiaru”


21

S

I(n)={wS:|w|=n}
nT(w)AwA
fn=maxwI(n)T(w).

Zdefiniujmy teraz zbiory wszystkich danych wejściowych o złożoności Kołmogorowa , i zdefiniujmy sekwencję Tutaj jest średnią sekwencją czasu pracy dla , z wyjątkiem przypadków, gdy „rozmiar” danych wejściowych jest złożonością Kołmogorowa, a nie ich długością.n f K n = 1

IK(n)={wS:K(w)=n}
nfKA
fnK=1|IK(n)|wIK(n)T(w).
fKA

Czy istnieją algorytmy, dla których jest asymptotycznie znacząco różne od ? Jeśli tak, to czy występują problemy, których złożoność czasowa zmienia się podczas korzystania z tego innego sposobu analizy algorytmów?f K nfnfnK


4
Świetne pytanie! Często zastanawiałem się - mam nadzieję, że otrzyma kilka dobrych odpowiedzi. (Dodałem tag sparametryzowana złożoność b / c, można to postrzegać jako pytanie o sparametryzowaną złożoność np. SAT, gdzie parametrem jest złożoność Kołmogorowa.)
Joshua Grochow

3
Losowe struny, czyli większość strun, mają złożoność Kołmogorowa w pobliżu ich pierwotnej długości. Dla zdecydowanej większości danych wejściowych Możesz uzyskać bardziej interesujący wynik, jeśli zapytasz o głębokość obliczeniową zamiast złożoności Kołmogorowa. google.com/…fn=fnK
Chad Brewbaker

2
Przez zmieszanie w niektórych przypadkach PARITY w trudny język z utworzeniem (np. Przez poprzedzenie każdego wystąpienia nieco przełącznikiem, który opisuje, z którego języka pochodzi instancja), wtedy będzie mniejsze niż . To, jak małe zależy od gęstości względnej. f K n f nSfnKfn
András Salamon

1
Jedno miejsce znajduje się w notatkach z wykładu Vadhana tutaj (19 lutego): people.seas.harvard.edu/~salil/cs221/spring10/lectures.html
usul

1
@ AndrásSalamon, tak, mam nadzieję, że nie jestem zbyt niechlujny, ale myślę, żepowinna być zasadniczo funkcją bobra zajętego. nmaxw:K(w)=n|w|
usul

Odpowiedzi:


14

Rozważ funkcję parzystości (lub dowolną inną funkcję, która zależy od wszystkich / większości bitów wejścia). Dla funkcji parzystości . Więc Z drugiej strony, f n = Θ ( n ) . f K n = Θ ( 1T(w)=Θ(|w|)

fn=Θ(n).
fnK=Θ(1|IK(n)|w:K(w)=n|w|)Ω(12nmaxw:K(w)=n|w|).

Zauważ, że . Zatem i . Podobnie, ; dlatego „rośnie bardzo szybko”. Co więcej, to nie trudno zauważyć, że nie jest obliczalny górna granica dla .max w : K ( w ) = n | w | 2 2 Ω ( n ) f K n2 2 Ω ( n ) / 2 nK ( 2 2 2 n ) = O ( n ) f K nK(22n)=O(n)

maxw:K(w)=n|w|22Ω(n)
fnK22Ω(n)/2nK(222n)=O(n)f K nfnK222Ω(n)/2nfnK

9

Biorąc pod uwagę zainteresowanie tym pytaniem, pomyślałem, że bardziej pomocne może być wyraźniejsze wskazanie powodu, dla którego nie powinniśmy być wcale zaskoczeni odpowiedzią i starać się podać kierunek dla doprecyzowania pytania. To zbiera i rozwija się w przypadku niektórych komentarzy. Przepraszam, jeśli to „oczywiste”!

Rozważ zestaw ciągów złożoności Kołmogorowa : Istnieje najwyżej takich ciągów, ponieważ istnieją opisów długości . Zauważ jednak, że ten zestaw jest nierozstrzygalny dla ogólnego (w przeciwnym razie moglibyśmy obliczyć po prostu przez iterację od do i sprawdzenie członkostwa w ). Ponadto funkcja rośnie nieobliczalnie szybko. Jest to wariant funkcji bobra zajętego: jaka jest najdłuższa wydajność maszyny Turinga o długości opisun

JK(n)={w:K(w)=n}.
2n2nnnK(w)n=1|w|JK(n)
gK(n)=maxwJK(n)|w|
n? Gdyby to rosło wolniej niż jakaś funkcja obliczeniowa, moglibyśmy zdecydować o problemie zatrzymania: Biorąc pod uwagę TM , konstruuj który symuluje i wypisuje na każdym kroku. Jeżeli długość opisu wynosi , to albo: zatrzymuje się co najwyżej kroków; lub nie zatrzymuje się.MMM1MnMgK(n)M

Teraz, na pytanie Andrzeja, mamy, że , gdzie jest językiem oryginalnym. Tak więc jedynym sposobem uniknięcia zawierającego dane wejściowe bardzo duże w byłoby, gdyby zawierało tylko bardzo nieściśliwe łańcuchy. (Zauważ, że w przeciwnym razie możemy całkowicie zignorować rozróżnienie między analizą najgorszego i średniego przypadku, ponieważ uśredniamy co najwyżej ciągów, ale rozmiar największego ciągu rośnie szybciej niż jakakolwiek obliczalna funkcja . )IK(n)=SJK(n)SIK(n)nS2nn

Wydaje mi się, że prawdopodobnie nie jest możliwe zbudowanie nietrywialnej (tj. Nieskończonej) litery która zawiera tylko nieściśliwe łańcuchy, ale jest rozstrzygalna. Ale nie wiem. Mamy jednak nadzieję, że daje to intuicję, dlaczego nie powinniśmy mieć nadziei, że w większości języków rosło wolniej niż funkcja obliczalna.SfnK

Aby cofnąć się nieco, pytanie polega na porównaniu wydajności na wejściach o długości do wydajności na wejściach, które można skompresować do długości . Ale mamy pojęcia kompresji, które są znacznie łatwiejsze do opanowania (i mniej skuteczne) niż złożoność Kołmogorowa. Prostym sposobem jest podanie obwodu o rozmiarze , który na wejściu liczby binarnej wytwarza ty bit . Zauważ, że tutaj powiększenie wielkości wejściowej jest co najwyżej wykładnicze (obwód o wielkości ma co najwyżej możliwych sygnałów wejściowych).nnnbbwn2n

Możemy więc przeformułować pytanie, pozwalając I analogicznie zdefiniuj . Powodem nadziei jest to, że większość łańcuchów wymaga obwodu prawie tak dużego jak sam łańcuch i żadne łańcuchy nie są wykładniczo większe niż wymagany obwód. Być może w tym przypadku moglibyśmy znaleźć języki, w których i są podobne asymptotycznie.

IC(n)={wS:the smallest circuit implicitly specifying w has size n}.
fnCfnfnC

Dość blisko spokrewnionym pytaniem jest złożoność niejawnych języków, takich jak IMPLICIT_SAT jest NEXP-zupełny, i zwykle niejawna wersja problemów NP-zupełnych jest NEXP-zupełna. Zdecydowanie IMPLICIT_SAT jest co najmniej tak proste, jak użycie obwodu do wypisania całego , a następnie uruchomienie algorytmu dla SAT na . Jeśli więc dla SAT, to wydaje się to bliskie dostarczenia dowodów, że IMPLICIT_SAT w średnim przypadku jest prawie tak szybko rozstrzygalny, jak SAT w najgorszym przypadku. Ale nie wiem, jak można by bezpośrednio porównać twoje pojęcie z domyślnymi językami, ponieważ pojęcie „najmniejszego obwodu dla

IMPLICIT_SAT={circuits C:C implicitly specifies w,wSAT}.
wwfnC=Θ(fn)w„nie wchodzi w grę dla domyślnych języków.

Mam nadzieję, że jest to pomocne / interesujące!

Nie jestem pewien podręcznika, który wspomina o ukrytych problemach, ale oto kilka notatek z wykładów: http://people.seas.harvard.edu/~salil/cs221/spring10/lec8.pdf


|JK(n)|=2n ? Ale nie każdy opis jest minimalny.
Andrew

1
@AndrewMacFie, tak, powinno być „co najwyżej”. Naprawię.
usul

Dzięki za dodanie tej odpowiedzi :) Wygląda na to, że jakikolwiek algorytm dla 3-SAT, będzie szybko rósł. fnK
Andrew

4

Łatwym przypadkiem wydaje się być to, że język zawiera tylko wyściełane wystąpienia. Gdy otrzymuje się z języka poprzez impregnowanie każde wystąpienie wielkości o symboli może być w obszarze .S L n 2 n - n f K n 2 f nSSLn2nnfnK2fn


Zauważ, że odpowiedź Yury obejmuje tę odpowiedź, a także precyzuje, że „może znajdować się w regionie”.
András Salamon
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.