C++的pso算法,在vc++运行程序后是怎么样的?
是不是运行后就直接开始查找最优粒子直到找到结果吗?
C++的粒子群优化算法运行结果是怎么样的
答案:2 悬赏:30 手机版
解决时间 2021-02-03 18:11
- 提问者网友:缘字诀
- 2021-02-03 08:38
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-02-03 09:06
它是每进化一代就差找一次,能否找到结果是看你设置的最大迭代次数和终止条件是否满足。你可以看pso算法的两个公式。
算法运行和用什么语言没关系。
PSO的具体实现步骤如下:
Step1: 参数初始化。
在初始范围内,随机初始化一群粒子。即设置种群规模m,粒子的初始位置 x1,x2,...,xm,初始速度v1,,v2…,vm,并将各粒子的个体最优pi设置为初始位置,全局最优值pg设为pi中的最优值。
Step2: 根据速度和位置公式对粒子的速度和位置进行更新。
Step3: 计算每个粒子的适应值。
Step4: 判断每个粒子的个体最优值。
对每个粒子,将其当前的适应值和上一次的个体最优值pi进行比较,如果当前适应值优于pi,则令pi取当前适应值,否则,个体最优值仍为原来的pi(其中i=1,2,...,m)。
Step5:判断整个粒子群的全局最优值。
比较当前每个粒子的个体最优值,找出当前迭代中的全局最优值,与历史全局最优pg比较,如果优于pg,则令pg取当前迭代中的全局最优值,否则,全局最优pg还取原来的值。
Step6: 判断是否满足终止条件。如果满足则转入Step7;否则,转Step2,继续迭代。
Step7: 输出全局最优解,算法进行结束。
算法运行和用什么语言没关系。
PSO的具体实现步骤如下:
Step1: 参数初始化。
在初始范围内,随机初始化一群粒子。即设置种群规模m,粒子的初始位置 x1,x2,...,xm,初始速度v1,,v2…,vm,并将各粒子的个体最优pi设置为初始位置,全局最优值pg设为pi中的最优值。
Step2: 根据速度和位置公式对粒子的速度和位置进行更新。
Step3: 计算每个粒子的适应值。
Step4: 判断每个粒子的个体最优值。
对每个粒子,将其当前的适应值和上一次的个体最优值pi进行比较,如果当前适应值优于pi,则令pi取当前适应值,否则,个体最优值仍为原来的pi(其中i=1,2,...,m)。
Step5:判断整个粒子群的全局最优值。
比较当前每个粒子的个体最优值,找出当前迭代中的全局最优值,与历史全局最优pg比较,如果优于pg,则令pg取当前迭代中的全局最优值,否则,全局最优pg还取原来的值。
Step6: 判断是否满足终止条件。如果满足则转入Step7;否则,转Step2,继续迭代。
Step7: 输出全局最优解,算法进行结束。
全部回答
- 1楼网友:第幾種人
- 2021-02-03 10:18
针对目前已有的粒子群优化算法求解有等式约束优化问题时对收敛速度和解的精度的影响,提出了一种新的基于参数方程的粒子群优化算法。它是粒子群在初始化和迭代进化过程中使用求解参数方程的方法处理等式约束设计出的粒子群优化算法。数值实验结果表明,新算法是有效的。它不仅提高了收敛速度和解的精度,而且是一种通用的智能算法。.. ... hahahahahahah
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯