Trovare un set indipendente massimo in parallelo


8

Su un grafico , eseguiamo il seguente processo:G(V,E)

  • Inizialmente, tutti i nodi in sono colorati.V
  • Mentre ci sono nodi non colorati in , ogni nodo non colorato effettua le seguenti operazioni: V
    • Seleziona un numero reale casuale e lo invia a tutti i suoi vicini;
    • Confronta il suo numero con il numero dei suoi vicini; se il suo numero è strettamente più piccolo, allora il vicino si dipinge di rosso e avvisa tutti i suoi vicini.
    • Se un vicino diventa rosso, questo nodo si dipinge di nero.

Per esempio:

  • Supponiamo che il grafico sia un percorso: abcde.
  • Supponiamo che i numeri nel primo passaggio siano: 1-2-0-3-4.
  • I nodi a e c sono dipinti di rosso; i nodi bec sono dipinti di nero.
  • Nel secondo passaggio, solo il nodo e rimane incolore; è banalmente minimale, quindi si dipinge di rosso.

LA MIA DOMANDA È: qual è il numero medio di passaggi che questo processo esegue prima che tutti i nodi vengano colorati?

Il mio calcolo attuale mi porta a una stima , che sembra troppo bella per essere vera. Ecco il calcolo:O(1)

Considera un nodo con vicini. La probabilità che sia il più piccolo tra i suoi vicini è . Se ciò accade, allora e tutti i suoi vicini verranno colorati. Quindi il numero previsto di vertici colorati per ogni passaggio è per nodo . Quindi il numero totale previsto di vertici colorati ogni passo è , quindi nel tempo tutti i nodi saranno colorati.vdv1/(d+1)v(d+1)/(d+1)=1 O(n)O(1)

Se questa analisi è errata (che è probabilmente il caso), allora qual è il numero effettivo di passaggi?

EDIT: Come notato da @JukkaSuomela, l'algoritmo sopra descritto è dovuto a Metivier et al, 2011 e viene spiegato e analizzato in queste note di lezione . Dimostrano che il tempo di esecuzione è .O(logn)

Ma non sono ancora convinto che questa analisi sia stretta. In tutti i grafici che ho controllato, sembra che l'algoritmo si completi in tempo previsto.O(1)

La mia domanda ora è: qual è un grafico nel caso peggiore in cui questo algoritmo richiede effettivamente passaggi in media?O(logn)


1
Immagino che tu sia consapevole che questo è l'algoritmo presentato e analizzato nella Sezione 2 di Métivier et. al (2011) ?
Jukka Suomela,

Risposte:


3

C'è un piccolo errore, la probabilità di v essere minimal è 1/(d+1). Ciò non cambia nulla, ma vale comunque la pena sottolineare.

Il problema è che gli eventi che stai sommando non sono disgiunti. Considera due vertici che non sono adiacenti ma hanno un vicino comune. Se entrambi i vertici finiscono per essere minimi tra i loro vicini, allora il vicino comune viene contato come colorato due volte.

Dobbiamo esaminare più da vicino ciò che accade in un vertice. Calcoliamo la probabilità (e quindi l'aspettativa dell'indicatore variabele) di un singolo vertice che si colora.

Supponiamo per motivi di analisi che il grafico sia d-regolare e non contiene triangoli o quadrati. Calcoleremo la possibilità che un dato verticevnon si colora. Ci sonod+1 possibilità: il v potrebbe essere il più piccolo tra i vicini, v potrebbe essere il secondo più piccolo, il terzo più piccolo e così via ... Non ci interessa il caso in cui sia il più piccolo, da allora si colora.

Se vè il secondo più piccolo, c'è un vertice che è più piccolo. La probabilità che questo vertice sia il più piccolo tra i suoi vicini è1d (e quindi vessere colorato). La probabilità che i vicini rimanenti siano più piccoli tra i vicini è 0 (da alloravè più piccolo). La probabilità totale (div non viene colorato) da questo caso1d+1d-1d.

Se vè il terzo più piccolo, ci sono due vertici più piccoli. La probabilità da questo caso è1d+1(d-1d)2.

Continuando così, troviamo quella probabilità che vnon si colora è1d+1Σio=1d(d-1d)io. La probabilità che un determinato vertice venga colorato è quindi1-1d+1Σio=1d(d-1d)io. Comed, la probabilità diventa 1e0.368.

Quindi la probabilità che un dato vertice venga colorato è una costante, quindi il numero atteso di vertici che viene colorato nel primo passaggio è effettivamente O(n).

Ciò non rende l'algoritmo O(1). Supponendo che la probabilità rimanga costante (il che non è del tutto giustificato considerando che i nodi vengono colorati e non partecipano più all'algoritmo, il grafico non rimaned-regolare), in K-th step ci sarà (in attesa) (1e)Knnodi non colorati. Il decadimento è esponenziale, quindi l'algoritmo richiedeO(logn) passi.

Forse qualcun altro sarà in grado di offrire un'analisi più precisa, ma dalla mia argomentazione sembra probabile che sia l'algoritmo O(logn).


Il problema con questa argomentazione è che, come hai detto, il grado di ciascun nodo diminuisce rigorosamente ad ogni passo, man mano che vengono rimossi altri nodi. Pertanto, la probabilità che un nodo sia selezionato aumenta, il decadimento potrebbe essere più veloce dell'esponenziale e il tempo di esecuzione potrebbe essere inferiore alogn. Hai un grafico di esempio in cui è il numero di passaggiΘ(logn)?
Erel Segal-Halevi,

@ErelSegalHalevi Non è questo il problema. Secondo la mia argomentazione, quando il grado diminuisce, la probabilità che un nodo venga colorato non diventa mai maggiore di 0,75 (che è il valore per un grafico a 2 regolari, un grafico a 1 regolare viene sempre colorato all'istante). Agli asintotici non importa davvero se la probabilità aumenta, purché (per sufficientemente granden) puoi vincolarlo con una costante. Il problema è che sono stato in grado di calcolare questa cifra solo per grafici regolari, senza triangoli e quadrati.
Tom van der Zanden,
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.