coloreo greedy_secuencial_1aN(grafo& g) { coloreo c(g, -1); vector<int> nodos(g.n()); iota(nodos.begin(), nodos.end(), 0); c.colorear_secuencial(nodos); return c; }
coloreo greedy_random(grafo& g) { vector<int> nodos(g.n()); iota(nodos.begin(), nodos.end(), 0); random_shuffle(nodos.begin(), nodos.end()); coloreo c(g, -1); c.colorear_secuencial(nodos); return c; }
// Genera un grafo completo de n nodos. vector<nodo> k(int n) { vector<nodo> nodos(n); for(int i = 0; i < n; i++) { nodos[i].indice = i; for(int j = 0; j < n; j++) { if(j != i) nodos[i].adyacentes.insert(j); } } return nodos; }
// Genera grafo bipartito completo vector<nodo> knm(int n, int m) { vector<nodo> nodos(n + m); // Índices correspondientes for (int i = 0; i < n + m; ++i) { nodos[i].indice = i; } //Nodos adyacencias para bipartito completo for (int i = 0; i < n; ++i) { for (int j = n; j < n + m; ++j) { nodos[i].adyacentes.insert(j); nodos[j].adyacentes.insert(i); } } return nodos; }