Init version
This commit is contained in:
372
processor/Processor.cpp
Normal file
372
processor/Processor.cpp
Normal file
@@ -0,0 +1,372 @@
|
||||
#include "Processor.h"
|
||||
#include "Settings.h"
|
||||
#include "../population/Population.h"
|
||||
#include "../individual/Phenotype.h"
|
||||
#include "../individual/genome/strategies/GenotypeToPhenotypeStrategy.h"
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
|
||||
void Processor::test(/*int initPSize, int steps*/){
|
||||
std::ofstream statFile("statFile.txt");
|
||||
std::string stat;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int maxGenerations = Settings::Iterations;
|
||||
int initPopSize = Settings::InitPopSize;
|
||||
|
||||
AsexualPopulation population(initPopSize);
|
||||
population.setBreedingStrategy(PopulationBreedingStrategy::getInstance(Settings::BreedingStrategy));
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
for(int i = 0; i < maxGenerations; i++){
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>)
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.calculateFitnessAll();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.breedAll();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.mutationAll();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD>)
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>.)
|
||||
population.selectionAll();
|
||||
|
||||
//--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||
stat = population.getSatistics();
|
||||
statFile<<stat<<std::endl;
|
||||
|
||||
if(Settings::WRITE_FULL_STATISTICS_TO_FILE){
|
||||
std::stringstream ss;
|
||||
ss<<"generation."<<(i)<<".txt";
|
||||
std::ofstream genFile(ss.str().c_str());
|
||||
population.putGeneticStatisticsToStream(genFile);
|
||||
genFile.close();
|
||||
}
|
||||
//------------------
|
||||
}
|
||||
statFile.close();
|
||||
}
|
||||
|
||||
void Processor::test01(/*int initPSize, int steps*/){
|
||||
std::ofstream statFile("statFile.txt");
|
||||
std::string stat;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int maxGenerations = Settings::Iterations;
|
||||
long initPopSize = Settings::InitPopSize;
|
||||
long int maxIndivids = Settings::KMaxParameter;
|
||||
|
||||
Position3D<double> position(0, 0, 0, 1000, 1000, 1000);
|
||||
Region region(position, maxIndivids);
|
||||
|
||||
AsexualPopulation population(initPopSize);
|
||||
population.setBreedingStrategy(PopulationBreedingStrategy::getInstance(Settings::BreedingStrategy));
|
||||
population.setRegion(®ion);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
for(int i = 0; i < maxGenerations; i++){
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>)
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.calculateFitnessAll();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.breedAll();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.mutationAll();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD>)
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>.)
|
||||
population.selectionAll();
|
||||
|
||||
//--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||
stat = population.getSatistics();
|
||||
statFile<<stat<<std::endl;
|
||||
|
||||
if(Settings::WRITE_FULL_STATISTICS_TO_FILE){
|
||||
std::stringstream ss;
|
||||
ss<<"generation."<<(i)<<".txt";
|
||||
std::ofstream genFile(ss.str().c_str());
|
||||
population.putGeneticStatisticsToStream(genFile);
|
||||
genFile.close();
|
||||
}
|
||||
//------------------
|
||||
}
|
||||
statFile.close();
|
||||
}
|
||||
|
||||
///
|
||||
void Processor::testInOutBreeding01(){
|
||||
std::ofstream statFile("statFile.txt");
|
||||
std::string stat;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int maxGenerations = Settings::Iterations;
|
||||
long initPopSize = Settings::InitPopSize;
|
||||
long int maxIndivids = Settings::KMaxParameter;
|
||||
|
||||
Position3D<double> position(0, 0, 0, 1000, 1000, 1000);
|
||||
Region region(position, maxIndivids);
|
||||
|
||||
|
||||
srand(0);
|
||||
int RANGE = 1000;
|
||||
int PRECISION = 10;
|
||||
float gValue;
|
||||
|
||||
std::vector<Individual*> individs;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(int i = 0; i < maxIndivids/2; i++){
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::vector<Chromosome> fGenome;
|
||||
std::vector<Chromosome> mGenome;
|
||||
|
||||
std::vector<Chromosome> chroms;
|
||||
for(int j = 0; j < 2; j++){
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RANGE = 10;
|
||||
gValue = (float)(rand()%(RANGE*PRECISION+1))/PRECISION;
|
||||
Gene geneF1(Gene::Continious, "A coadaptive", gValue);
|
||||
gValue = (float)(rand()%(RANGE*PRECISION+1))/PRECISION;
|
||||
Gene geneF2(Gene::Continious, "B coadaptive", gValue);
|
||||
|
||||
RANGE = 2;
|
||||
gValue = (rand()%(RANGE + 1)) / (float) RANGE;
|
||||
Gene geneF3(Gene::Continious, "C disease", gValue);
|
||||
gValue = (rand()%(RANGE + 1)) / (float) RANGE;
|
||||
Gene geneF4(Gene::Continious, "D disease", gValue);
|
||||
gValue = (rand()%(RANGE + 1)) / (float) RANGE;
|
||||
Gene geneF5(Gene::Continious, "E disease", gValue);
|
||||
gValue = (rand()%(RANGE + 1)) / (float) RANGE;
|
||||
Gene geneF6(Gene::Continious, "F disease", gValue);
|
||||
|
||||
Chromosome chromF("Chrom 1"); // <20><><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD>
|
||||
chromF.insertGeneToEnd(geneF1);
|
||||
chromF.insertGeneToEnd(geneF2);
|
||||
chromF.insertGeneToEnd(geneF3);
|
||||
chromF.insertGeneToEnd(geneF4);
|
||||
chromF.insertGeneToEnd(geneF5);
|
||||
chromF.insertGeneToEnd(geneF6);
|
||||
|
||||
chroms.push_back(chromF);
|
||||
} // (END) for(int i = 0; i < 2; i++)
|
||||
|
||||
fGenome.push_back(chroms.at(0));
|
||||
mGenome.push_back(chroms.at(1));
|
||||
Genotype* genotype = new Genotype(fGenome, mGenome);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Trait trait1(Trait::Continious, "coadaptive", 0.0f);
|
||||
Trait trait2(Trait::Continious, "disease", 0.0f);
|
||||
Phenotype* phenotype = new Phenotype(trait1);
|
||||
phenotype->addTrait(trait2);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
InnerSubstratesPool* subPool = 0;
|
||||
// (END) <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Individual* newInd = new Individual(genotype, phenotype, subPool, Individual::hermaphrodite, 0);
|
||||
newInd->setGenToPhenStrategy(GenotypeToPhenotypeStrategies::getInstance("inoutbreeding"));
|
||||
individs.push_back(newInd);
|
||||
} // (END) for(int i = 0; i < size; i++)
|
||||
|
||||
AsexualPopulation population(individs);
|
||||
population.setBreedingStrategy(PopulationBreedingStrategy::getInstance("inoutbreeding"));
|
||||
population.setRegion(®ion);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
for(int i = 0; i < maxGenerations; i++){
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.breedAll();
|
||||
//--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||
stat = population.getSatistics();
|
||||
statFile<<stat<<std::endl;
|
||||
|
||||
if(Settings::WRITE_FULL_STATISTICS_TO_FILE){
|
||||
std::stringstream ss;
|
||||
std::stringstream ss2;
|
||||
ss<<"generation."<<(i)<<".xls";
|
||||
ss2<<"generation."<<(i)<<".txt";
|
||||
std::ofstream genFile(ss.str().c_str());
|
||||
std::ofstream genFile2(ss2.str().c_str());
|
||||
population.putGeneticStatisticsToStream(genFile);
|
||||
population.putGeneticSimpleStatisticsToStream(genFile2);
|
||||
genFile.close();
|
||||
genFile2.close();
|
||||
}
|
||||
//------------------
|
||||
}
|
||||
statFile.close();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
void Processor::testInOutBreeding02(){
|
||||
std::ofstream statFile("statFile.txt");
|
||||
std::string stat;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int maxGenerations = Settings::Iterations;
|
||||
long initPopSize = Settings::InitPopSize;
|
||||
float ratioBetweenPops = Settings::InitRatioBetweenPops;
|
||||
long int maxIndivids = Settings::KMaxParameter;
|
||||
|
||||
Position3D<double> position(0, 0, 0, 1000, 1000, 1000);
|
||||
Region region(position, maxIndivids);
|
||||
|
||||
srand(0);
|
||||
int RANGE = 1000;
|
||||
int PRECISION = 10;
|
||||
float gValue;
|
||||
|
||||
std::vector<Individual*> individs;
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD> 1
|
||||
for(int i = 0; i < initPopSize*ratioBetweenPops; i++){
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::vector<Chromosome> fGenome;
|
||||
std::vector<Chromosome> mGenome;
|
||||
|
||||
std::vector<Chromosome> chroms;
|
||||
for(int j = 0; j < 2; j++){
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RANGE = 10;
|
||||
gValue = (float)(rand()%(RANGE*PRECISION+1))/PRECISION;
|
||||
Gene geneF1(Gene::Continious, "A coadaptive", gValue);
|
||||
gValue = (float)(rand()%(RANGE*PRECISION+1))/PRECISION;
|
||||
Gene geneF2(Gene::Continious, "B coadaptive", gValue);
|
||||
|
||||
RANGE = 2;
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF3(Gene::Continious, "C disease", gValue);
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF4(Gene::Continious, "D disease", gValue);
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF5(Gene::Continious, "E disease", gValue);
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF6(Gene::Continious, "F disease", gValue);
|
||||
|
||||
Chromosome chromF("Chrom 1"); // <20><><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD>
|
||||
chromF.insertGeneToEnd(geneF1);
|
||||
chromF.insertGeneToEnd(geneF2);
|
||||
chromF.insertGeneToEnd(geneF3);
|
||||
chromF.insertGeneToEnd(geneF4);
|
||||
chromF.insertGeneToEnd(geneF5);
|
||||
chromF.insertGeneToEnd(geneF6);
|
||||
|
||||
chroms.push_back(chromF);
|
||||
} // (END) for(int i = 0; i < 2; i++)
|
||||
|
||||
fGenome.push_back(chroms.at(0));
|
||||
mGenome.push_back(chroms.at(1));
|
||||
Genotype* genotype = new Genotype(fGenome, mGenome);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Trait trait1(Trait::Continious, "coadaptive", 0.0f);
|
||||
Trait trait2(Trait::Continious, "disease", 0.0f);
|
||||
Phenotype* phenotype = new Phenotype(trait1);
|
||||
phenotype->addTrait(trait2);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Individual* newInd = new Individual(genotype, phenotype, 0, Individual::hermaphrodite, 0);
|
||||
newInd->setGenToPhenStrategy(GenotypeToPhenotypeStrategies::getInstance("inoutbreeding"));
|
||||
individs.push_back(newInd);
|
||||
} // (END) for(int i = 0; i < size; i++)
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD> 2
|
||||
for(int i = 0; i < initPopSize; i++){
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::vector<Chromosome> fGenome;
|
||||
std::vector<Chromosome> mGenome;
|
||||
|
||||
std::vector<Chromosome> chroms;
|
||||
for(int j = 0; j < 2; j++){
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
RANGE = 10;
|
||||
gValue = -(float)(rand()%(RANGE*PRECISION+1))/PRECISION;
|
||||
Gene geneF1(Gene::Continious, "A coadaptive", gValue);
|
||||
gValue = -(float)(rand()%(RANGE*PRECISION+1))/PRECISION;
|
||||
Gene geneF2(Gene::Continious, "B coadaptive", gValue);
|
||||
|
||||
PRECISION=1;
|
||||
RANGE = 2;
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF3(Gene::Continious, "C disease", gValue);
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF4(Gene::Continious, "D disease", gValue);
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF5(Gene::Continious, "E disease", gValue);
|
||||
gValue = (rand()%(RANGE*PRECISION + 1)) / (float) RANGE / PRECISION;
|
||||
Gene geneF6(Gene::Continious, "F disease", gValue);
|
||||
|
||||
Chromosome chromF("Chrom 1"); // <20><><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD>
|
||||
chromF.insertGeneToEnd(geneF1);
|
||||
chromF.insertGeneToEnd(geneF2);
|
||||
chromF.insertGeneToEnd(geneF3);
|
||||
chromF.insertGeneToEnd(geneF4);
|
||||
chromF.insertGeneToEnd(geneF5);
|
||||
chromF.insertGeneToEnd(geneF6);
|
||||
|
||||
chroms.push_back(chromF);
|
||||
} // (END) for(int i = 0; i < 2; i++)
|
||||
|
||||
fGenome.push_back(chroms.at(0));
|
||||
mGenome.push_back(chroms.at(1));
|
||||
Genotype* genotype = new Genotype(fGenome, mGenome);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Trait trait1(Trait::Continious, "coadaptive", 0.0f);
|
||||
Trait trait2(Trait::Continious, "disease", 0.0f);
|
||||
Phenotype* phenotype = new Phenotype(trait1);
|
||||
phenotype->addTrait(trait2);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Individual* newInd = new Individual(genotype, phenotype, 0, Individual::hermaphrodite, 0);
|
||||
newInd->setGenToPhenStrategy(GenotypeToPhenotypeStrategies::getInstance("inoutbreeding"));
|
||||
individs.push_back(newInd);
|
||||
} // (END) for(int i = 0; i < size; i++)
|
||||
|
||||
AsexualPopulation population(individs);
|
||||
population.setBreedingStrategy(PopulationBreedingStrategy::getInstance("inoutbreeding"));
|
||||
population.setRegion(®ion);
|
||||
// (END) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
for(int i = 0; i < maxGenerations; i++){
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
population.breedAll();
|
||||
//--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---
|
||||
stat = population.getSatistics();
|
||||
statFile<<stat<<std::endl;
|
||||
|
||||
if(Settings::WRITE_FULL_STATISTICS_TO_FILE){
|
||||
std::stringstream ss;
|
||||
std::stringstream ss2;
|
||||
std::stringstream ss3;
|
||||
ss<<"generation."<<(i)<<".xls";
|
||||
ss2<<"generation."<<(i)<<".txt";
|
||||
ss3<<"gmaxAB."<<(i)<<".txt";
|
||||
std::ofstream genFile(ss.str().c_str());
|
||||
std::ofstream genFile2(ss2.str().c_str());
|
||||
std::ofstream genFile3(ss3.str().c_str());
|
||||
population.putGeneticStatisticsToStream(genFile);
|
||||
population.putGeneticSimpleStatisticsToStream(genFile2);
|
||||
population.putGeneticMaxModuleStatisticsToStream(genFile3);
|
||||
genFile.close();
|
||||
genFile2.close();
|
||||
genFile3.close();
|
||||
}
|
||||
//------------------
|
||||
}
|
||||
statFile.close();
|
||||
}
|
||||
Reference in New Issue
Block a user