Klasyfikacja algorytmów losowych


14

Z Wikipedii na temat algorytmów losowych

Należy rozróżnić algorytmy, które wykorzystują losowe dane wejściowe w celu zmniejszenia oczekiwanego czasu działania lub zużycia pamięci, ale zawsze kończą się poprawnym wynikiem w ograniczonym czasie, a algorytmy probabilistyczne , które w zależności od losowych danych wejściowych mają szansę wygenerowania niepoprawnego wyniku (algorytmy Monte Carlo) lub niepowodzenia w uzyskaniu wyniku (algorytmy Las Vegas) przez zasygnalizowanie niepowodzenia lub niezakończenie.

  1. Zastanawiałem się, jak pierwszy rodzaj „ algorytmów ” wykorzystuje losowe dane wejściowe, aby skrócić oczekiwany czas działania lub zużycie pamięci, ale zawsze kończy się z poprawnym wynikiem w ograniczonym czasie?
  2. Jakie są różnice między nim a algorytmami Las Vegas, które mogą nie dać rezultatu?
  3. Jeśli dobrze rozumiem, algorytmy probabilistyczne i algorytmy losowe nie są tym samym pojęciem. Algorytmy probabilistyczne to tylko jeden rodzaj algorytmów randomizowanych, a drugi to te, które wykorzystują losowe dane wejściowe, aby skrócić oczekiwany czas działania lub zużycie pamięci, ale zawsze kończą się prawidłowym wynikiem w ograniczonym czasie?

Odpowiedzi:


12
  1. O(n2))O(nlogn)O(n2))O(nlogn) krokach, zawsze z poprawną odpowiedzią.

  2. Daje to podzbiór algorytmów Las Vegas. Algorytmy Las Vegas pozwalają również na to, że (z małym prawdopodobieństwem) może w ogóle się nie skończyć - nie tylko zakończyć z nieco większym czasem.

  3. Te z kolei są tak naprawdę tylko rodzajem algorytmu Monte Carlo, w którym odpowiedź może być niepoprawna (z małym prawdopodobieństwem), co przynajmniej koncepcyjnie różni się od być może braku odpowiedzi.

Jest cały szereg szczegółów, które oczywiście pominąłem, możesz poszukać klas złożoności ZPP, RP i BPP, które formalizują te pomysły.


Dzięki! Czy więc algorytmy randomizowane, algorytmy Monte Carlo i algorytmy probabilistyczne to ta sama koncepcja?
Tim

Tak, choć algorytmy Monte Carlo są specyficznym rodzajem algorytmu probabilistycznego (odpowiadającego klasie BPP - istnieją inne klasy, takie jak PP, które są probabilistyczne, ale - prawdopodobnie! - zawierają więcej niż BPP). Nie jestem pewien, dlaczego to zdanie znajduje się w artykule na Wikipedii, być może ktoś pomylił się z analizą probabilistyczną, co jest czymś innym.
Luke Mathieson

8

Dwa terminy algorytmy randomizowane i algorytmy probabilistyczne są używane w dwóch różnych kontekstach. Algorytmy randomizowane to algorytmy wykorzystujące losowość, w przeciwieństwie do algorytmów deterministycznych, które tego nie robią. Algorytmy probabilistyczne , na przykład algorytmy probabilistyczne do testowania pierwotności, są algorytmami, które wykorzystują losowość i mogą popełnić błąd z pewnym (miejmy nadzieję) małym prawdopodobieństwem.

Należy dokonać istotnego rozróżnienia między algorytmami Monte Carlo i algorytmami Las Vegas . Algorytmy Las Vegas to algorytmy losowe, które zawsze zwracają poprawną odpowiedź, ale ich czas działania zależy od rzutu monetą. Przykładem są algorytmy faktoringu liczb całkowitych - zawsze zwracają prawidłowe współczynniki, ale ich czas działania zależy od losowości. Podając czas działania algorytmu Las Vegas (powiedzmy algorytm faktoringowy), faktycznie podajemy oczekiwany czas działania; jeśli nie będziemy mieli szczęścia, algorytm może działać dłużej.

Z drugiej strony algorytmy Monte Carlo są algorytmem losowym, którego czas działania jest ustalany z wyprzedzeniem. Takie algorytmy mogą popełnić błąd, ale zwykle prawdopodobieństwo błędu jest bardzo niskie. Dobrym przykładem są probabilistyczne testy pierwotności. Algorytmy te są bardzo szybkie, ale mogą powodować błędy. Prawdopodobieństwo błędu jest jednak powolnie niskie, dlatego w praktyce nigdy się nie mylą.

Każdy algorytm Las Vegas można przekonwertować na algorytm Monte Carlo, zatrzymując wykonywanie po wystarczająco długim czasie, więc algorytmy Las Vegas są w pewnym sensie „lepsze” niż algorytmy Monte Carlo.


Czy możesz przytoczyć odniesienie do tych definicji?
R. Chopin

Wikipedia powinna mieć kilka odnośników.
Yuval Filmus
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.