Problemi in P con algoritmi randomizzati notevolmente più veloci


20

Ci sono problemi in che hanno algoritmi randomizzati che limiti inferiori sugli algoritmi deterministici? Più concretamente, conosciamo qualche per cui ? Qui \ mathsf {PTIME} (f (n)) indica l'insieme di lingue decidibili da una TM randomizzata con errore a limite costante (uno o due lati) nei passaggi f (n) .PkDTIME(nk)PTIME(nk)PTIME(f(n))f(n)

La casualità ci compra qualcosa dentro P ?

Per essere chiari, sto cercando qualcosa in cui la differenza sia asintotica (preferibilmente polinomiale, ma mi accontenterei di polilaritmico), non solo una costante.

Sto cercando algoritmi asintoticamente migliori nel caso peggiore. Gli algoritmi con una migliore complessità attesa non sono ciò che sto cercando. Intendo algoritmi randomizzati come in RP o BPP e non ZPP.


Forse "la tecnica di Yao" è ciò che stai cercando. Una breve descrizione è disponibile all'indirizzo cs.pitt.edu/~kirk/cs2150/yao/yao.html
Wu Yin,

@WuYin se capisco correttamente che va nella direzione degli algoritmi randomizzati di limite inferiore dal comportamento medio del caso dell'algoritmo deterministico .. Ne esaminerò di più, ma il modo in cui lo vedo, questo potrebbe solo portare a dimostrare quella casualità non ci compra nulla dentro .. Ho ragione? P
aelguindy,

1
Per trovare qualsiasi elemento in sequenza di lunghezza con rango in [ , ] possiamo semplicemente restituire qualsiasi elemento casuale e sarà corretto con probabilità quindi la sua O (1)! Considerando che un algoritmo deterministico esaminerebbe almeno una parte dell'input e quindi . nn43n412Ω(n)
Rizwanhudda,

@rizwanhudda Potrebbe esserci qualche problema. Innanzitutto, sto cercando un problema decisionale. In secondo luogo, nel modello di Turing, la restituzione di un elemento casuale è , poiché non esiste un accesso casuale. Forse, la macchina emette sempre il primo elemento? Tuttavia, il primo problema è più grande. Ω(n)
aelguindy,

2
L'ultimo paragrafo non ha senso perché ogni algoritmo di Las Vegas può essere convertito in un algoritmo Monte Carlo.
Tsuyoshi Ito,

Risposte:


17

Il test di identità polinomiale ammette un algoritmo di tempo polinomiale randomizzato (vedere il lemma di Schwartz-Zippel ) e al momento non abbiamo un tempo polinomiale deterministico o nemmeno un algoritmo di tempo sub-esponenziale per esso.

Valutazione dell'albero di gioco Considera un albero binario completo con nodi fogliacontenenticiascuno un valore 0/1. I nodi interni contengono porte OR / AND a livelli alternativi. Si può dimostrare usando l'argomento avverso che ogni algoritmo deterministico dovrebbe esaminare inodi foglia Ω ( n ) nel peggiore dei casi. Tuttavia, esiste un semplice algoritmo randomizzato che richiede untempo di esecuzione previsto di O ( n 0,793nΩ(n) Guarda lediapositive14-27 del discorso.O(n0.793)

Instradamento ignaro su un ipercubo Si consideri un cubo in -dimensioni contenente N = 2 n vertici. Ogni vertice ha un pacchetto di dati e una destinazione a cui desidera infine consegnare il pacchetto. La destinazione di tutti i pacchetti è diversa. Anche per questo, è stato dimostrato che qualsiasi strategia di routing deterministica richiederebbe Ω (nN=2npassaggi. Tuttavia, esiste una semplice strategia randomizzata che terminerà con laOprevista(nΩ(Nn) passicon alta probabilità.O(n)

Si noti che negli algoritmi randomizzati, il costo atteso con alta probabilità (come ad es. P r [ F ( n ) > 10 E ( F ( n ) ) ] <E(F(n)) Pr[F(n)>10E(F(n))]<1n2 ) equivale al caso peggiore in pratica.


Inoltre, in considerazione test per matrici , B e C se A B = C . Al momento non conosciamo alcun algoritmo o ( 2 2.3 ) , conosciamo un algoritmo O ( n 2 ) randomizzato . Il punto è che ci sono problemi per i quali possiamo dimostrare che gli algoritmi randomizzati sono migliori? ABCAB=Co(22.3)O(n2)
aelguindy,

@aelguindy Ho capito il tuo punto. Ma per PIT l'algoritmo deterministico più noto è esponenziale. E, derandomizzare PIT è un importante problema aperto in CS teorico.
Rizwanhudda,

Ho aggiunto al post la valutazione dell'albero dei giochi e l'instradamento dell'ipercubo, per i quali gli algoritmi randomizzati sono decisamente migliori delle controparti deterministiche.
Rizwanhudda,

OK, per la valutazione dell'albero dei giochi, se ho capito bene, funziona nella prevista ( n. 0,793 ) , giusto? Voglio dire, ci sono casi in cui verrà eseguito in Ω ( n ) . È il caso anche del terzo esempio? Non sto consentendo un migliore tempo previsto, sto cercando una migliore complessità nel caso peggiore, errore consentito nell'output. O(n0.793)Ω(n)
aelguindy,

1
Quindi non sono migliori nel peggiore dei casi. Per quanto apprezzi gli esempi, temo che non sia esattamente quello che sto cercando. Gli esempi sono stati molto illuminanti però!
aelguindy,

5

Indagare sul caso peggiore non ha senso per gli algoritmi randomizzati. Non solo il runtime nel caso peggiore sarà spesso infinito, ma anche loro potrà anche superare gli algoritmi deterministici in quella metrica.

Prendere in considerazione qualsiasi algoritmo randomizzato . Ottenere un algoritmo deterministico B fissando il nastro casuale per A su 0 . Quindi, T B ( n ) T A ( n ) per tutto n .ABA0TB(n)TA(n)n


5

Esistono molti problemi in cui conosciamo un algoritmo randomizzato efficiente e non conosciamo alcun algoritmo deterministico che possiamo dimostrare efficace. Tuttavia, ciò può riflettere carenze nella nostra capacità di provare cose sulla complessità piuttosto che su qualsiasi differenza fondamentale.

Sulla base del tuo commento , sembra che tu volessi chiedere se esiste qualche problema in cui esiste un algoritmo randomizzato efficiente e possiamo provare non esiste un algoritmo deterministico di efficienza comparabile. Non conosco alcun problema del genere.

In effetti, vi sono fondati motivi per sospettare che tali problemi potrebbero non esistere. Euristicamente, l'esistenza di un tale problema significherebbe probabilmente l'impossibilità di crittografare in modo sicuro. Sembra un risultato piuttosto non plausibile.

Qual è la connessione, chiedi? Bene, considera qualsiasi algoritmo randomizzato che risolva alcuni problemi in modo efficiente. Si basa su monete casuali: bit casuali ottenuti da una fonte casuale reale. Supponiamo ora di prendere un generatore pseudocasuale di qualità crittografica e di sostituire la sorgente true-random con l'output del generatore pseudocasuale. Chiama l'algoritmo risultante A . Si noti che A è un algoritmo deterministico e il suo tempo di esecuzione è approssimativamente uguale a AAAAA .

Inoltre, se il PRNG crittografico è sicuro, euristicamente dovremmo aspettarci che sia un buon algoritmo se A è:AA

  • Ad esempio, se è un algoritmo di Las Vegas (genera sempre la risposta corretta e termina rapidamente con alta probabilità), allora A ' sarà un algoritmo deterministico piuttosto buono (genera sempre la risposta corretta e termina rapidamente per la maggior parte degli input) .AA

  • Come altro esempio, se è un algoritmo Monte Carlo (tempo di esecuzione deterministico e genera la risposta corretta con probabilità almeno 1 - ε ), A sarà un algoritmo deterministico piuttosto buono (tempo di esecuzione deterministico e restituisce la risposta corretta su una frazione 1 - ε di tutti gli input).A1εA1ε

Pertanto, se il PRNG crittografico è sicuro e esiste un algoritmo randomizzato efficiente, si ottiene un algoritmo deterministico che è abbastanza buono. Ora ci sono molte costruzioni di PRNG crittografiche che sono garantite in modo sicuro se alcuni presupposti crittografici valgono. In pratica, tali ipotesi crittografiche sono ampiamente credute: almeno, il commercio sicuro e le transazioni dipendono dal fatto che sono vere, quindi apparentemente siamo disposti a scommettere ingenti somme di denaro per l'esistenza della crittografia protetta. L'unico modo in cui questa trasformazione può fallire è se il PRNG crittografico non esiste, il che a sua volta implica che la crittografia sicura è impossibile. Anche se non abbiamo alcuna prova che questo non sia il caso, sembra un risultato improbabile.

Dettagli della costruzione: ecco come funziona . Su ingresso x , si ricava un seme per la PRNG crittografico come funzione di x (ad esempio, da hashing x ), e quindi simula A ( x ) , utilizzando l'uscita del PRNG crittografico le monete per A . Ad esempio, un'istanza specifica sarebbe quella di impostare k = SHA256 ( x ) , quindi utilizzare kAxxxA(x)Ak=SHA256(x)k come seme per AES256 in modalità contatore, o qualche altro PRNG crittografico. Possiamo provare le affermazioni di cui sopra con il modello di Oracle casuale.

Se non sei soddisfatto dell'idea che possa produrre risultati errati su una piccola frazione degli input, questo può essere risolto. Se si ripete A ' più volte e si ottiene un voto a maggioranza, la probabilità di errore diminuisce esponenzialmente rapidamente nel numero di iterazioni. Così, scorrendo un numero costante di volte, è possibile ottenere la probabilità di errore ε essere inferiore a 1 / 2 256 , il che significa la possibilità che si esegue attraverso un ingresso xAAε1/2256xdove l'algoritmo genera la risposta sbagliata sono vanificanti (meno delle possibilità di essere colpiti da un fulmine più volte di seguito). Inoltre, con la costruzione che ho dato sopra, le possibilità che un avversario possa persino trovare un input cui A fornisce la risposta sbagliata possono essere ridotte al minimo, poiché ciò richiederebbe di violare la sicurezza dell'hash SHA256. (Tecnicamente, questo richiede il modello di oracolo casuale per giustificare, quindi significa che AxAA deve essere scelto per essere "indipendente" da SHA256 e non nei calcoli hardcode in esso correlati a SHA256, ma quasi tutti gli algoritmi del mondo reale soddisfano tale requisito .)

Se si desidera una base teorica più forte, è possibile iterare Θ ( n ) volte, e ottenere la probabilità di errore di essere al di sotto di 1 / 2 n , dove n è la lunghezza dell'input x . Ora la frazione di n ingressi -bit dove A ' dà una risposta sbagliata è strettamente minore di 1 / 2 n . Ma ci sono solo 2 n possibili input n -bit, e su ognuno A è corretto o errato, quindi ne consegue che non c'è input dove A A Θ(n)1/2nnxnA1/2n2nnAAnon è corretto: è corretto su tutti gli input, e questo vale incondizionatamente. Se A corre nel tempo t ( n ) , allora A corre nel tempo Θ ( n t ( n ) ) , quindi A è un po 'più lento di A ma non troppo lento. Questo è il contenuto della prova di Adleman che BPP è contenuto in P / poly. Ai fini pratici questo è probabilmente eccessivo, ma se ti piacciono le prove chiare che evitano ipotesi crittografiche o se ti avvicini a questo dal punto di vista del teorico, potresti apprezzare meglio questa versione.AAt(n)AΘ(nt(n))AA

Per maggiori dettagli su queste ultime considerazioni teoriche e problemi aggiuntivi in ​​cui conosciamo un algoritmo randomizzato efficiente ma non conosciamo alcun algoritmo deterministico che possiamo dimostrare efficiente, vedere /cstheory//q/31195 / 5038

In sintesi: per qualsiasi problema in cui conosciamo un algoritmo randomizzato efficiente, conosciamo anche un algoritmo deterministico che sembra essere efficace nella pratica, ma al momento non sappiamo come dimostrarlo . Una possibile interpretazione è che non siamo molto bravi a provare cose sugli algoritmi.

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.