1. A computer-implemented method, comprising: identifying a graph with a plurality of vertices; categorizing the plurality of vertices by: assigning a random number to each vertex in the graph; and comparing the assigned random number of each vertex to the assigned random numbers of each of the neighbors of the vertex, and determining whether the assigned random number of a single vertex is greater than each of the assigned random numbers of each of the neighbors of the single vertex and at the same time determining whether the assigned random number of a single vertex is less than each of the assigned random numbers of each of the neighbors of the single vertex, wherein all vertices in the graph that have an assigned random number greater than the assigned random numbers of each of their neighbors are added to a first independent set, and all vertices in the graph that have an assigned random number less than the assigned random numbers of each of their neighbors are added to a second independent set separate from the first independent set, wherein the categorizing of the plurality of vertices is optimized.