17 lines
1.2 KiB
Markdown
17 lines
1.2 KiB
Markdown
The goal of this exercise is to provide a centralized implementation that simulates
|
|
a randomized distributed algorithm. Your implementation should take a graph
|
|
$G = (V, E)$ with maximum degree $\Delta$ as its input and simulate the following distributed
|
|
randomized $(\Delta + 1)$-coloring algorithm until all vertices are colored:
|
|
|
|
*Initially, all nodes are uncolored. Then, in synchronous iterations, each uncolored
|
|
node selects a random candidate color from its list of available colors, that is, from
|
|
the set of colors that none of its already permanently colored neighbors have. Then,
|
|
nodes exchange their candidate colors with their neighbors. A node v that has a
|
|
candidate color c that is not selected as a candidate color by any of its neighbors
|
|
gets permanently colored with c, otherwise v discards its candidate color, remains
|
|
uncolored, and proceeds with the next iteration.*
|
|
|
|
The code may be written in any programming language. Submit your code via
|
|
GIT (link the repository in your submission) including instructions on how to run it.
|
|
Additionally provide several example inputs (on at least a few hundred nodes) and a
|
|
test case that your algorithm computes a proper vertex coloring. |