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

凡科轻站官网河南省住房城乡建设门户网站

凡科轻站官网,河南省住房城乡建设门户网站,南昌市建设局网站,怎样做竞价推广文章目录 前言一、DE是什么#xff1f;二、DE流程2.1 初始化种群2.2 变异#xff08;差分操作#xff09;2.3 交叉2.4 选择2.5 重复迭代 三、DE运行结果 前言 这两天看了DE算法#xff0c;简单说下自己的认识 一、DE是什么#xff1f; 百科定义#xff1a;差分进化算… 文章目录 前言一、DE是什么二、DE流程2.1 初始化种群2.2 变异差分操作2.3 交叉2.4 选择2.5 重复迭代 三、DE运行结果 前言 这两天看了DE算法简单说下自己的认识 一、DE是什么 百科定义差分进化算法(Differential Evolution AlgorithmDE)是一种高效的全局优化算法。它也是基于群体的启发式搜索算法群中的每个个体对应一个解向量。 差分进化算法DEDifferential Evolution由Storn等人于1995年提出。最初用于解决切比雪夫多项式问题现在DE广泛用于解决复杂优化问题并且取得非常不错的效果。它通过模拟生物进化的过程通过不断演化生成一组解以期望找到问题的最优解。 二、DE流程 初始化种群 随机生成一定数量的个体形成初始种群变异差分操作对每个个体执行差分操作生成新的个体。差分操作涉及目标个体、两个随机选择的其他个体和一个缩放因子交叉 将变异后的个体与目标个体进行交叉操作生成新的解选择 比较新生成的解和当前种群中对应位置的个体选择其中更优秀的个体作为下一代的种群重复迭代 重复执行上述步骤直到满足停止条件例如达到最大迭代次数。 2.1 初始化种群 初始化种群先确定个体的数量NP又称种群规模和个体的初始基因数D然后指定范围后随机生成结果 如下所示博主是生成了一个基因数D为10的种群种群数量NP为2放的太多会影响内容出于演示考虑就放两个真正运行时不能这样。 [[-18.02048681 -14.41718301 -9.71498628 -19.59758138 2.962614349.88606516 -17.80244701 10.98612544 7.85991822 -4.35000201][-11.12895672 7.22395332 -8.69086121 -7.86988929 -3.975883627.80052737 7.26921488 6.6008707 -10.11471569 15.70808097]]2.2 变异差分操作 在第g次迭代中从种群中随机选择3个个体Xp1(g)Xp2(g)Xp3(g)且p1≠p2≠p3≠i生成的变异向量为 Xp1(g)称为基向量(Xp2(g)-Xp3(g))称为差分向量; F是缩放因子F越大越不容易陷入局部极值点F越小越有利于收敛到局部极值点; 计算出来的结果Hi(g)被称为变异个体 上面的i代表的是当前第g代种群中的第i个个体所以其实当前种群中的每个个体都会生成一个变异个体。 2.3 交叉 以一定概率让新产生的变异个体与原种群中个体进行交叉重组增强种群的多样性 其中cr∈[0,1]为交叉概率得出的结果Vi,j被称为试验个体 2.4 选择 将试验个体和父代个体相比较选择损失函数较小的作为下一代个体 2.5 重复迭代 重复执行上述步骤直到满足停止条件例如达到最大迭代次数。 三、DE运行结果 附代码 import numpy as np import random import matplotlib.pyplot as plt plt.rcParams[font.sans-serif][SimHei] #设置显示中文标签 plt.rcParams[axes.unicode_minus]False #设置正常显示符号 import math as mt#损失函数 def funcl(x):y 0for i in range(len(x)):y y x[i] ** 2return y#初始化参数 NP 100 # 初始化种群数 D 10 # 基因数目 CR 0.1 # 交叉算子 F0 0.4 # 初始变异算子 G 1000 # 最大遗传代数 Xs 20 # 上限 Xx -20 # 下限jiyi np.random.rand(NP, D) f jiyi * (Xs - Xx) Xx # 随机获得初始种群 FIT [] # 适应度计算存储列表 trace [] xtrace []for i in range(NP):FIT.append(funcl(f[i]))# 差分进化循环 for i in range(G):print(f第{i}代)vec [] # 变异种群,没看懂但是都是2维的u [[] for i in range(NP)] # 选择种群lamda mt.exp(1 - G / (G - i)) # 自适应变异算子随着迭代次数发生变化之后可以讨论一下F F0 * (2 ** lamda)# 变异操作和遗传算法的变异不同,得到任意两个个体的差值与变异算子相乘加第三个个体for m in range(NP):r1 random.sample(range(0, NP), 1)[0]while r1 m:r1 random.sample(range(0, NP), 1)[0]r2 random.sample(range(0, NP), 1)[0]while r2 m or r2 r1:r2 random.sample(range(0, NP), 1)[0]r3 random.sample(range(0, NP), 1)[0]while r3 m or r3 r2 or r3 r1:r3 random.sample(range(0, NP), 1)[0]vec.append(f[r1] F * (f[r2] - f[r3]))# 交叉操作,交叉所有个体的第j维r random.sample(range(0, NP), 1)[0]for j in range(D):cr np.random.rand()tem []if cr CR or j r:for k in range(len(f)):u[k].append(vec[k][j]) # 添加所有个体的第j维else:for k in range(len(f)):u[k].append(f[k][j])# 边界条件处理for j in range(NP):for m in range(D):if u[j][m] Xx or u[j][m] Xs:u[j][m] np.random.rand() * (Xs - Xx) Xx # 因为vec是变异得到的所以不一定在取值范围之内else:continue# 选择操作FIT1 []for m in range(NP):FIT1.append(funcl(u[m]))for m in range(NP):if FIT1[m] FIT[m]:f[m] u[m]FIT []for m in range(NP):FIT.append(funcl(f[m]))trace.append(min(FIT))xtrace.append(f[FIT.index(min(FIT))].tolist()) # 这里呀ndarray读进来的时候会发生浅拷贝和深拷贝的问题转成列表形式保存就不会出问题了 xvalue [] for i in range(len(xtrace)):xvalue.append(xtrace[i][2])# 绘制结果 plt.plot(trace, colordeepskyblue, markero, linewidth2, markersize3) plt.xlabel(迭代次数, fontsize10) plt.ylabel(损失函数, fontsize10) plt.show() plt.close()
http://www.huolong8.cn/news/317512/

相关文章:

  • 大腕 网站建设天津网络关键词优化
  • 贵阳网站建设公司哪家好wordpress更改站点地址
  • 利用百度快照搜索消失的网站初级网页设计师
  • 金融投资网站模板广州网站制作开发公司
  • 温州网站建设这个免费响应式企业网站源码
  • 建设网站模式成都网站建设联系电话
  • 网站建设相关工作总结短链接制作
  • 网站开发工作流程全景效果图如何制作
  • 黄石下陆区建设局网站广东省建设监理协会网站官网
  • 截获网站流量怎么做怎样做网站视频
  • 做网站需要注意哪些东西西班牙语网站建设
  • 维修网站建设菏泽网站建设费用
  • 那些钓鱼网站是怎么做的想做网站制作运营注册什么公司核实
  • 龙华网站(建设信科网络)万网的网站建设
  • 网站头部修改机关网站建设创新
  • 做标签网站邀请码泰州市建设监理协会网站
  • 城阳区建设银行网站重庆维力安网站建设
  • 做网站前景怎么样宁波h5模板建站
  • 找工作哪个网站好2022网站群建设公司排行榜6
  • 网站排名优化系统全球访问量最大的网站
  • 怎么建网站手机版h5 网站开发
  • 现在的网站推广是怎么做的快三竞猜网站建设
  • 公司没网站怎么做dsp简单工程承包合同范本
  • 网站备案名字要怎么写企业网站建设哪家专业
  • 网站开发是干什么的绍兴外贸网站建设
  • 外贸箱包网站模板增城网站建设推广
  • 毕业视频代做网站品牌推广建议
  • 宁夏网站seo工程造价信息网站
  • 商贸网站建设做网站推广选择什么最好
  • 建网站方案安装wordpress linux