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

📄 inversionoperator.cpp

📁 粗糙集应用软件
💻 CPP
字号:
// InversionOperator.cpp: implementation of the InversionOperator class.
//
//////////////////////////////////////////////////////////////////////

#include <stdafx.h> // Added 980901 by Aleksander 踙rn.
#include "../copyright.h" // Added 000323 by Aleksander 豩rn.

#include "EABitset.h"
#include "InversionOperator.h"
#include "Rand.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

InversionOperator::InversionOperator(int rounds) : times(rounds)
{

}

InversionOperator::~InversionOperator()
{

}

bool InversionOperator::apply(Individual & in, Individual & out)
{
	EABitset * i = (EABitset *)&in;
	EABitset * o = (EABitset *)&out;

	*o = *i;

	if(i->size() < 2)
		return false;

	for(int ii = 0; ii < times; ii++){

		int point1;
		int point2;
		do{
		   point1= Rand::i() % i->size();
			 point2= Rand::i() % i->size();
		}while(point1 == point2);
		o->transpose(point1, point2);
	}

	//o->reeval = true;
  o->age = 0; // newborn

	return true;
}

⌨️ 快捷键说明

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