//constructor de copia de solución //sol es la solución inicial //mantener_inicial es por si acaso no necesitara mantener //la solución inicial para calcular algo solucion::solucion(const solucion& sol, bool mantener_inicial) { cout << "En constructor de solución inicial" << endl; //Referencia a la solución inicial if (mantener_inicial) sol_inicial = / cout << "Copiando referencias" << endl; //costos costoMovimientoMaquinas = sol.costoMovimientoMaquinas; initBalanceTriple(sol.balances_num); //pesos peso_balance = sol.peso_balance; peso_proceso = sol.peso_proceso; peso_servicio = sol.peso_servicio; peso_maquina = sol.peso_maquina; //recursos recursos_num = sol.recursos_num; peso_recursos = sol.peso_recursos; recursos_trans = sol.recursos_trans; cout << "Inicializando cantidades y objetos" << endl; //cantidades setCantidades(sol.procesos_num, sol.maquinas_num, sol.servicios_num, sol.localizaciones_num, sol.vecindarios_num); //objetos setObjetos(sol.procesos, sol.maquinas, sol.servicios); }
AlgMultiArranque::AlgMultiArranque(vector<Cluster*>& clusters, vector<Objeto*>& objetos) { setNombreAlgoritmo(" Técnica MultiArranque "); setObjetos(objetos); setClusters(clusters); setDimension(getClusters()[0]->getDimension()); int* sol = new int [getObjetos().size()]; _solActual = new int [getObjetos().size()]; _mejorSol = new int [getObjetos().size()]; for (unsigned int i = 0; i < getObjetos().size(); ++i) { sol[i] = -1; } setSolucion(sol); delete [] sol; _tecnicaLocal = NULL; _centroidesFin = new int *[getClusters().size()]; for (unsigned int i = 0; i < getClusters().size(); ++i) _centroidesFin[i] = new int[getDimension()]; }