private GrafoPredicados generateStar(int cantidad, int longEstrella, int colores) { GrafoPredicados grafo = new GrafoPredicados(); grafo.addMateria(new NodoMateria(colores, true)); for (int j = 0; j < cantidad; j++) { for (int i = 0; i < longEstrella; i++) { grafo.addMateria(new NodoMateria(colores, true)); } // grafo.connectMateria(0, j * longEstrella + 1); for (int i = 0; i < longEstrella - 1; i++) { // grafo.connectMateria((j* longEstrella) +i, (j* longEstrella)+i+1); } } return grafo; }
@Test public void testGrafo() { for (int i = 0; i < 100000000; i++) { Math.random(); } GrafoPredicados grafo = generateStar(10, 10, 8); ArrayList<Tuple<Integer, Integer>> aristas = generateAristas(10, 10); int cantAristas = aristas.size(); for (int i = 0; i < cantAristas; i++) { for (int j = 0; j < 100; j++) { Tuple<Integer, Integer> tuple = aristas.get(0); aristas.remove(0); grafo.connectMateria(tuple.getX(), tuple.getY()); } double tiempoFinal = 0; Ejercicio3 ej; int conflictos1 = Integer.MAX_VALUE; for (int j = 0; j < 3; j++) { ej = new Ejercicio3(grafo); double tiempo = System.nanoTime(); conflictos1 = Math.min(conflictos1, ej.checkColoreoFinal()); tiempoFinal += (System.nanoTime() - tiempo) / 1000; } System.out.print(tiempoFinal + ";" + conflictos1 + ";"); conflictos1 = 0; for (int j = 0; j < 3; j++) { Ejercicio2 ej2 = new Ejercicio2(grafo); double tiempo = System.nanoTime(); if (ej2.solverWithBacktrack()) { conflictos1 = 0; } else { conflictos1 = 1; } tiempoFinal += (System.nanoTime() - tiempo) / 1000; } System.out.print(tiempoFinal + ";" + conflictos1 + ";"); System.out.println(); } }
private GrafoPredicados generateBiPartitoCompleto(int v1, int v2, int colores) { GrafoPredicados grafo = new GrafoPredicados(); grafo.addMateria(new NodoMateria(colores, true)); for (int j = 0; j < v1 + v2; j++) { grafo.addMateria(new NodoMateria(colores, true)); } for (int j = 0; j < v1; j += 2) { for (int i = 1; i < v2; i += 2) { grafo.connectMateria(j, i); } } for (int j = 1; j < v2; j += 2) { for (int i = 0; i < v1; i += 2) { grafo.connectMateria(j, i); } } return grafo; }