Algoritmi randomizzati efficienti e semplici in cui il determinismo è difficile


33

Ho sentito spesso che per molti problemi conosciamo algoritmi randomizzati molto eleganti, ma nessuna, o solo soluzioni deterministiche più complicate. Tuttavia, conosco solo alcuni esempi per questo. Soprattutto

  • Quicksort randomizzato (e relativi algoritmi geometrici, ad es. Per scafi convessi)
  • Mincut randomizzato
  • Test di identità polinomiale
  • Klee's Measure problem

Tra questi, solo il test di identità polinomiale sembra essere molto difficile senza l'uso della casualità.

Conosci altri esempi di problemi in cui una soluzione randomizzata è molto elegante o molto efficiente, ma le soluzioni deterministiche non lo sono? Idealmente, i problemi dovrebbero essere facili da motivare per i laici (a differenza, ad esempio, del test di identità polinomiale).


10
Un altro esempio è il test di primalità. I test probabilistici di primalità di Miller – Rabin e Solovay – Strassen sono molto semplici ed efficienti. È stato un problema aperto di vecchia data trovare un efficace test di primalità deterministica, che è stato risolto da Agrawal, Kayal e Saxena. Il test AKS è un test deterministico di primalità del test polinomiale. Tuttavia, non è così semplice e non così efficiente come i test probabilistici.
Yury il

8
La selezione randomizzata (riscontro mediano) è in qualche modo più semplice che deterministica. Gli algoritmi randomizzati per la risoluzione approssimativa dell'imballaggio e della copertura degli LP sono più veloci (nel peggiore dei casi) rispetto alle loro controparti deterministiche ( KY07 , GK95 ). Molti problemi online hanno randomizzato le alg che sono più competitive di qualsiasi algoritmo deterministico FK91 .
Neal Young,

11
Il calcolo del volume di un corpo convesso in dimensioni elevate ammette una approssimazione tramite randomizzazione. È noto che nessun algoritmo deterministico può fornire una buona approssimazione. Quindi la randomizzazione è essenziale qui. (1+ϵ)
Chandra Chekuri,

5
@ChandraChekuri è un buon commento e sarebbe una risposta ancora migliore :)
Suresh Venkat,

3
@ChandraChekuri nel modello dell'oracolo, altrimentiBPPP
Sasho Nikolov

Risposte:


36

Selezione di dadi e bulloni

Il seguente problema è stato suggerito da Rawlins nel 1992: Supponiamo che ti venga data una raccolta di n dadi e bulloni. Ogni bullone si adatta esattamente a un dado e, in caso contrario, i dadi e i bulloni hanno dimensioni distinte. Le dimensioni sono troppo vicine per consentire il confronto diretto tra coppie di bulloni o coppie di dadi. Tuttavia, puoi confrontare qualsiasi dado con qualsiasi bullone cercando di avvitarli insieme; a tempo costante, scoprirai se il bullone è troppo grande, troppo piccolo o giusto per il dado. Il tuo compito è scoprire quale bullone si adatta a ciascun dado, o equivalentemente, per ordinare i dadi e i bulloni per dimensione.

Una semplice variante di quicksort randomizzato risolve il problema nel tempo con alta probabilità. Scegli un bullone casuale; usalo per dividere i dadi; utilizzare il dado corrispondente per dividere i bulloni; e ricorrere. Tuttavia, trovare un algoritmo deterministico che gira anche in non è banale. Gli algoritmi deterministici sono stati finalmente trovati nel 1995 da Bradford e indipendentemente da Komlós, Ma e Szemerédi. Sotto il cofano, entrambi gli algoritmi utilizzano varianti della rete di ordinamento parallelo AKS, quindi la costante nascosta nel limite di tempo è abbastanza grande; la costante nascosta per l'algoritmo randomizzato è 4.o ( n 2 ) O ( n registro n ) O ( n registro n )O(nlogn)o(n2)O(nlogn)O(nlogn)

  • Noga Alon, Manuel Blum, Amos Fiat, Sampath Kannan, Moni Noar e Rafail Ostrovsky. Bulloni e dadi coordinati. Proc. 5 ° Ann. ACM-SIAM Symp. Algoritmi discreti , 690–696, 1994.
  • Noga Alon, Phillip G. Bradford e Rudolf Fleischer. Corrispondenza più rapida di dadi e bulloni. Far sapere. Proc. Lett. 59 (3): 123-127, 1996.
  • Phillip G. Bradford. Corrispondenza ottimale di dadi e bulloni. Tech. Rep. MPI-I-95-1-025, Max-Planck-Institut für Informatik, 1995. http://domino.mpi-inf.mpg.de/internet/reports.nsf/NumberView/1995-1-025
  • Phillip G. Bradford e Rudolf Fleischer. Corrispondenza più rapida di dadi e bulloni. Proc. 6 °. Int. Simp. Algorithms Comput. , 402–408, 1995. Comput. Sci. 1004.
  • János Komlós, Yuan Ma e Endre Szemerédi. Corrispondenza di dadi e bulloni nel tempo . SIAM J. Matematica discreta. 11 (3): 347-372, 1998.O(nlogn)
  • Gregory J. E. Rawlins. Rispetto a cosa? : Un'introduzione all'analisi degli algoritmi . Computer Science Press / WH Freeman, 1992.

2
Questo è un bell'esempio, ma è un problema di oracolo. C'è un modo per rimuovere l'oracolo da esso?
Peter Shor,

Hai un link al documento di Szemeredi 98? Quanto è difficile? Parallelamente confronta ogni bullone con un dado unico e metti ciascuna coppia in ordine; rimozione di elementi corrispondenti. Nel registro (n) i passaggi uniscono le sequenze nbnbnbnbnb ordinate, eliminando le partite non appena si presentano. EDIT: Sì, la non comparabilità delle stringhe nnn e bbbb è fastidiosa nel passaggio di unione.
Chad Brewbaker,

@ChadBrewbaker Supponiamo che in ogni coppia tranne una, il bullone sia più piccolo del dado. (Sì, questo è possibile.) Ora cosa fa il tuo algoritmo? In altre parole, "fastidioso" = "l'intero problema".
Jeffε

Stavo cercando il giornale Szemeredi e pensavo ad alta voce quanto fosse difficile. Sì, concordo sul fatto che un approccio basato sulla fusione non è banale; ma i documenti di Vishkin sulla connettività dei grafici paralleli lasciano intuire che non è impossibile.
Chad Brewbaker,

Ad ogni confronto tra un dado e un bullone si ottiene un bordo diretto aggiunto al grafico o una corrispondenza che rimuove entrambi i vertici. L'obiettivo sarebbe quello di unire i componenti collegati in modo tale da comprimere tutte le corrispondenze tra loro con una quantità lineare di lavoro e mantenere le dimensioni di archiviazione dei bordi in un componente collegato limitato allo spazio lineare.
Chad Brewbaker,

17

Una volta che non stai solo parlando di poli-tempo ma piuttosto guardi ai molti modelli di calcolo che studiamo, ci sono esempi ovunque:

In Logspace: connettività ST non diretta (in RL dal 1979 e in L solo dal 2005)

In NC: ricerca di una corrispondenza perfetta in un grafico bipartito in parallelo (in RNC e ancora non noto in NC)

Nelle prove interattive: quelle deterministiche danno NP, mentre quelle randomizzate possono fare PSPACE. Correlati: la verifica deterministica di una dimostrazione richiede l'esame di tutte le prove, mentre le prove PCP consentono di verificare solo un numero costante di bit.

In Algorithmic Mechanism Design: molti meccanismi di approssimazione veritiera randomizzati senza controparte deterministica.

Nella complessità della comunicazione: la funzione di uguaglianza richiede una comunicazione lineare deterministicamente ma una comunicazione logaritmica (o, a seconda del modello esatto, costante) in modo casuale.

Negli alberi decisionali: la valutazione di un e-o albero richiede query lineari in modo deterministico ma molto meno con la randomizzazione. Ciò è essenzialmente equivalente alla potatura alfa-beta che fornisce un algoritmo sub-lineare randomizzato per la valutazione dell'albero di gioco.

Nei modelli di streaming, modelli di calcolo distribuito: vedi le risposte precedenti.


12

La maggior parte degli algoritmi di streaming

Nel modello di calcolo dello streaming ( AMS , libro ), un algoritmo elabora una sequenza di aggiornamenti online ed è limitato per mantenere solo lo spazio sublineare. In qualsiasi momento, l'algoritmo dovrebbe essere in grado di rispondere a una query.

tit[n]Dm=|{it:t=1m}|mΩ(n)O(logn)O(1ϵ2+logn)1±ϵ


8

nΔmin(Ω(logΔ),Ω(logn))

Quello che segue è un semplice algoritmo distribuito randomizzato [1] che procede in round sincroni . (In un round, ogni nodo può eseguire alcuni messaggi di calcolo e inviare locali per i suoi vicini. Questi messaggi sono garantiti per essere ricevuti prima dell'inizio del turno successivo.)u

  1. In ogni round, ogni nodo attivo segna con probabilità dove è il grado di ; se , entra semplicemente nel set indipendente. (Inizialmente, ogni nodo è attivo.)1 / d u d u > 0 u d u = 0 uu1/dudu>0udu=0u
  2. Se è l'unico nodo marcata nelle sue vicinanze, entra nel insieme indipendente, stessa e notifica a tutti i suoi vicini disattiva disattivare stessi. I gradi dei rimanenti nodi attivi vengono diminuiti di conseguenza, ovvero vengono rimossi tutti i bordi rispetto ai nodi disattivati.uuu
  3. Altrimenti, se c'è anche un nodo vicino che è anche contrassegnato, il vertice di grado inferiore si deseleziona e rimane attivo.v

Si può dimostrare che questo algoritmo termina in round con alta probabilità, sostenendo che la metà dei bordi rimanenti vengono eliminati in ogni round. Al contrario, l'algoritmo distribuito deterministico [2] più veloce noto prende round ed è considerevolmente più complicato.O ( n 1 / O(logn)O(n1/logn)


[1] Michael Luby: un semplice algoritmo parallelo per il problema del set indipendente massimo. SIAM J. Comput. 15 (4): 1036-1053 (1986) http://dx.doi.org/10.1137/0215074

[2] Alessandro Panconesi, Aravind Srinivasan: Sulla complessità della decomposizione della rete distribuita. J. Algorithms 20 (2): 356-374 (1996) http://dx.doi.org/10.1006/jagm.1996.0017

[3] Fabian Kuhn, Thomas Moscibroda, Roger Wattenhofer: Calcolo locale: limiti inferiori e superiori. CoRR abs / 1011.5470 (2010) http://arxiv.org/abs/1011.5470


Un recente algoritmo (a PODC 2013), ispirato ai sistemi biologici, raggiunge prestazioni eccellenti come quelle di Luby utilizzando un semplice meccanismo di feedback locale. arxiv.org/abs/1211.0235
András Salamon

6

Elezione del leader in un anello dei processi anonimo

Supponiamo di avere una rete circolare di processi che non hanno ID e che comunicano tramite il passaggio di messaggi. Inizialmente, ogni processo è nello stesso stato. Volete progettare un algoritmo distribuito in modo tale che alla fine esattamente processo entri nello stato eletto e tutti gli altri processi entrino nello stato non eletto . Questo è il cosiddetto problema elettorale leader che è uno dei compiti fondamentali di rottura della simmetria in un sistema distribuito e ha molte applicazioni.1

C'è un semplice argomento (ad esempio [1]) secondo cui non esiste un algoritmo deterministico di elezione dei leader per un anello anonimo.

Modello: Partiamo dal presupposto che il calcolo avanzi in round sincroni in cui, in ogni round, ogni processo esegue un calcolo locale, invia messaggi ai suoi vicini sul ring e riceve messaggi dai suoi vicini.

Per il bene di una contraddizione, supponiamo che ci sia come un leader deterministico algoritmo di elezione . È sufficiente mostrare che, all'inizio di qualsiasi round , tutti i processi sono nello stesso stato, poiché ciò implica che non può esserci esattamente processo nello stato eletto . Poiché i processi non hanno ID e la rete è simmetrica, ogni processo si trova nello stesso stato iniziale, che fornisce la base di induzione.r 0 1Ar01

Per la fase di induzione, considera alcuni round e supponi che ogni processo sia nello stesso stato all'inizio del round . Pertanto, poiché l'algoritmo è deterministico, ogni processo esegue esattamente lo stesso calcolo e invia esattamente gli stessi messaggi durante il round . Questo a sua volta implica che ogni processo riceve esattamente gli stessi messaggi durante e, all'inizio del round , è nello stesso stato. Pertanto, tale algoritmo può esistere.r A r r r + 1 Ar0rArrr+1A

Se è invece un algoritmo randomizzato e i processi conoscono la dimensione dell'anello , esiste un modo semplice per interrompere la simmetria, generando un id casuale dall'intervallo , che risulterà in ID univoci per tutti i processi con alta probabilità. Un algoritmo semplice e ingenuo procede lasciando che ogni processo invii il proprio ID lungo l'anello e istruisca i processi a inoltrare solo i messaggi contenenti l'id più grande visto finora. Ciò garantisce che solo il processo che ha generato l'ID più grande riceverà il proprio messaggio una volta che avrà attraversato l'intero anello ed scelto se stesso come leader.n [ 1 , n 4 ]An[1,n4]


[1] Dana Angluin: proprietà locali e globali nelle reti di processori (estratto esteso). STOC 1980: 82-93. http://doi.acm.org/10.1145/800141.804655


6

Problema di maggioranza in un modello di query.

Problema . Ci viene data una serie di palline colorate con due o più colori. L'obiettivo è trovare una palla del colore di maggioranza (cioè un colore che si presenta più di n / 2 volte) supponendo che esista un tale colore, usando le query del modulo "La palla e la palla hanno lo stesso colore?". La strategia deve essere ignara, ovvero le query non possono dipendere dai risultati delle query precedenti.i jnij

Algoritmo randomizzato . Scegli una palla a caso e controlla se più di palle hanno lo stesso colore. Questo algoritmo viene eseguito in tempo nell'aspettativa.O ( n )n/2O(n)

L' algoritmoO(n) è abbastanza banale ed è una bella applicazione di espansori.

FRK Chung, RL Graham, J. Mao e AC Yao, Strategie ignare e adattive per i problemi di maggioranza e pluralità, proc. COCOON 2005 , pagg. 329–338.

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.