non deterministic graph coloring algorithm