6-colorazione di un albero in modo distribuito


8

Ho delle difficoltà a comprendere l'algoritmo distribuito per l'albero 6 - colorazione nel tempo .O(log*n)

La descrizione completa è disponibile nel seguente documento: Parallel Symmetry-Breaking in Sparse Graphs. Goldberg, Plotkin, Shannon .

In breve, l'idea è ...

A partire dalla colorazione valida fornita dagli ID del processore, la procedura riduce iterativamente il numero di bit nelle descrizioni dei colori ricolorando ciascun nodo nonroot con il colore ottenuto concatenando l'indice di un bit in cui differisce da e il valore di questo bit. La radice concatena e per formare il suo nuovo colore.vCvCpun'rent(v)r0Cr[0]

L'algoritmo termina dopo le iterazioni .O(log*n)

Non ho la comprensione intuitiva del perché in realtà termina in iterazioni . Come è menzionato nel documento sull'iterazione finale, c'è l'indice più piccolo in cui la stringa di due bit differisce al massimo 3. Quindi 0 ° bit e 1 ° bit potrebbero essere gli stessi e , quindi questo due bit ci darà 4 colori + altri 2 colori per diverso 3 ° bit, e in totale 8 colori e non 6 come nella carta, e perché non possiamo procedere ulteriormente con 2 bit, è ancora possibile trovare bit diversi e separarli.O(log*n)22=4

Gradirei un po 'più approfondita analisi dell'algoritmo rispetto al documento.


1
Questi potrebbero essere d'aiuto: Sezione 5.3.4 di cs.helsinki.fi/u/josuomel/dda e p. 178– di cs.helsinki.fi/u/josuomel/dda-2012/dda-lectures.pdf
Jukka Suomela

@JukkaSuomela, grazie mille, appunti di lezione davvero validi. Un punto minore, nelle note della lezione, Colorare, pagina 11, ho scoperto che i colori 11 * non sono mai stati scelti, ma perché, quale motivo?
com

Risposte:


1

Nel documento, gli autori citano che dopo log*niterazioni, il numero di bit utilizzati per codificare una qualsiasi delle etichette dei colori è al massimo 3. Ciò significa che ci sono al massimo otto colori. Se abbiamo sei o meno colori, abbiamo finito, e altrimenti ripetiamo il ciclo ancora una volta.

Diciamo che facciamo un'ultima ripetizione iterativa. La radice ottiene l'etichetta di colore 0 o 1. Ogni altro nodo ottiene un'etichetta uguale alla posizione del primo bit in cui la vecchia etichetta di quel nodo non è d'accordo con l'etichetta del suo genitore, più un bit in più. Dato che all'entrata in questa iterazione tutti i colori sono lunghi tre bit nel peggiore dei casi, ci sono tre possibili posizioni in cui i bit potrebbero non essere d'accordo. Pertanto, ogni nuovo colore è formato da una combinazione di una delle tre scelte e un po '(una delle due scelte), quindi all'uscita di questa iterazione del ciclo ci sono solo sei possibili etichette di colore, quindi abbiamo una sei colorazione. Il numero totale di iterazioni di loop è quindilog*n+1=O(log*n)

Spero che sia di aiuto!


0

Algoritmo distribuito per l'albero 6 - la colorazione nel tempo O (log * (n)) è un algoritmo molto valido.

Lasciami spiegare cos'è "log * n"

log * (n) - "log Star n" noto come "Logaritmo iterato"

In parole semplici puoi assumere log * (n) = log (log (log (..... (log * (n))))

log * (n) è molto potente.

Esempio:

1) Log * (n) = 5 dove n = Numero di atomi nell'universo

ora la tua domanda:

Perché termina dopo il log * n volta?

In ogni dimensione rotonda dell'ID ridotta del fattore di registro si riduce anche il numero di colori: per indicizzare il bit in cui due etichette di dimensione n bit differiscono + 1 altro bit aggiunto.

Perché solo 6 colori, perché non più o meno?

Perché non 4 colori: {0,1,2,3} - poiché sono richiesti due bit per indirizzare l'indice dove differiscono, oltre ad aggiungere il “bit di differenza” si ottengono più di due bit.

Perché non 7 colori: {0,1,2,3,4,5,6} - come 7 = 111 (in binario) può essere descritto con 3 bit e per indirizzare l'indice (0,1,2) richiede due bit , più un "bit di differenza" ne dà di nuovo tre.

Perché 6 colori? - I colori 110 (per il colore “6“) e 111 (per il colore “7“) non sono necessari, poiché possiamo fare un altro giro! (Gli ID di tre bit possono differire solo nelle posizioni 00 (per “0“), 01 (per “1“), 10 (per “2“).

puoi ridurre da 6 colori a 3 colori , come indicato nel link sopra del tuo commento.

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.