⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_graphgenome.cpp

📁 我自己写的一个用于图编码的遗传算法
💻 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 + -