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

📄 main.cpp

📁 TSP问题(Travelling Salesman Problem)是数学领域中著名问题之一,旅行商的VC算法实现
💻 CPP
字号:
#include "global.h"

using namespace evo;
void crosstest();
void calValueTest();
void sortTest();
void evoTest();
void evolution();
void main()
{
	srand(unsigned(time(0)));
	evolution();
	getchar();
}


void crosstest()
{
	VectorInt vi;
	for(int i=0;i<CITY_COUNT;i++)
		vi.push_back(i);
	Individual indi(vi);
	Individual& indi1=indi.variate();
	Individual& indi2=indi.variate();
	
	int i=0;
	int sametime=0;
	while((++i<1000))
	{
		indi1=indi1.variate();
		indi2=indi2.variate();

		Individual& crossed=indi1.cross(indi2);
	
		indi1.printIndividual(cout);
		indi2.printIndividual(cout);
		crossed.printIndividual(cout);
		if(crossed==indi2)
		{
			sametime++;
			
		}
		
		
	}
	cout<<endl<<sametime<<endl;
}

void calValueTest()
{
	
	VectorInt vi;
	for(int i=0;i<CITY_COUNT;i++)
		vi.push_back(i);
	Individual indi(vi);
	cout<<indi.calValue();

	
}

void sortTest()
{
	Group gp;
	gp.printGroup(cout);
	sort(gp.member.begin(),gp.member.end());
	gp.printGroup(cout);
}

void evoTest()
{
	ofstream groupout("group.txt");
	Group gp0;
	Group& gp=gp0;
	Group& gp2=gp.evolute();
	cout<<gp.calValue();
	gp2==gp?cout<<"==":cout<<"!=";
	cout<<gp2.calValue()<<endl;
	gp.printGroup(cout);
	gp2.printGroup(cout);
}

void evolution()
{
	ofstream groupout("group.txt");
	ofstream bestout("best.txt");

	if(!groupout || !bestout)
	{
		cout<<"no file";
		exit(0);
	}

	int loop=0;
	int noevo=0;
	Group gp0;
	Group& parent=gp0;
	Group& next=parent.evolute();
	do
	{
		loop++;
		next=parent.evolute();
		
		next.printGroup(groupout);
		next.printBestIndi(cout);
		next.printBestIndi(bestout);
		if(next==parent)
		{
			
			noevo++;
		}	
		else
		{
			noevo=0;
		}

		if(noevo==NOEVOASST)
		{
			break;
		}	
		parent=next;
	}while(EVOTIMES);
	
	cout<<"第"<<next.generation<<"代,适应值:"<<next.calValue()<<endl;
	cout<<"具体演化过程见 group.txt";
}

⌨️ 快捷键说明

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