📄 test_graphgenome.cpp
字号:
#include "GraphGenome.h"
#include "MyRandom.h"
#include <utility>
using std::pair;
using std::make_pair;
#include <iostream>
using std::cout;
using std::endl;
double calculate(Genome* genome)
{
return 1.0;
}
#include "GAException.h"
void test_graphgenome()
{
cout<<"\n自定义基因测试实验......"<<endl;
typedef pair<int,int> GraphGeneType;
GraphGeneType genes[]={
make_pair(0,1),
make_pair(1,6),
make_pair(0,1),
make_pair(1,6),
make_pair(0,1),
make_pair(0,1),
make_pair(0,1),
make_pair(1,6),
make_pair(0,1)
};
int num=sizeof(genes)/sizeof(genes[0]);
typedef Genome::Evaluator Evaluator;
Evaluator eval=&calculate;
MyRandom::init((unsigned int)time(NULL));
try
{
Genome* genome=new GraphGenome(genes,genes+num,eval);
genome->randomAll();
cout<<genome->toString()<<endl;
cout<<"评价分数:"<<genome->caculateScore()<<endl;
cout<<"现在进行克隆实验......"<<endl;
Genome* genome2=genome->clone();
cout<<"克隆后: "<<genome2->toString()<<endl;
genome2->randomAll();
cout<<genome2->toString()<<endl;
cout<<"genome2的第3位进行随机......"<<endl;
genome2->random(3);
cout<<"genome2: "<<genome2->toString()<<endl;
cout<<"\n进行变异实验......"<<endl;
genome2->mutate(0.0001);
}
catch(GAException& e)
{
cout<<e.what()<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -