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 + -
显示快捷键?