Classificazione di algoritmi randomizzati


14

Da Wikipedia sugli algoritmi randomizzati

Bisogna distinguere tra algoritmi che usano l'input casuale per ridurre il tempo di esecuzione previsto o l'utilizzo della memoria, ma terminano sempre con un risultato corretto in un lasso di tempo limitato e algoritmi probabilistici che, a seconda dell'input casuale, hanno una possibilità di produrre un risultato errato (algoritmi Monte Carlo) o di non riuscire a produrre un risultato (algoritmi di Las Vegas) segnalando un errore o non riuscendo a terminare.

  1. Mi chiedevo in che modo il primo tipo di " algoritmi utilizza l'input casuale per ridurre il tempo di esecuzione previsto o l'utilizzo della memoria, ma termina sempre con un risultato corretto in un lasso di tempo limitato?
  2. Quali sono le differenze tra esso e gli algoritmi di Las Vegas che potrebbero non riuscire a produrre un risultato?
  3. Se ho capito bene, gli algoritmi probabilistici e gli algoritmi randomizzati non sono lo stesso concetto. Gli algoritmi probabilistici sono solo un tipo di algoritmi randomizzati, e l'altro tipo sono quelli che usano l'input casuale per ridurre il tempo di esecuzione previsto o l'utilizzo della memoria, ma terminano sempre con un risultato corretto in un lasso di tempo limitato?

Risposte:


12
  1. O(n2)O(nlogn)O(n2)O(nlogn)

  2. Questo fornisce un sottoinsieme di algoritmi di Las Vegas. Gli algoritmi di Las Vegas consentono anche la possibilità che (con bassa probabilità) potrebbe non terminare affatto - non solo terminare con un po 'più di tempo.

  3. Questi a loro volta sono in realtà solo un tipo di algoritmo Monte Carlo, in cui la risposta può essere errata (con bassa probabilità), che è almeno concettualmente diversa dal forse non rispondere.

C'è un sacco di dettagli che ho lasciato fuori naturalmente, potresti voler cercare le classi di complessità ZPP, RP e BPP, che formalizzano queste idee.


Grazie! Quindi algoritmi randomizzati, algoritmi Monte Carlo e algoritmi probabilistici sono lo stesso concetto?
Tim

Sì, anche se gli algoritmi Monte Carlo sono un tipo specifico di algoritmo probabilistico (corrispondente alla classe BPP - ci sono altre classi come PP che sono probabilistiche, ma - probabilmente! - contengono più di BPP). Non sono sicuro del perché quella frase sia nell'articolo di Wikipedia, forse qualcuno si è confuso con l'analisi probabilistica, che è qualcosa di diverso.
Luke Mathieson,

8

I due termini algoritmi randomizzati e algoritmi probabilistici sono usati in due contesti diversi. Gli algoritmi randomizzati sono algoritmi che usano la casualità, in contraddizione con gli algoritmi deterministici che non lo fanno. Gli algoritmi probabilistici , ad esempio gli algoritmi probabilistici per i test di primalità, sono algoritmi che usano la casualità e potrebbero fare un errore con qualche (si spera) piccola probabilità.

Una distinzione importante deve essere fatta tra algoritmi Monte Carlo e algoritmi di Las Vegas . Gli algoritmi di Las Vegas sono algoritmi randomizzati che restituiscono sempre la risposta corretta, ma il loro tempo di esecuzione dipende dal lancio delle monete. Un esempio sono gli algoritmi di factoring intero: restituiscono sempre i fattori corretti, ma il loro tempo di esecuzione dipende dalla casualità. Quando affermiamo il tempo di esecuzione di un algoritmo di Las Vegas (diciamo un algoritmo di factoring), dichiariamo effettivamente il tempo di esecuzione previsto ; se siamo sfortunati, l'algoritmo potrebbe funzionare più a lungo.

Gli algoritmi Monte Carlo, d'altra parte, sono algoritmi randomizzati il ​​cui tempo di esecuzione è impostato in anticipo. Tali algoritmi possono fare un errore, ma di solito la probabilità di errore è molto bassa. Un buon esempio è il test probabilistico di primalità. Questi algoritmi sono molto veloci ma potrebbero fare un errore. Tuttavia, la probabilità di errore è bassa che in pratica non commettono mai errori.

Ogni algoritmo di Las Vegas può essere convertito in un algoritmo di Monte Carlo interrompendo l'esecuzione dopo un tempo sufficientemente lungo, quindi gli algoritmi di Las Vegas sono in un certo senso "migliori" degli algoritmi di Monte Carlo.


Puoi citare un riferimento per queste definizioni?
R. Chopin il

Wikipedia dovrebbe avere alcuni riferimenti pertinenti.
Yuval Filmus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.