Пример #1
0
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;
}
Пример #2
0
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;
    }

}
Пример #3
0
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;
    }

}
Пример #4
0
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;
    }
}