基于遗传算法的多目标优化算法
1、案例背景
目前的多目标优化算法有很多,Kalyanmoy Deb 的 NSGA-II(Nondominated Sorting
Genetic Algorithm II,带精英策略的快速非支配排序遗传算法)无疑是其中应用最为广泛也
是最为成功的一种。MATLAB 自带的 gamultiobj 函数所采用的算法,就是基于 NSGA-II 改
进的一种多目标优化算法(a variant of NSGA-II)。gamultiobj 函数的出现,为在 MATLAB
平台下解决多目标优化问题提供了良好的途径。gamultiobj 函数包含在遗传算法与直接搜索
工具箱(Genetic Algorithm and Direct Search Toolbox, GADST)中,这里我们称 gamultiobj
函数为基于遗传算法的多目标优化函数,相应的算法为基于遗传算法的多目标优化算法。本
案例将以 gamultiobj 函数为基础,对基于遗传算法的多目标优化算法进行讲解,并详细分
析其代码,同时通过一个简单的案例介绍 gamultiobj 函数的使用。
3、案例实例及结果:
作为案例,这里将使用 MATLAB 自带的基于遗传算法的多目标优化函数 gamultiobj 求解
一个简单的多目标优化问题。待优化的多目标问题表述如下:
可以看到,在基于遗传算法的多目标优化算法的运行过程中,自动绘制了第一前端中个
体的分布情况,且分布随着算法进化一代而更新一次。当迭代停止后,得到如图 9.5 所示的
第一前端个体分布图。同时,Worksapce 中返回了 gamultiobj 函数得到的 Pareto 解集 x 及
与 x 对应的目标函数值,如表 9.2 所示。