当前位置: 首页 > news >正文

唐山公司网站建设 中企动力唐山宽带动态ip如何做网站访问

唐山公司网站建设 中企动力唐山,宽带动态ip如何做网站访问,wordpress竖直导航栏,企业制作宣传片拍摄文章目录 1 什么是粒子群算法#xff1f;2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 #xff08;赛题出来以后第一时间在CSDN分享#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法#xff1f; 粒子群算法#xff08;Pa… 文章目录 1 什么是粒子群算法2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 赛题出来以后第一时间在CSDN分享 https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法 粒子群算法Particle Swarm Optimization,PSO是一种模仿鸟群、鱼群觅食行为发展起来的一种进化算法。其概念简单易于编程实现且运行效率高、参数相对较少应用非常广泛。粒子群算法于1995年提出距今2019已有24年历史。      粒子群算法中每一个粒子的位置代表了待求问题的一个候选解。每一个粒子的位置在空间内的好坏由该粒子的位置在待求问题中的适应度值决定。每一个粒子在下一代的位置有其在这一代的位置与其自身的速度矢量决定其速度决定了粒子每次飞行的方向和距离。在飞行过程中粒子会记录下自己所到过的最优位置 群体也会更新群体所到过的最优位置 。粒子的飞行速度则由其当前位置、粒子自身所到过的最优位置、群体所到过的最优位置以及粒子此时的速度共同决定。 2 举个例子 在一个湖中有两个人他们之间可以通信并且可以探测到自己所在位置的最低点。初始位置如上图所示由于右边比较深因此左边的人会往右边移动一下小船。 现在左边比较深因此右边的人会往左边移动一下小船 一直重复该过程最后两个小船会相遇 得到一个局部的最优解 将每个个体表示为粒子。每个个体在某一时刻的位置表示为x(t),方向表示为v(t) pt为在t时刻x个体的自己的最优解g(t)为在t时刻所有个体的最优解v(t)为个体在t时刻的方向x(t)为个体在t时刻的位置 下一个位置为上图所示由x,p,g共同决定了 种群中的粒子通过不断地向自身和种群的历史信息进行学习从而可以找到问题的最优解。 3 还是一个例子 粒子群算法是根据鸟群觅食行为衍生出的算法。现在我们的主角换成是一群鸟。 小鸟们的目标很简单要在这一带找到食物最充足的位置安家、休养生息。它们在这个地方的搜索策略如下   1 每只鸟随机找一个地方评估这个地方的食物量。   2 所有的鸟一起开会选出食物量最多的地方作为安家的候选点G。   3 每只鸟回顾自己的旅程记住自己曾经去过的食物量最多的地方P。   4 每只鸟为了找到食物量更多的地方于是向着G飞行但是呢不知是出于选择困难症还是对P的留恋或者是对G的不信任小鸟向G飞行时时不时也向P飞行其实它自己也不知道到底是向G飞行的多还是向P飞行的多。   5 又到了开会的时间如果小鸟们决定停止寻找那么它们会选择当前的G来安家否则继续2-3-4-5来寻找它们的栖息地。 上图描述的策略4的情况一只鸟在点A处点G是鸟群们找到过的食物最多的位置点P是它自己去过的食物最多的地点。V是它现在的飞行速度速度是矢量有方向和大小)现在它决定向着P和G飞行但是这是一只佛系鸟具体飞多少随缘。如果没有速度V它应该飞到B点有了速度V的影响它的合速度最终使它飞到了点C这里是它的下一个目的地。如果C比P好那么C就成了下一次的P如果C比G好那么就成了下一次的G。 算法流程 算法实现 这里学长用python来给大家演示使用粒子群解函数最优解 import numpy as np import matplotlib.pyplot as plt import random# 定义“粒子”类 class parti(object):def __init__(self, v, x):self.v v # 粒子当前速度self.x x # 粒子当前位置self.pbest x # 粒子历史最优位置class PSO(object):def __init__(self, interval, tabmin, partisNum10, iterMax1000, w1, c12, c22):self.interval interval # 给定状态空间 - 即待求解空间self.tab tab.strip() # 求解最大值还是最小值的标签: min - 最小值max - 最大值self.iterMax iterMax # 迭代求解次数self.w w # 惯性因子self.c1, self.c2 c1, c2 # 学习因子self.v_max (interval[1] - interval[0]) * 0.1 # 设置最大迁移速度#####################################################################self.partis_list, self.gbest self.initPartis(partisNum) # 完成粒子群的初始化并提取群体历史最优位置self.x_seeds np.array(list(parti_.x for parti_ in self.partis_list)) # 提取粒子群的种子状态 ###self.solve() # 完成主体的求解过程self.display() # 数据可视化展示def initPartis(self, partisNum):partis_list list()for i in range(partisNum):v_seed random.uniform(-self.v_max, self.v_max)x_seed random.uniform(*self.interval)partis_list.append(parti(v_seed, x_seed))temp find_ self.tabif hasattr(self, temp): # 采用反射方法提取对应的函数gbest getattr(self, temp)(partis_list)else:exit(tab标签传参有误min|max)return partis_list, gbestdef solve(self):for i in range(self.iterMax):for parti_c in self.partis_list:f1 self.func(parti_c.x)# 更新粒子速度并限制在最大迁移速度之内parti_c.v self.w * parti_c.v self.c1 * random.random() * (parti_c.pbest - parti_c.x) self.c2 * random.random() * (self.gbest - parti_c.x)if parti_c.v self.v_max: parti_c.v self.v_maxelif parti_c.v -self.v_max: parti_c.v -self.v_max# 更新粒子位置并限制在待解空间之内if self.interval[0] parti_c.x parti_c.v self.interval[1]:parti_c.x parti_c.x parti_c.velse:parti_c.x parti_c.x - parti_c.vf2 self.func(parti_c.x)getattr(self, deal_self.tab)(f1, f2, parti_c) # 更新粒子历史最优位置与群体历史最优位置def func(self, x): # 状态产生函数 - 即待求解函数value np.sin(x**2) * (x**2 - 5*x)return valuedef find_min(self, partis_list): # 按状态函数最小值找到粒子群初始化的历史最优位置parti min(partis_list, keylambda parti: self.func(parti.pbest))return parti.pbestdef find_max(self, partis_list):parti max(partis_list, keylambda parti: self.func(parti.pbest)) # 按状态函数最大值找到粒子群初始化的历史最优位置return parti.pbestdef deal_min(self, f1, f2, parti_):if f2 f1: # 更新粒子历史最优位置parti_.pbest parti_.xif f2 self.func(self.gbest):self.gbest parti_.x # 更新群体历史最优位置def deal_max(self, f1, f2, parti_):if f2 f1: # 更新粒子历史最优位置parti_.pbest parti_.xif f2 self.func(self.gbest):self.gbest parti_.x # 更新群体历史最优位置def display(self):print(solution: {}.format(self.gbest))plt.figure(figsize(8, 4))x np.linspace(self.interval[0], self.interval[1], 300)y self.func(x)plt.plot(x, y, g-, labelfunction)plt.plot(self.x_seeds, self.func(self.x_seeds), b., labelseeds)plt.plot(self.gbest, self.func(self.gbest), r*, labelsolution)plt.xlabel(x)plt.ylabel(f(x))plt.title(solution {}.format(self.gbest))plt.legend()plt.savefig(PSO.png, dpi500)plt.show()plt.close()if __name__ __main__:PSO([-9, 5], max)效果 建模资料 资料分享: 最强建模资料
http://www.zqtcl.cn/news/980933/

相关文章:

  • 个人商城网站怎么做电商网站及企业微信订烟
  • 温州市网站优化广告平面设计教程
  • 南通制作网站的有哪些公司吗sae 部署wordpress
  • 友情链接对网站的影响wordpress admin init
  • 渭南网站开发做网红用哪个网站
  • 湖北建设网站wordpress 翻页电子书
  • 网站设计命名规范厦门建站比较好的公司
  • 用vs2010做网站登入前端培训费用大概多少郑州
  • 网站建设后的效果评估杭州网站制作公司
  • 3网站建设公司影楼修图用什么软件
  • 手机网站的内容模块多用户商城开源左
  • 库尔勒网站建站宝盒合作
  • 五河网站建设哪家好wordpress获取文章作者
  • 怎么修改网站内容wordpress ajax接口
  • 绵阳市城乡建设和规划局网站重庆网站建设公司有哪些
  • 宿迁网站建设公司排名展厅设计企业
  • 做家具定制的设计网站开阿里巴巴网站建设流程
  • 站长统计软件广州免费核酸在哪里做
  • 做soho一定要做网站吗在百度网站备案查询上显示未备案是什么意思
  • 移动公司营销网站设计html旅游网站模板
  • 专业生产车间设计图纸网站ui设计师证
  • 如何建网站教程视频10种网络营销方法
  • 网站内链优化的角度wordpress缓存插件破解版
  • 南宁网站建设哪个好天津网站建设咨询
  • 网站开发常用中间件计算机语言python
  • 学习html5的网站软件系统开发怎样容易
  • 做企业网站用什么华为弹性云服务器创建wordpress
  • 重庆手机网站开发网站建设的条件是什么
  • 舟山建设网站公司wordpress的总结
  • 如何做com的网站做网站设计学那个专业好