粒子群算法原理 基于numpy6.2的粒子群算法详解 当前资讯
目录
1粒子群算法简介2算法原理3迭代公式4算法流程5实例计算6代码实现6.1 基于numpy6.2 基于sko.pso
1粒子群算法简介
(资料图)
粒子群算法(Particle Swarm Optimization,简称PSO)是1995年Eberhart博士和Kennedy博士一起提出的。粒子群算法是通过模拟鸟群捕食行为设计的一种群智能算法。区域内有大大小小不同的食物源,鸟群的任务是找到最大的食物源(全局最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互传递各自位置的信息,让其他的鸟知道食物源的位置最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,问题收敛。学者受自然界的启发开发了诸多类似智能算法,如蚁群算法、布谷鸟搜索算法、鱼群算法、捕猎算法等等。
2算法原理
这是一个根据鸟群觅食行为衍生出启发式的算法,现在有一群鸟,他们一起出发觅食,目标就是找到可行域食物最丰富的位置。小鸟们在同一个微信群聊中,可以不断共享自己找到的事物最丰富的地方。策略如下:
1. 每只鸟随机找一个地方,按照一个随机的方向出发。
2. 每飞一分钟后, 每只鸟将自己找到的最优地点以及事物存量共享到群里,然后计算出群体找到的最优位置。
3. 每只鸟回顾自己的路径,综合考虑自己走过的最优的位置和群体最优位置决定下一步的方向。
4. 如果大家都到了同一个地方附近,就停止寻找,否则重复2 ,3 步。
整个群体的位置更新如下图,每一个红点即一个粒子: (图片来自 scikit-opt)
而某一只鸟(其中一个粒子)的位置更新方法如下图:
3迭代公式
迭代公式非常简单明了 每一次的速度更新公式: 位置更新公式: c1,c2-加速常数,调节学习最大步长 r1,r2-两个随机函数,取值范围[0,1],以增加搜索随机性 w-惯性权重,非负数,调节对解空间的搜索范围。 那怎么判断一个位置的优劣呢? 需要求解的最小化目标函数称为适应度函数, 将粒子的位置带入适应度函数,结果越小越优。
4算法流程
5实例计算
现在我们举一个简单的例子, 求解一维优化问题计算的目标函数 y = x 2 y=x^2 y=x2的最小值点。 初始化两个粒子,位置分别是 x = − 3 , x = 2 x = -3, x =2 x=−3,x=2, 初始速度为 v = 1 , v = − 1 v=1 , v=-1 v=1,v=−1 ,为了计算简便 w , c 1 , r 1 , c 2 , r 2 w,c_1,r_1,c_2,r_2 w,c1,r1,c2,r2参数值取1.
6代码实现
6.1 基于numpy
import numpy as np import random # pso def suit(x): x1, x2=x return -(x1-10) ** 2 + -(x2 - 3) ** 2 # + -x3 ** 2def best_p(current_p,person_best): # x = np.zeros_like(current_p) n,d = current_p.shape for i in range(n):# 每个粒子比较一次 a = current_p[i] b = person_best[i] if suit(b)>suit(a): x[i] = b else: x[i]= a return x def global_b(person_best): # n*d n,d= person_best.shape s = [] for j in range(n): s.append(suit(person_best[j])) i = np.array(s).argmax() x = np.array(person_best[i]) return x # init n = 40 # 粒子个数d = 2current_v = np.array([[random.randint(1, 100) for i in range(n)]]).reshape(-1,d)current_p = np.array([[random.randint(1, 100) for i in range(n)]]).reshape(-1,d)person_best = current_pglobal_best = global_b(person_best) T = 0 w=1 while T<100000: # if all([current_p[i][0]==current_p[0][0] for i in range(len(current_p))]): # print(T,current_p) # break if sum(person_best.std(axis=0))<.1: break else: w = w*0.99996;r1 = random.random(); r2 = random.random() current_v = w*current_v + r1*(person_best-current_p)+ r1*(global_best - current_p) # w = w*0.999 # current_v = w*current_v +(person_best-current_p)+(global_best - current_p) current_p = current_p + current_v person_best = best_p(current_p, person_best) global_best = global_b(person_best) #current_v = current_v + 2* (person_best- current_p)+2*(global_best- current_p) T+=1 print(T, person_best)
6.2 基于sko.pso
python sko库中包含了常用的启发式算法, 也包含粒子群算法PSO,可以直接调用,非常快捷方便 。
from sko.PSO import PSOdef demo_func(x): x1, x2, x3 = x return (x1-5) ** 2 + (x2 - 2) ** 2 + (x3-19) ** 2pso = PSO(func=demo_func, dim=3)fitness = pso.fit()print("best_x is ", pso.gbest_x, "best_y is", pso.gbest_y) >>>best_x is [ 4.99981675 2.00044853 18.99955148] best_y is [4.35931123e-07]
参考文献: [1]J. Kennedy and R.C. Eberhart. “Particle swarm optimization.” In IEEE international Conference on Neural Networks, volume 4,IEEE Press, 1995, pp. 1942–1948. [2] scikit_opt
标签:
相关推荐:
最新新闻:
- 当前视点!狄拉克:量子场论的研究方法
- 粒子群算法原理 基于numpy6.2的粒子群算法详解 当前资讯
- 《黑豹2》明日上映 漫威:接收全方位炸裂视效冲击!
- 经典摔角综合格斗游戏 《周末勇士》登陆steam:全球微速讯
- 10套极好用的PS绘画笔刷工具 简直就是神器
- 优秀的企业绩效考核系统——MVC设计模式
- sqoop导入pg11常见问题及解决方法 热点在线
- java代码实现二分法查找 二分法的实现:每日消息
- 天天热门:视频编码中画面质量控制中最重要的部分——DataRate
- 最资讯丨NSM开发总结 NSM项目的技术培训
- matlab软件实验原理 matlab中的图像增强与复原实验_今亮点
- 世界热资讯!【linux系统命令大全】免费使用和自由传播的Unix系统
- java命令行中的DstRpcServer怎么运行?操作步骤:天天快播报
- 今日播报!视频会员越来越贵 权益却在打折:体系很复杂 充值套路多
- 《如龙 维新!极》新情报:队士能力及编组系统介绍|当前独家
- 杀不死的「去中心化」:每日速读
- 2023年,我们需要怎样的企业家精神:世界快消息
- iPhone 14 Pro全系降价700元:苹果坐不住了
- 2023年中国汽油行业市场供需现状分析 汽油出口金额创历史峰值【组图】_天天快资讯
- 要闻:腾讯成立职业技能培训学校公司 注册资本100万元
- 环球头条:2万元的iPhone上热搜 网友:不是它疯了就是我疯了
- 环球通讯!世嘉发布神秘手游新作先行预告 2月10日正式公布
- 焦点资讯:男子礁石上钓鱼被海浪拍进石缝 垂钓别选偏僻海域
- 生活逃不过科技与狠活:世界视点
- 每日热门:微软Bing已经引入ChatGPT 搜索市场要变天?
- 特斯拉又出事故 高速撞车 每日焦点
- iPhone 14到手4899元 史低价快来捡漏 报道
- 比尔盖茨约马斯克做慈善家:咱们把钱全捐了-环球观天下
- 《阿凡达:水之道》导演卡梅隆diss流媒体:观众需要回到影院去!
- 葛优起诉哔哩哔哩网络侵权:答辩期及举证期满后第3日开庭审理。-世界时讯
- 每日热讯!为什么三体不稳定,我们的太阳系如此稳定?
- RTX4070 Ti比A卡低了60W功耗 4年能省2300多元
- 环球快看:日本政府否认雨宫正佳将接棒央行传闻,日元反弹
- 全球微头条丨生存恐怖游戏《原始预兆》新预告 红发美女打恐龙
- 四川地下皇帝:400亿黑财帝国覆灭记
- 主播说联播丨满目春光,满怀希望,奔向美好!
- 《死亡空间:重制版》暂未打算支持Mod或加入新难度模式-热点
- 路畅科技(002813.SZ)拟增发收购中联高机100%股权开拓高空作业平台业务:环球新资讯
- 全球头条:《卧龙:苍天陨落》新演示 大战魔化武将颜良文丑
- 抒写心情的短句子8个字(实用278句)
- 路痴党福音!《星战绝地:幸存者》有快速旅行
- 天天观速讯丨男子油锅炸元宵现场惨烈 网友:需要穿防护服操作
- 小米预计今年手机出货可达1.65亿部 资本市场看好
- 仍然是美国最畅销的汽车之一!特斯拉MODEL Y在美国涨价超万元:每日观察
- 谁能拯救量子力学?:最新快讯
- 环球热文:用户在iOS 16.3更新后发现一个大Bug
- 国内油价上调:又涨价了:当前聚焦
- 比亚迪:1月汉卖出1.22万辆 宋Plus也格外火
- 推理游戏《重返犯罪现场》中文版实机视频_环球关注
- 《星空》玩家能偷窃NPC东西 与《辐射》类似
- 当前快报:梁朝伟被郭富城扇耳光!《风再起时》新片段释出
- 世界百事通!装机维修配网络《IT服务公司模拟器》PC版公布
- 通讯!你可以生气,但不要越想越气
- 文明6教程:文明6神级难度怎么玩
- 亚马逊的无人机送达的房屋数量比这个标题中的字数还少
- 新动态:年底促销!索尼PS5季度出货710万
- 精彩看点:南极唯一电车重新设计 因为气候过热
- 每日热点:【手慢无】小米小背包到手39元
- 【手慢无】小米磁吸收纳米家指甲刀五件套仅需39.9元_环球精选
- 支持双人《SD新假面骑士 乱舞》中文版4月27日上市
- Steam新一周销量榜 《霍格沃茨之遗》登顶:天天短讯
- 今日看点:【手慢无】2899!小米平板Book二合一电脑首发
- 国产的会跟进吗?特斯拉在美国提高Model Y价格:涨价近7000元
- 当前简讯:附带散热小风扇亮了!第一款消费级PCIe Gen5 NVMe SSD曝光
- OpenAI强化!微软推出Teams高级版|当前观点
- 世界看热讯:有钱就是可以为所欲为!苹果连续第16年成为“全球最受尊敬的公司”
- 全球快资讯丨提高市占率 高盟新材拟扩产胶粘剂新材料
- 新能源汽车比亚迪,新款车子要来了。而且属于高端车|焦点速看
- 天天观焦点:天气通_关于天气通的基本详情介绍
- 男子将厕所改造成电竞房:马桶当凳子 实现游戏自由
- 《心灵杀手2》将迎合新老玩家 没玩过前作没关系
- 印度公司生产眼药水致人失明死亡 美国下令停售
- 通讯!《仙剑奇侠传7》今年夏季加入Xbox Game Pass
- 曝一加11还有8G+128G的版本
- 一加Ace 2真机曝光:双曲面屏幕-当前视讯