本模板实现改进单目标编程模板(二进制/格雷编码),将父子两代合并进行选择,增加了精英保留机制
语法:
该函数除了参数drawing外,不设置可缺省参数。当某个参数需要缺省时,在调用函数时传入None即可。
比如当没有罚函数时,则在调用编程模板时将第3、4个参数设置为None即可,如:
sga_new_code_templet(AIM_M,'aimfuc', None, None, ..., maxormin)
输入参数:
AIM_M- 目标函数的地址,由AIM_M = __import__('目标函数所在文件名')语句得到
目标函数规范定义:[f,LegV]=aimfuc(Phen,LegV)
其中Phen是种群的表现型矩阵, LegV为种群的可行性列向量,f为种群的目标函数值矩阵
AIM_F : str-目标函数名
PUN_M- 罚函数的地址,由PUN_M = __import__('罚函数所在文件名')语句得到
罚函数规范定义: newFitnV=punishing(LegV, FitnV)
其中LegV为种群的可行性列向量, FitnV为种群个体适应度列向量
一般在罚函数中对LegV为0的个体进行适应度惩罚,返回修改后的适应度列向量newFitnV
PUN_F : str-罚函数名
FieldD : array- 二进制/格雷码种群区域描述器,
描述种群每个个体的染色体长度和如何解码的矩阵,它有以下结构:
[lens; (int) 每个控制变量编码后在染色体中所占的长度
lb