int main( int argc, char* argv[]) { srand((unsigned)time(NULL)); World w( vec2( 100, 100), 1); MatrixBreeder breeder(NUM_BOTS); FoodBreeder foodBreeder( NUM_FOOD_ITEMS ); w.addBreeder( &breeder ); w.addBreeder( &foodBreeder ); boost::shared_ptr<Simulator> simulator(new Simulator()); simulator->setDt( SIMULATION_STEP ); w.setSimulator( simulator );//now simulator is ready to work; boost::thread simThread = boost::thread( simulator_runner( *simulator )); GLUTController controller; GlutGuiViewport vp( w, vec2(50,50), 5 ); vp.setActive(); controller.setWorld( w, *simulator ); GlutGuiViewport::init( argc, argv ); controller.setActive(); GlutGuiViewport::startLoop(); std::cout<<"Finished execution."<<std::endl; return 0; }
main() { const unsigned POP_SIZE = 8, CHROM_SIZE = 16; unsigned i; // a chromosome randomizer eoBinRandom<Chrom> random; // the populations: eoPop<Chrom> pop; // Evaluation eoEvalFuncPtr<Chrom> eval( binary_value ); for (i = 0; i < POP_SIZE; ++i) { Chrom chrom(CHROM_SIZE); random(chrom); eval(chrom); pop.push_back(chrom); } std::cout << "population:" << std::endl; for (i = 0; i < pop.size(); ++i) std::cout << "\t" << pop[i] << " " << pop[i].fitness() << std::endl; // selection eoLottery<Chrom> lottery; // breeder eoBinBitFlip<Chrom> bitflip; eoBinCrossover<Chrom> xover; eoProportionalOpSel<Chrom> propSel; eoBreeder<Chrom> breeder( propSel ); propSel.addOp(bitflip, 0.25); propSel.addOp(xover, 0.75); // replacement eoInclusion<Chrom> inclusion; // Terminators eoFitTerm<Chrom> term( pow(2.0, CHROM_SIZE), 1 ); // GA generation eoEasyEA<Chrom> ea(lottery, breeder, inclusion, eval, term); // evolution try { ea(pop); } catch (std::exception& e) { std::cout << "exception: " << e.what() << std::endl;; exit(EXIT_FAILURE); } std::cout << "pop" << std::endl; for (i = 0; i < pop.size(); ++i) std::cout << "\t" << pop[i] << " " << pop[i].fitness() << std::endl; return 0; }
int main() { const unsigned POP_SIZE = 10, CHROM_SIZE = 12; unsigned i; eoBooleanGenerator gen; // the populations: eoPop<Chrom> pop; // Evaluation RoyalRoad<Chrom> rr( 8 ); eoEvalFuncCounter<Chrom> eval( rr ); eoInitVirus<float> random(CHROM_SIZE, gen); for (i = 0; i < POP_SIZE; ++i) { Chrom chrom; random(chrom); eval(chrom); pop.push_back(chrom); } std::cout << "population:" << std::endl; for (i = 0; i < pop.size(); ++i) std::cout << "\t" << pop[i] << " " << pop[i].fitness() << std::endl; // selection eoStochTournamentSelect<Chrom> lottery(0.9 ); // breeder eoOneBitFlip<Chrom> vm; eoUBitXover<Chrom> xover; eoProportionalOp<Chrom> propSel; eoGeneralBreeder<Chrom> breeder( lottery, propSel ); propSel.add(vm, 0.2); propSel.add(xover, 0.8); // Replace a single one eoCommaReplacement<Chrom> replace; // Terminators eoGenContinue<Chrom> continuator1(10); eoFitContinue<Chrom> continuator2(CHROM_SIZE); eoCombinedContinue<Chrom> continuator(continuator1, continuator2); eoCheckPoint<Chrom> checkpoint(continuator); eoStdoutMonitor monitor; checkpoint.add(monitor); eoSecondMomentStats<Chrom> stats; eoPopStat<Chrom> dumper( 10 ); monitor.add(stats); checkpoint.add(dumper); checkpoint.add(stats); // GA generation eoEasyEA<Chrom> ea(checkpoint, eval, breeder, replace ); // evolution try { ea(pop); } catch (std::exception& e) { std::cout << "exception: " << e.what() << std::endl;; exit(EXIT_FAILURE); } std::cout << "pop" << std::endl; for (i = 0; i < pop.size(); ++i) std::cout << "\t" << pop[i] << " " << pop[i].fitness() << std::endl; std::cout << "\n --> Number of Evaluations = " << eval.getValue() << std::endl; return 0; }