多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

一、多目标粒子群优化算法

多目标粒子群优化算法(MOPSO)是一种用于解决多目标优化问题的进化算法。它基于粒子群优化算法(PSO),通过引入多个目标函数和非支配排序来处理多目标问题。

MOPSO的基本思想是将问题转化为在多维搜索空间中寻找一组最优解的问题。每个解被称为一个粒子,它在搜索空间中移动,并根据自身的经验和群体的经验进行调整。粒子的位置表示解的候选解,速度表示解的搜索方向和步长。

MOPSO的算法流程如下:

  1. 初始化粒子群的位置和速度。

  2. 计算每个粒子的适应度值,即目标函数值。

  3. 根据非支配排序和拥挤度距离计算,对粒子进行排序。

  4. 更新粒子的速度和位置,以便更好地探索搜索空间。

  5. 重复步骤2-4,直到达到停止条件。

MOPSO的优点是能够找到一组近似最优解,这些解分布在整个帕累托前沿上,提供了多个可行的解决方案供决策者选择。它还具有较好的全局搜索能力和收敛性能。

MOPSO的应用领域包括工程优化、机器学习、数据挖掘等。它已经在许多实际问题中取得了良好的效果。

二、ZDT1、ZDT2、ZDT3、ZDT4、ZDT6介绍

ZDT1、ZDT2、ZDT3、ZDT4和ZDT6是一些常用的多目标优化测试函数。它们被广泛用于评估多目标优化算法的性能和效果。

ZDT1函数是一个双目标优化函数,它具有一个全局最优解和一个局部最优解。该函数的定义如下:

多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

其中,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量向量,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量的维度。ZDT1函数的全局最优解是多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码),对应的目标函数值为多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

ZDT2函数也是一个双目标优化函数,它具有一个全局最优解和一个局部最优解。该函数的定义如下:

多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

其中,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量向量,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量的维度。ZDT2函数的全局最优解是多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码),对应的目标函数值为多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

ZDT3函数是一个双目标优化函数,它具有一个全局最优解和一个局部最优解。该函数的定义如下:

多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

其中,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量向量,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量的维度。ZDT3函数的全局最优解是多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码),对应的目标函数值为多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

ZDT4函数是一个双目标优化函数,它具有一个全局最优解和一个局部最优解。该函数的定义如下:

多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

其中,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量向量,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量的维度。ZDT4函数的全局最优解是多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码),对应的目标函数值为多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

ZDT6函数是一个双目标优化函数,它具有一个全局最优解和一个局部最优解。该函数的定义如下:

多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

其中,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量向量,多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)是决策变量的维度。ZDT6函数的全局最优解是多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码),对应的目标函数值为多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

三、MOPSO求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6

3.1部分Python代码

import numpy as np
import matplotlib.pyplot as plt
from MOPSO import * 
from FunInfo import FunInfo
# 参数设置
#testProblem可取1 2 3 4 5 ,分别对应测试函数ZDT1、ZDT2、ZDT3、ZDT4、ZDT6
testProblem=1#测试问题
num_particles = 100#种群大小
num_iterations = 100#最大迭代次数

#获取测试函数信息
GetFun=FunInfo(testProblem)
Fun,dim,bounds=GetFun.GetFunDetail()
#Fun 目标函数
#dim 变量维度
#bounds 变量上下界

# 运行MOPSO
pareto_POF,pareto_POS = mopso(num_particles, bounds, num_iterations,Fun)
# pareto_POF 算法得到的POF
# pareto_POS 算法得到的POS
# 绘制Pareto前沿
plt.scatter(pareto_POF[:, 0], pareto_POF[:, 1])
plt.xlabel('Objective 1')
plt.ylabel('Objective 2')
plt.title('Pareto Front')
plt.show()


3.2部分结果

MOPSO求解ZDT1结果:

MOPSO得到的POF

0.259709	2.28455
0.00690907	3.05093
0.140244	2.52921
0.194179	2.40473
0.291803	2.23196
0.0478809	2.8041
0.020577	2.91755
0.193925	2.4124
0.00368497	3.08368
0.0265255	2.89159
0.124372	2.54897
0.0903595	2.65361
0.111091	2.59651
0.336201	2.17209
0.111091	2.59651
0.161572	2.47243
0.229625	2.32815
0.250301	2.30713
0.232698	2.32376
0.0380952	2.83465
0	3.16703


MOPSO得到的POS

0.259709	0.206563	0.262395	0.330207	0.221909	0.216457	0.240484	0.264247	0.17576	0.202084	0.221106	0.344181	0.186364	0.365219	0.308246	0.258176	0.147316	0.232802	0.307594	0.256584	0.295267	0.200903	0.230752	0.192236	0.323826	0.215109	0.259054	0.0988141	0.292785	0.2181
0.00690907	0.211317	0.256477	0.325657	0.222955	0.217783	0.235375	0.265844	0.177133	0.206249	0.224223	0.344072	0.186536	0.363423	0.30815	0.254027	0.15113	0.231961	0.306133	0.260573	0.288718	0.203908	0.229322	0.197834	0.324551	0.210232	0.259513	0.102299	0.29228	0.229964
0.140244	0.209385	0.259959	0.325469	0.242118	0.21635	0.244421	0.265091	0.178215	0.198313	0.223158	0.342554	0.194254	0.360312	0.306776	0.25008	0.149257	0.232551	0.306461	0.261635	0.279619	0.218785	0.225743	0.195812	0.321215	0.207302	0.258903	0.096942	0.29398	0.221051
0.194179	0.214838	0.262193	0.330877	0.228047	0.217031	0.242723	0.262535	0.179099	0.203259	0.222455	0.342149	0.191791	0.359764	0.308456	0.251294	0.146416	0.231824	0.306736	0.256115	0.283306	0.206591	0.21982	0.19925	0.320917	0.211023	0.256579	0.107627	0.29019	0.21027
0.291803	0.212691	0.257844	0.328295	0.233754	0.214182	0.23723	0.261915	0.176184	0.207861	0.222565	0.344456	0.181742	0.365396	0.307452	0.25766	0.147542	0.233276	0.306793	0.254134	0.29341	0.208863	0.23002	0.199517	0.324387	0.209632	0.259011	0.0990098	0.294026	0.213493
0.0478809	0.216651	0.259367	0.328331	0.225924	0.21971	0.233748	0.26238	0.173839	0.19711	0.224381	0.34515	0.185305	0.370065	0.308524	0.249986	0.146289	0.233748	0.304661	0.26142	0.309225	0.208122	0.22857	0.19579	0.320692	0.215698	0.252064	0.0977351	0.290713	0.208368
0.020577	0.211338	0.263892	0.3257	0.224883	0.215093	0.237443	0.265578	0.173969	0.208836	0.220684	0.341641	0.178408	0.365913	0.31156	0.249342	0.145116	0.233583	0.305689	0.249973	0.28547	0.198957	0.223196	0.197133	0.32544	0.214477	0.255934	0.0941949	0.294107	0.184575
0.193925	0.219111	0.258146	0.322174	0.235035	0.217441	0.234505	0.264163	0.176674	0.199034	0.22554	0.344312	0.184618	0.367491	0.308294	0.247647	0.14965	0.231847	0.306192	0.254032	0.28892	0.203227	0.229194	0.199631	0.325727	0.211907	0.254263	0.100237	0.292071	0.238396
0.00368497	0.224424	0.25708	0.323866	0.22451	0.215232	0.23764	0.264902	0.176306	0.201394	0.221482	0.343175	0.182486	0.362194	0.306539	0.24927	0.145425	0.232709	0.301954	0.258643	0.28667	0.213959	0.227241	0.198545	0.320097	0.212448	0.259151	0.0956305	0.289055	0.23154
0.0265255	0.211455	0.259075	0.327028	0.223942	0.218628	0.232437	0.264829	0.179138	0.202931	0.224285	0.346091	0.188079	0.362184	0.305754	0.24654	0.148866	0.233215	0.300781	0.255995	0.295698	0.199071	0.226223	0.199459	0.320269	0.212326	0.254811	0.0969461	0.290454	0.204752
0.124372	0.20631	0.250273	0.327286	0.219569	0.216739	0.236174	0.265401	0.179914	0.212409	0.225485	0.344351	0.181512	0.359042	0.307393	0.24636	0.147341	0.233483	0.302924	0.256876	0.280286	0.204643	0.224814	0.196346	0.320323	0.210301	0.25607	0.0960217	0.291356	0.217787
0.0903595	0.208954	0.258207	0.327603	0.219796	0.214741	0.241616	0.265889	0.183275	0.205012	0.231383	0.344135	0.186505	0.361994	0.305353	0.245125	0.146247	0.235472	0.301444	0.256822	0.292551	0.211136	0.224011	0.188892	0.321556	0.213671	0.263218	0.102339	0.289198	0.21227
0.111091	0.219589	0.258602	0.328482	0.220599	0.219097	0.238901	0.26553	0.176584	0.203425	0.222938	0.342918	0.182056	0.3617	0.308329	0.246941	0.145366	0.232822	0.307161	0.255054	0.289235	0.207224	0.227698	0.197414	0.324049	0.21524	0.263934	0.0936788	0.292116	0.21641
0.336201	0.210147	0.253185	0.329699	0.230958	0.217181	0.246957	0.266151	0.173272	0.207811	0.224127	0.343148	0.201096	0.362611	0.308671	0.256933	0.148152	0.233259	0.307048	0.258539	0.295292	0.218889	0.228196	0.201061	0.32706	0.215266	0.254991	0.100065	0.291135	0.213834
0.111091	0.219589	0.258602	0.328482	0.220599	0.219097	0.238901	0.26553	0.176584	0.203425	0.222938	0.342918	0.182056	0.3617	0.308329	0.246941	0.145366	0.232822	0.307161	0.255054	0.289235	0.207224	0.227698	0.197414	0.324049	0.21524	0.263934	0.0936788	0.292116	0.21641
0.161572	0.206942	0.256324	0.327177	0.226492	0.212188	0.235765	0.26377	0.183307	0.208893	0.22106	0.34436	0.183867	0.363299	0.305054	0.245914	0.146366	0.233952	0.305987	0.257221	0.295124	0.191074	0.231637	0.196806	0.322469	0.214167	0.257816	0.094567	0.292087	0.234287
0.229625	0.213752	0.257872	0.327651	0.226505	0.216504	0.239037	0.266452	0.176805	0.193425	0.223454	0.342063	0.186955	0.360861	0.303297	0.249873	0.147119	0.232815	0.307298	0.257899	0.29564	0.213307	0.230063	0.197194	0.322162	0.210373	0.252905	0.0961514	0.291	0.19594
0.250301	0.209934	0.259245	0.327228	0.223694	0.217319	0.242386	0.265627	0.172347	0.203962	0.226645	0.344826	0.182849	0.363607	0.30785	0.251644	0.149048	0.235367	0.306089	0.258399	0.293732	0.202077	0.226202	0.198748	0.321367	0.210169	0.259056	0.119815	0.291665	0.225856
0.232698	0.207125	0.262217	0.324577	0.227735	0.218066	0.241686	0.265291	0.175778	0.191417	0.222441	0.34431	0.184552	0.363536	0.307944	0.247031	0.148662	0.232538	0.303817	0.258539	0.291736	0.213453	0.227322	0.200518	0.320485	0.215539	0.25051	0.0962299	0.291011	0.205196
0.0380952	0.211421	0.26015	0.32823	0.222307	0.216014	0.232901	0.264362	0.177917	0.207362	0.224776	0.344691	0.184918	0.361147	0.306546	0.248686	0.14813	0.234018	0.305535	0.257587	0.28813	0.197549	0.231341	0.197543	0.3215	0.216229	0.25434	0.0980952	0.290496	0.201749
0	0.21406	0.260849	0.325909	0.222573	0.216186	0.236121	0.262781	0.177787	0.20603	0.222695	0.344806	0.183774	0.35879	0.310419	0.243456	0.145568	0.231378	0.303405	0.253002	0.281373	0.199173	0.226147	0.195574	0.322139	0.212987	0.256166	0.0673191	0.291236	0.210951

四、完整Python代码

版权声明:本文为博主作者:优化算法MATLAB与Python原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/2401_82411023/article/details/135611996

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2024年5月6日
下一篇 2024年5月6日

相关推荐