帕累托前沿个数得到的是目标函数值及对应的关系,变量的最优值没显示出来。
代码(aimfuc.py)
import numpy as np
def aimfuc(x, LegV): # 定义目标函数
x1 = x[:, 0]
x2 = x[:, 1]
fun1 = (x1 - x2) ** 2 + x1
fun2 = x1 ** 2 - x2
return [np.vstack([fun1, fun2]).T, LegV]
代码(punishing.py)
# -*- coding: utf-8 -*-
import numpy as np
def punishing(LegV, FitnV):
FitnV[np.where(LegV == 0)[0]] = np.min(FitnV) * 0.1 # 对非可行解严厉惩罚
return FitnV
代码(main.py)
# -*- coding: utf-8 -*-
import geatpy as ga
import numpy as np
# 获取函数接口地址
AIM_M = __import__('aimfuc')
PUN_M = __import__('punishing')
"""=====