void Simulation::initializePopulation() { Individual * individuo; QFile file("/tmp/algorithmResult.txt"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QMessageBox msg; msg.setText("Simulation::initializePopulation(): No se pudo abrir el archivo /tmp/algorithmResult.txt\n para escribir resultados de la ejecucion del algoritmo."); return; } QTextStream out(&file); out << endl << "Inicializacion de la poblacion." <<"\n"; // inicializacion de la poblacion for (int i = 0; i < populationSize; i++) { individuo = new Individual(deployedAPs); individuo->printIndividual(); qDebug("individualId: %d", individuo->getIndividualId()); populationList.append(individuo); out << individuo->getIndividualAsQString() << endl; } qDebug("tamano de la poblacion: %d",populationList.count()); //return populationList; }
void Simulation::addNonDominatedIndividualsToExternalFile(QList<Individual *> ndIndividualList) { externalFile->addNonDominatedIndividuals(ndIndividualList, nGrid); // agregar resultados a archivo QFile file("/tmp/algorithmResult.txt"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QMessageBox msg; msg.setText("Simulation::addNonDominatedIndividualsToExternalFile(): No se pudo abrir el archivo /tmp/algorithmResult.txt\n para escribir resultados de la ejecucion del algoritmo."); return; } QTextStream out(&file); out << endl << "Individuos del archivo externo." <<"\n"; out << endl; Individual * auxIndividual; for (int i=0; i<externalFile->getExternalFileList().count(); i++) { auxIndividual = externalFile->getExternalFileList().at(i); out << auxIndividual->getIndividualAsQString() << endl; } }
void Simulation::selectPopulation() { selection->doSelection(mutatedPopulationList, matchesPerIndividuals, nGrid); populationList = selection->getSelectedPopulation(); // outOfGridIndividualList = selection->getOutOfGridList(); for (int i=0; i<selection->getOutOfGridList().count(); i++) { outOfGridIndividualList.append(selection->getOutOfGridList().at(i)); } // agregar resultados a archivo QFile file("/tmp/algorithmResult.txt"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QMessageBox msg; msg.setText("Simulation::selectPopulation(): No se pudo abrir el archivo /tmp/algorithmResult.txt\n para escribir resultados de la ejecucion del algoritmo."); return; } QTextStream out(&file); out << endl << "Seleccion de poblacion de tamano P." <<"\n"; out << endl; Individual * auxIndividual; for (int i=0; i<populationList.count(); i++) { auxIndividual = populationList.at(i); out << auxIndividual->getIndividualAsQString() << endl; } }
void Simulation::mutatePopulation() { // utilizar la mutación dirigida if (directedMutation) { mutation->doDirectedMutation(populationList, getStdDeviation(), deployedAPs, directedMutationProbability, nGrid); } else { mutation->doMutation(populationList, getStdDeviation(), deployedAPs); } mutatedPopulationList = mutation->getNewPopulation(); mutation->printNewPopulation(); // agregar resultados a archivo QFile file("/tmp/algorithmResult.txt"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) { QMessageBox msg; msg.setText("Simulation::mutatePopulation(): No se pudo abrir el archivo /tmp/algorithmResult.txt\n para escribir resultados de la ejecucion del algoritmo."); msg.exec(); return; } QTextStream out(&file); out << endl << "Mutacion de la poblacion." <<"\n"; out << endl; Individual * auxIndividual; for (int i=0; i<mutatedPopulationList.count(); i++) { auxIndividual = mutatedPopulationList.at(i); out << auxIndividual->getIndividualAsQString() << endl; } }