elementcomparator.cpp

来自「我自己写的一个用于图编码的遗传算法」· C++ 代码 · 共 36 行

CPP
36
字号
#include "ElementComparator.h"
#include "GraphGenome.h"
//#include "MyRandom.h"
//#include "GAException.h"

ElementComparator::ElementComparator() 
{
	REGISTER_GENOME(GraphGenome); 
}

//-1:表示长度不等,不能进行比较
//0 表示长度为0
double ElementComparator::applyCompare(Genome* genome1, Genome* genome2)
{
	if(!(isGenomeReg(genome1->getClass().getName())
		&& isGenomeReg(genome2->getClass().getName())
		&& genome1->getClass().isSame(genome2->getClass())))
	{
		return -1;
		/*throw GAException(ERROR_MSG);*/
	}
	else if(genome1->size()!=genome2->size()) 
	{
		return 0;
	}
	else
	{
		double count=0.0;
		for(int i=genome1->size()-1;i>=0;i--)
		{
			count+=((genome1->equal(i,genome2))?0:1);
		}

		return count/genome1->size();
	}
}

⌨️ 快捷键说明

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