Classificação de algoritmos aleatórios

14

Da Wikipedia sobre algoritmos aleatórios

É preciso distinguir entre algoritmos que usam a entrada aleatória para reduzir o tempo de execução esperado ou o uso da memória, mas sempre terminam com um resultado correto em uma quantidade limitada de tempo e algoritmos probabilísticos , que, dependendo da entrada aleatória, têm uma chance de produzir um resultado incorreto (algoritmos de Monte Carlo) ou falhar ao produzir um resultado (algoritmos de Las Vegas) sinalizando uma falha ou não terminando.

  1. Fiquei me perguntando como o primeiro tipo de " algoritmos usa a entrada aleatória para reduzir o tempo de execução esperado ou o uso de memória, mas sempre termina com um resultado correto em uma quantidade limitada de tempo?
  2. Que diferenças existem entre ele e os algoritmos de Las Vegas que podem falhar em produzir um resultado?
  3. Se bem entendi, algoritmos probabilísticos e aleatórios não são o mesmo conceito. Algoritmos probabilísticos são apenas um tipo de algoritmo aleatório, e o outro é aquele que utiliza a entrada aleatória para reduzir o tempo de execução esperado ou o uso de memória, mas sempre termina com um resultado correto em um período limitado de tempo?
Tim
fonte

Respostas:

12
  1. O(n2)O(nregistron)O(n2)O(nregistron)

  2. Isso fornece um subconjunto de algoritmos de Las Vegas. Os algoritmos de Las Vegas também permitem a possibilidade de que (com baixa probabilidade) ele não termine em absoluto - não apenas termine com um pouco mais de tempo.

  3. Estes, por sua vez, são realmente apenas um tipo de algoritmo de Monte Carlo, onde a resposta pode estar incorreta (com baixa probabilidade), que é pelo menos conceitualmente diferente de talvez não responder.

Há muitos detalhes que deixei de fora, é claro, convém procurar as classes de complexidade ZPP, RP e BPP, que formalizam essas idéias.

Luke Mathieson
fonte
Obrigado! Então algoritmos aleatórios, algoritmos de Monte Carlo e algoritmos probabilísticos são o mesmo conceito?
Tim
Sim, embora os algoritmos de Monte Carlo sejam um tipo específico de algoritmo probabilístico (correspondente à classe BPP - existem outras classes como PP que são probabilísticas, mas - provavelmente! - contêm mais que BPP). Não sei por que essa frase está no artigo da Wikipedia, talvez alguém tenha se confundido com a análise probabilística, o que é algo diferente.
Luke Mathieson
8

Os dois termos algoritmos aleatórios e algoritmos probabilísticos são usados ​​em dois contextos diferentes. Algoritmos randomizados são algoritmos que usam aleatoriedade, em contraste com algoritmos determinísticos que não. Algoritmos probabilísticos , por exemplo, algoritmos probabilísticos para testes de primalidade, são algoritmos que usam aleatoriedade e podem cometer um erro com alguma (espero) pequena probabilidade.

Uma distinção importante deve ser feita entre os algoritmos de Monte Carlo e os algoritmos de Las Vegas . Os algoritmos de Las Vegas são algoritmos aleatórios que sempre retornam a resposta correta, mas seu tempo de execução depende dos lançamentos das moedas. Um exemplo são algoritmos de fatoração inteira - eles sempre retornam os fatores corretos, mas seu tempo de execução depende da aleatoriedade. Ao declarar o tempo de execução de um algoritmo de Las Vegas (digamos, um algoritmo de fatoração), na verdade declaramos o tempo de execução esperado ; se não tivermos sorte, o algoritmo poderá ser executado por mais tempo.

Os algoritmos de Monte Carlo, por outro lado, são algoritmos aleatórios cujo tempo de execução é definido com antecedência. Tais algoritmos podem cometer um erro, mas geralmente a probabilidade de erro é muito baixa. Um bom exemplo é o teste probabilístico de primalidade. Esses algoritmos são muito rápidos, mas podem cometer um erro. No entanto, a probabilidade de erro é baixa e baixa na prática, eles nunca cometem um erro.

Todo algoritmo de Las Vegas pode ser convertido em um algoritmo de Monte Carlo parando a execução após um período de tempo suficiente, de modo que os algoritmos de Las Vegas são, em certo sentido, "melhores" que os algoritmos de Monte Carlo.

Yuval Filmus
fonte
Você pode citar uma referência para essas definições?
R. Chopin
A Wikipedia deve ter algumas referências relevantes.
Yuval Filmus