程序的MPI实现
通过MPI生成num+1个粒子,每个粒子具有iloc,ivel,pbest,gbest属性和一个用于通讯的message[3]数组。
粒子的每个维度上的位置iloc和速度ivel在0~1范围内随机生成。
在num+1个粒子中,进程号为0的粒子被标记为全局粒子God,每个粒子更新自己的位置后将自己的pbest发送给God粒子,由God对全局排序后,将gbest发送给每个粒子。
通过MPI生成num+1个粒子,每个粒子具有iloc,ivel,pbest,gbest属性和一个用于通讯的message[3]数组。
粒子的每个维度上的位置iloc和速度ivel在0~1范围内随机生成。
在num+1个粒子中,进程号为0的粒子被标记为全局粒子God,每个粒子更新自己的位置后将自己的pbest发送给God粒子,由God对全局排序后,将gbest发送给每个粒子。
粒子得到当前gbest之后开始新一轮的计算,直到全局收敛于目标点后停止。
二维 0~1范围内 10粒子收敛,精度0.0001,用时
具体程序欢迎移步我的Github:https://github.com/Exceptionv/PSO-MPI
作业用demo,参考就行,别抄