gabasesolver.cpp

来自「遗传算法vc++语言版源程序,台湾大学编写。」· C++ 代码 · 共 59 行

CPP
59
字号
#include "GABaseSolver.h"#include "PopSolution.h"#include "UOFProblem.h"#include "GA1DArraySolution.h"#include <functional>#include <algorithm>#include <iostream>using namespace std;bool MinScore(UOFSolution *a, UOFSolution *b){	PopSolution	*a1 = dynamic_cast<PopSolution*>(a);	PopSolution	*a2 = dynamic_cast<PopSolution*>(b);	return (a1->GetScore() < a2->GetScore());}int GABaseSolver::MyRankingSelector::operator()(vector<PopSolution*> &src, vector<PopSolution*> &result){	for(size_t i=0;i<result.size();i++)	{		result[i] = src[i]->clone();	}	return 1;}GABaseSolver::GABaseSolver(PopSolution& src,size_t size): PopBaseSolver(src,size){	GA1DArraySolution	*psrc = dynamic_cast<GA1DArraySolution*>(&src);	m_pCros		= psrc->m_pCros;	m_pMutr		= psrc->m_pMutr;	static MyRankingSelector rs;	m_pSlct		= &rs;	static TerminateUponScoreIteration Term;	//static TerminateUponConvergence	Term;	//static TerminateUponScoreTime Term;	m_pTerm		= &Term;	m_MutationRate = 0.6;	m_CrossoverRate = 0.6;	m_SelectionRate = 0.4;	m_NewSpringRate = 0.3;	m_Record.SetUpdateFreq(1);	m_Record.outputConvergenceEveryUpdate(true);	m_Record.convergenceFilename("Conv.txt");	m_Record.outputResultEveryUpdate(true);	m_Record.paramFilename("Param.txt");}GABaseSolver::~GABaseSolver(){}void GABaseSolver::Initialization(){	// 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?