Kiedy randomizacja przyspiesza algorytmy i „nie powinna”?

39

Dowód Adlemana, że jest zawarty w pokazuje, że jeśli istnieje algorytm losowy dla problemu, który działa w czasie na wejściach o rozmiarze , to istnieje również algorytm deterministyczny dla problemu, który działa w czasie na materiale o wielkości [algorytm prowadzi randomizowane algorytm na niezależnych łańcuchów losowości. Musi istnieć losowość powtarzanego algorytmu, który jest dobry dla wszystkichP / p o l yBPPP/polyt(n)nΘ(t(n)n)nΘ(n)2nmożliwe dane wejściowe]. Algorytm deterministyczny jest nierównomierny - może zachowywać się inaczej dla różnych wielkości wejściowych. Argument Adlemana pokazuje, że - jeśli nie zależy na jednolitości - randomizacja może przyspieszyć algorytmy tylko o czynnik liniowy w wielkości wejściowej.

Jakie są konkretne przykłady, w których randomizacja przyspiesza obliczenia (zgodnie z naszą najlepszą wiedzą)?

Jednym z przykładów są testy tożsamości wielomianowej. Tutaj wejściem jest obwód arytmetyczny o wielkości n obliczający wielomian zmienny m na polu, a zadaniem jest ustalenie, czy wielomian jest identyczny zero. Randomizowany algorytm może oceniać wielomian w losowym punkcie, podczas gdy najlepszy znany deterministyczny algorytm (i prawdopodobnie najlepszy, jaki istnieje) ocenia wielomian w wielu punktach.

Innym przykładem jest minimalne drzewo opinające, w którym najlepszym randomizowanym algorytmem Kargera-Kleina-Tarjana jest czas liniowy (a prawdopodobieństwo błędu jest wykładniczo małe!), Podczas gdy najlepszy algorytm deterministyczny Chazelle działa w czasie ( jest odwrotną funkcją Ackermanna, więc przyspieszenie randomizacji jest naprawdę małe). Co ciekawe, Pettie i Ramachandran udowodnili, że jeśli istnieje nierównomierny deterministyczny algorytm liniowego czasu dla minimalnego drzewa rozpinającego, wówczas istnieje również jednolity deterministyczny algorytm liniowego czasu.O(mα(m,n))α

Jakie są inne przykłady? Jakie znasz przykłady, w których przyspieszenie randomizacji jest duże, ale prawdopodobnie dlatego, że nie znaleźliśmy jeszcze wystarczająco wydajnych algorytmów deterministycznych?

Dana Moshkovitz
źródło
5
Ściśle związane: problemy w BPP nie są znane w P
usul
Zawsze możesz przekonwertować dowolny randomizowany algorytm na algorytm deterministyczny, zastępując generator losowy generatorem pseudolosowym o jakości kryptograficznej. Przy prawdopodobnych założeniach kryptograficznych, że zgodnie z naszą najlepszą wiedzą są prawidłowe, działa to dobrze. Dlatego moja odpowiedź brzmiałaby: „zgodnie z naszą najlepszą wiedzą odpowiedź brzmi: nie ma takich problemów w świecie rzeczywistym”. (Innymi słowy, zgodnie z naszą najlepszą wiedzą, luka w środowisku wykonawczym odzwierciedla naszą niezdolność do udowodnienia ścisłych granic środowiska wykonawczego, a nie jakąkolwiek rzeczywistą różnicę leżącą u jego podstaw.)
DW
1
Przy rozsądnych założeniach dotyczących twardości można podać losowość algorytmu z generatora pseudolosowego, jednak aby z tego uzyskać algorytm deterministyczny, należy uruchomić algorytm na wszystkich możliwych nasionach. Zwiększa to czas działania!
Dana Moshkovitz
Oprócz argumentu Dany, myślę, że aby zdemoralizować BPP, PRG musi działać dłużej niż oryginalny algorytm (choć nie wiem, co to musi być luka). Może to również ilustrować (podstawową?) Lukę między pewnością a wykładniczo wysoką pewnością: wystarczy powtórzyć losowy algorytm razy (dla dowolnej stałej ), aby uzyskać prawdopodobieństwo poprawności , ale wersja deterministyczna musi sprawdzić wszystkie wielomianowo wiele nasion. cc2O(c)
usul
@DanaMoshkovitz, zależy od tego, czy podejdziesz do tego z perspektywy teoretycznej, czy z perspektywy praktyka. Z perspektywy praktyka nie, nie musisz tego robić. Zobacz konstrukcję, którą zarysowałem w cs.stackexchange.com/a/41723/755 , która uruchamia algorytm tylko na nasionach . W modelu losowej wyroczni można wykazać, że nie ma wzrostu asymptotycznego środowiska uruchomieniowego i żaden przeciwnik związany z obliczeniami prawdopodobnie nie będzie w stanie znaleźć danych wejściowych do algorytmu, w którym algorytm wygeneruje złą odpowiedź. Jest to prawdopodobnie wystarczające do wszystkich praktycznych celów. O(1)
DW

Odpowiedzi:

28

Nie wiem, czy randomizacja „powinna” czy „nie powinna” pomóc, jednak badanie pierwszeństwa liczb całkowitych może być wykonane w czasie przy użyciu randomizowanego Millera – Rabina, podczas gdy o ile mi wiadomo, najbardziej znanymi algorytmami deterministycznymi są przyjmując bezwzględnie GRH (deterministyczny Miller – Rabin) lub bezwarunkowo (warianty AKS).O~(n2)O~(n4)O~(n6)

Emil Jeřábek wspiera Monikę
źródło
Chociaż istnieją powody, by sądzić, że najmniejszym świadkiem złożoności dla jest rząd , co dałoby algorytm . Ale pozostaje to niesprawdzone nawet przy standardowych teoretycznych przypuszczeniach liczbowych, takich jak warianty RH. NlogNloglogNO~(n3)
Emil Jeřábek wspiera Monikę
Problemem podobnym jest wielomianowe testowanie nieredukowalności na polach skończonych, gdzie ponownie znany algorytm deterministyczny ma gorsze granice niż algorytmy losowe, ale nie pamiętam szczegółów.
Emil Jeřábek wspiera Monikę
19

Starym przykładem jest obliczanie objętości. Biorąc pod uwagę polytop opisany przez wyrocznię członkowską, istnieje algorytm losowy działający w czasie wielomianowym, aby oszacować jego objętość do współczynnika , ale żaden algorytm deterministyczny nie może zbliżyć się nawet bezwarunkowo .1+ϵ

Pierwszym przykładem takiej randomizowanej strategii był Dyer, Frieze i Kannan, a wynik twardości dla algorytmów deterministycznych to Bárány i Füredi. Alistair Sinclair ma ładne notatki z wykładów na ten temat .

Nie jestem pewien, czy w pełni rozumiem część pytania „i nie powinno”, więc nie jestem pewien, czy to pasuje do rachunku.

Suresh Venkat
źródło
1
Byłem świadomy metody MCMC, ale nie tej dolnej granicy i jestem dość zaskoczony (myślałem, że wszystkim, co było znane, była twardość # P). Artykuł jest „Obliczanie objętości jest trudne”, dostępny na stronie internetowej Füredi , i podają one dolną granicę zasadniczo określającą, jak dobrze głośność można przybliżać. [n/logn]n
Jeremy Kun,
9

nie wiem, czy to odpowiada na twoje pytanie (lub przynajmniej jego część). Ale w rzeczywistych przykładach, w których randomizacja może przyspieszyć, są problemy z optymalizacją i związek z twierdzeniem No Free Lunch ( NFL ) .

Istnieje artykuł „Być może nie darmowy lunch, ale przynajmniej darmowa przystawka”, w którym wykazano, że zastosowanie algorytmów randomizacji (optymalizacji) może mieć lepszą wydajność.

Abstrakcyjny:

Często twierdzi się, że algorytmy ewolucyjne są lepsze od innych technik optymalizacji, w szczególności w sytuacjach, w których niewiele wiadomo na temat funkcji celu, która ma być zoptymalizowana. W przeciwieństwie do tego Wolpert i Macready (1997) udowodnili, że wszystkie techniki optymalizacji zachowują się tak samo - średnio we wszystkich prawo w prawo gdzie i są zbiorami skończonymi. Wynik ten nazywa się twierdzeniem o braku darmowego lunchu. Poniżej przedstawiono różne scenariusze optymalizacji. Argumentuje się, dlaczego scenariusz, na którym opiera się twierdzenie o braku darmowego lunchu, nie modeluje optymalizacji w prawdziwym życiu. W przypadku bardziej realistycznych scenariuszy argumentuje się, dlaczego techniki optymalizacji różnią się wydajnością. Na mały przykład to twierdzenie zostało udowodnione.X Yf:XYXY

Bibliografia:

  1. Brak darmowych twierdzeń na lunch dla optymalizacji (oryginalne twierdzenie NFL dla optymalizacji)
  2. Być może nie darmowy lunch, ale przynajmniej darmowa przekąska
  3. Długość bez darmowego lunchu i opisu (pokazuje, że wyniki NFL obowiązują dla dowolnego podzbioru zestawu wszystkich możliwych funkcji iff jest zamknięty pod permutacją, filiżanka )F.FF
  4. Na klasach funkcji, dla których nie ma wyników darmowego lunchu (Udowodniono, że część podgrup, które są pucharami, jest nieznacznie mała)
  5. Dwie szerokie klasy funkcji, dla których nie występuje wynik braku darmowego lunchu (pokazuje, że wynik NFL nie ma zastosowania do zestawu funkcji, gdy długość opisu funkcji jest wystarczająco ograniczona)
  6. Ciągłe obiady są bezpłatne oraz zaprojektowanie optymalnych algorytmów optymalizacyjnych (pokazuje, że w domenach ciągłych nie ma [oficjalnej wersji] NFL . To twierdzenie o darmowym obiedzie opiera się na sformalizowaniu koncepcji funkcji losowej sprawności za pomocą pól losowych )
  7. Beyond No Free Lunch: Realistyczne algorytmy dla arbitralnych klas problemów (pokazuje, że „.. [a] naruszenia twierdzeń o No Free Lunch mogą być wyrażone jako niejednolite rozkłady dla podzbiorów problemowych, które są pucharami ”)
  8. Algorytmy metaheurystyczne oparte na roju i twierdzenia o braku wolnego obiadu („[… t] stąd) wyniki nieodnawiających iteracji uporządkowanych w czasie mogą nie być prawdziwe dla przypadków ponownego przeglądania przypadków, ponieważ iteracje powtórne łamią ważne założenie puchar wymagany do udowodnienia twierdzeń NFL (Marshall i Hinton, 2010) ”)
  9. Bez darmowego lunchu i losowości algorytmicznej
  10. Brak darmowego lunchu i benchmarków (podejście teoretyczne jest uogólnione na kryteria niespecyficzne dla pucharu , ale nadal zauważa, że ​​(nietrywialne) algorytmy randomizowane mogą przewyższać algorytmy deterministyczne średnio ”[…] wykazano, że prawdopodobieństwo jest niewystarczające, aby potwierdzić nieskrępowane wyniki NFL w ogólnym przypadku. [...] ten artykuł rezygnuje z prawdopodobieństwa, preferując ramy teoretyczne, które eliminują ograniczenia teoretyczne poprzez całkowite zrezygnowanie z prawdopodobieństwa ”)

Podsumowanie posiłków bez lunchu (i bezpłatnych obiadów) autorstwa Davida H. Wolperta, Ile kosztuje kolacja? ( zauważ, że twierdzenia typu NFL nigdy nie określają rzeczywistej „ ceny ” ze względu na ich rodzaj dowodu)

w szczególności w przypadku optymalizacji uogólnionej (GO):

  1. Dwa miejsca i . Np. to wejścia, to rozkłady na wyjścia.Z X ZXZXZ

  2. Funkcja fitnessf:XZ

  3. m (być może powtórzone) próbkowane punkty : gdzie , każdy a (być może stochastyczna) funkcjaf

    dm={dm(1),dm(2),...,dm(m)}
    t
    dm(t)={dmX(t),dmZ(t)}
    dmZ(t)f[dmX(t)]
  4. Algorytm wyszukiwaniaa={dtdmX(t):t=0..m}

  5. Euklidesowa wektorowa funkcja kosztuC(f,dm)

  6. Aby uchwycić szczególny rodzaj problemu optymalizacji, duża część struktury problemu jest wyrażona wC(.,.)

Twierdzenia NFL zależą przede wszystkim od niezależności od . Jeśli zależy od , możliwe mogą być bezpłatne obiady. Np. Mieć niezależne od , chyba że .f C f C ( f , d m ) f = f CfCfC(f,dm)f=f

Wreszcie prosta (i nie tak prosta) uwaga, dlaczego randomizacja (w takiej czy innej formie) może zapewnić lepszą wydajność niż algorytmy ściśle deterministyczne.

  1. W kontekście optymalizacji (choć nie jest to ograniczone w tym przypadku), losowa procedura wyszukiwania może przeciętnie uciec ekstremum lokalnemu lepiej niż wyszukiwanie deterministyczne i osiągnąć ekstrema globalną.
  2. Na pierwszy rzut oka istnieje interesująca (ale również nie prosta) zależność między porządkowaniem, licznością i randomizacją zbioru (w sensie ogólnym). PowerSet o zadanej (i jego liczności) intrinsicaly zależy od pewnej (staticaly) ustalonej kolejności zestawu (elementy) . Zakładając, że kolejność na (elementach) nie jest (statycznie) ustalona (tutaj można wprowadzić randomizację w postaci losowego uporządkowania), zestaw może być w stanie reprezentować swój własny zestaw mocy (jeśli pomaga myśleć o tym jako o rodzaju z analogowym kwantowej klasycznego zestawu, gdzie dynamiczny zamawiania odgrywa taką rolę, by stanowiły pewnego rodzaju zasady superpozycji ). A A A A2AAAAA
Nikos M.
źródło
1

Najlepszy przykład znajduje się w obszarze uważanym obecnie za najlepszych kandydatów na OWF, gdzie wydaje się, że każda popularna OWF, która jest ugotowana niespodziewanie, ma losowy algorytm subwykładniczy, podczas gdy nie istnieje deterministyczny algorytm sub wykładniczy (na przykład faktoryzacja liczb całkowitych). W rzeczywistości w wielu przypadkach prawdopodobnie istnieje wydajny algorytm z pewnymi ciągami porad (kryptoanaliza).

T ....
źródło
-5

Jeśli masz algorytm wykorzystujący randomizację, zawsze możesz go zastąpić deterministycznym algorytmem wykorzystującym liczby pseudolosowe: weź opis problemu, oblicz kod skrótu, użyj tego kodu skrótu jako materiału wyjściowego dla dobrego generatora liczb pseudolosowych . W praktyce to właśnie może się zdarzyć, gdy ktoś zaimplementuje algorytm przy użyciu randomizacji.

Jeśli pominiemy kod skrótu, wówczas różnica między tym algorytmem a algorytmem wykorzystującym prawdziwą randomizację polega na tym, że mogę przewidzieć sekwencję wygenerowanych liczb losowych i mógłbym stworzyć problem taki, że przewidywana liczba losowa zastosowana do mojego problemu zawsze będzie podjąć najgorszą możliwą decyzję. Na przykład dla Quicksort z pseudolosową osią obrotu mógłbym zbudować tablicę wejściową, w której pseudolosowy pivot zawsze znajdzie największą możliwą wartość w tablicy. Z prawdziwą przypadkowością nie jest to możliwe.

W przypadku kodu skrótu bardzo trudno byłoby mi skonstruować problem, w którym liczby pseudolosowe przynoszą najgorsze wyniki. Nadal mogę przewidzieć liczby losowe, ale jeśli zmienię problem, sekwencja liczb pseudolosowych zmieni się całkowicie. Mimo to udowodnienie, że nie mogę zbudować takiego problemu , byłoby prawie niemożliwe .

gnasher729
źródło
Jestem nowy w cstheory.SE. A zatem, downvoters - co jest nie tak z tą odpowiedzią?
galdre
3
Dwie rzeczy są złe: (1) nie wiemy, jak ogólnie konstruować liczby pseudolosowe, (2) nawet jeśli wiemy, jak je skonstruować, są one drogie obliczeniowo. Nie ma gwarancji, że liczby pseudolosowe stosowane w praktyce będą działać teoretycznie; wiemy tylko, że wydają się działać empirycznie. (Rzeczywiście, większość faktycznie używanych PRNG może zostać zepsuta, więc nie są ogólnie bezpieczne do użycia, tylko wtedy, gdy nie próbujesz ich specjalnie złamać.)
Yuval Filmus
2
cstheory.se dotyczy informatyki teoretycznej *, a nie praktyki programowania. Czy ci się to podoba, czy nie, dwa obszary są dość osobne.
Yuval Filmus
2
@YuvalFilmus: Alternator generatora kroków wynaleziony przez C. Gunthera w 1987 r. Nie został jeszcze zepsuty (jeszcze żadna przerwa publiczna i wątpię, by NSA też ją zepsuła). Dwadzieścia osiem lat to długi czas, aby pozostać nieprzerwanym, dziwi mnie, że tak prosty generator (trzy LFSR i jedna brama XOR, jak to proste?) Nie został jeszcze zepsuty i nie jest używany częściej.
William Hird,
2
@WilliamHird: W zależności od definicji „zepsuty” wydaje się, że faktycznie został zepsuty (mniej więcej w podobnym stopniu jak pokrewna, wydajniejsza i szeroko stosowana rodzina A5 / x). Zobacz crypto.stackexchange.com/a/342 .
Emil Jeřábek wspiera Monikę