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

📄 person.cpp

📁 这是一个柔性加工车间的优化调度的遗传算法
💻 CPP
字号:
#include "stdafx.h"
#include "person.h"

BOOL SYSPARA::DownPara(int groupno)
{

	return 0;
}

//从INI文件中载入需要的参数
BOOL SYSPARA::LoadPara(int groupno)
{
	//遗传参数部分
	CString strNum,strgroupNo;  	
	strgroupNo.Format("group%02d",groupno);

	GetPrivateProfileString(strgroupNo,"popsize","",strNum.GetBuffer(MAX_PATH),MAX_PATH,GAPARAFILE); 
	popsize = atoi(strNum);

	GetPrivateProfileString(strgroupNo,"calgennum","",strNum.GetBuffer(MAX_PATH),MAX_PATH,GAPARAFILE); 
	calgennum = atoi(strNum);

	GetPrivateProfileString(strgroupNo,"pc","",strNum.GetBuffer(MAX_PATH),MAX_PATH,GAPARAFILE); 
	pc = atof(strNum);

	GetPrivateProfileString(strgroupNo,"pm","",strNum.GetBuffer(MAX_PATH),MAX_PATH,GAPARAFILE); 
	pm = atof(strNum);

	GetPrivateProfileString(strgroupNo,"genenum","",strNum.GetBuffer(MAX_PATH),MAX_PATH,GAPARAFILE); 
	genenum = atoi(strNum);

	GetPrivateProfileString(strgroupNo,"chromnum","",strNum.GetBuffer(MAX_PATH),MAX_PATH,GAPARAFILE); 
	chromnum = atoi(strNum);

	//约束条件部分
	strgroupNo.Format("约束01");
	for(int i = 1; i <= genenum; i++)
	{
		CString strNo; 
		strNo.Format("工件%02d",i);
		GetPrivateProfileString(strgroupNo,strNo,"",strNum.GetBuffer(MAX_PATH),MAX_PATH,CALPARAFILE); 
		ncont1[i-1] = atoi(strNum);
	}

	strgroupNo.Format("约束02");
	for(i = 1; i <= genenum; i++)
	{
		CString strNo; 
		strNo.Format("工件%02d",i);
		GetPrivateProfileString(strgroupNo,strNo,"",strNum.GetBuffer(MAX_PATH),MAX_PATH,CALPARAFILE); 
		ncont2[i-1] = atoi(strNum);
	}

	strgroupNo.Format("约束03");
	for(i = 1; i <= genenum; i++)
	{
		CString strNo; 
		strNo.Format("工件%02d",i);
		GetPrivateProfileString(strgroupNo,strNo,"",strNum.GetBuffer(MAX_PATH),MAX_PATH,CALPARAFILE); 
		ncont3[i-1] = atoi(strNum);
	}

	strgroupNo.Format("约束04");
	for(i = 1; i <= genenum; i++)
	{
		CString strNo; 
		strNo.Format("工件%02d",i);
		GetPrivateProfileString(strgroupNo,strNo,"",strNum.GetBuffer(MAX_PATH),MAX_PATH,CALPARAFILE); 
		bcont1[i-1] = atof(strNum);
	}

	//其他约束情况
	strgroupNo.Format("约束05");
	CString strNums;
	char tempstr[MAXGENENUM * 3];
	for(i = 0; i <= genenum; i++)
	{
		CString strNo; 
		strNo.Format("%02d",i);
		GetPrivateProfileString(strgroupNo,strNo,"",strNums.GetBuffer(MAX_PATH),MAX_PATH,CALPARAFILE); 
		sprintf(tempstr,"%s",strNums);
		for(int j = 0; j < MAXGENENUM ; j++)
		{
			int ntemp = (tempstr[j * 3] - '0') * 10 + tempstr[j * 3 + 1] - '0';

			//nconts[0] = 对应的组号
			nconts[i][j] = ntemp;
			if (tempstr[j * 3 + 2] == ';')
				break;
		}
		
	}
	return 0;
}

//约束条件的判定 conno:约束号
BOOL PERSN::FitCnst(int conno)
{
	BOOL bretn = TRUE;

	for(int i = 0; i < MAXGENENUM; i++)
	{
		for(int j=0; j< MAXCHROMNUM; j++)
		{
			chrom.abc[i][j] = 0;
		}
	}
	switch(conno)
	{
	case 1:

	case 2:

	case 3:
	case 4:
	case 5:
		break;
	default:
		break;
	}
	return bretn;
}

//计算目标函数值
double PERSN::CalVal(CHROM chrom)
{


	return 0;
}

//计算适应度
double PERSN::CalFit(double dval)
{


	return dval;
}

⌨️ 快捷键说明

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