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.
- 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?
- Que diferenças existem entre ele e os algoritmos de Las Vegas que podem falhar em produzir um resultado?
- 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?
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.
fonte