2026a
# 调整多目标遗传算法的优化过程
本示例展示如何使用 gamultiobj_options 函数为多目标遗传算法创建和改变选项,从而调整优化过程。
# 问题描述
在本示例中,我们使用多目标遗传算法获得 kur_multiobjective 函数的帕累托前沿。该函数由 2 个目标组成,每个目标有 3 个决策变量,变量边界为
# 定义待优化问题
using TyPlot
using TyGlobalOptimization
function y_1(x)
y1 = 0
for i = 1:2
y1 = y1 - 10 * exp(-0.2 * sqrt(x[i]^2 + x[i+1]^2))
end
return y1
end
function y_2(x)
y2 = 0
for i = 1:3
y2 = y2 + abs(x[i])^0.8 + 5 * sin(x[i]^3)
end
return y2
end
kur_multiobjective(x) = [y_1(x), y_2(x)]
objcon = packfcn(kur_multiobjective, (), ())
nobj = 2
lb = [-5.0, -5.0, -5.0]
ub = -lb
# 执行求解,并绘制帕累托前沿
使用 gamultiobj 求解器进行优化,并通过设置 draw_picture=true 来绘制帕累托前沿。
options1 = gamultiobj_options(draw_picture=true)
PS1, PF1, output1 = gamultiobj(objcon, nobj, lb, ub, options1)
设置 N,改变种群规模。
options2 = gamultiobj_options(draw_picture=true, N=200)
PS2, PF2, output2 = gamultiobj(objcon, nobj, lb, ub, options2)
设置 p_m,改变突变概率。
options3 = gamultiobj_options(draw_picture=true, p_m=0.3)
PS3, PF3, output3 = gamultiobj(objcon, nobj, lb, ub, options3)