python爬虫技术深入理解原理,爬虫算法什么意思

  python爬虫技术深入理解原理,爬虫算法什么意思

  前言scikit-opt是将七种启发式算法一一封装的计算机编程语言码库(差分进化算法、遗传算法、粒子群算法、模拟退火算法、蚁群算法)源代码具有很大的学习价值。该文主要根据差分进化(德)算法原理解读源代码。

  特拉华州算法与源代码解读

  设置函数,则有三个未知解

  defobj_func(p ) : x1,x2,x3=p return x1 ** 2 x2 ** 2 x3 ** 2初始解形状

  self.x=none#shape=(size_pop,n_dim)初始解)种群)德继承系遗传算法基础)为x的上下限,新解为均匀分布在约束条件上下界的向量

  class de(geneticalgorithmbase):def _ init _(self,func,n_dim,F=0.5,size_pop=50,max _ ITER约束器constraint _ ueq=constraint _ ueq(自身。F=F自我。五、自我。U=None、None self.lb、self.ub=NP .数组)

  变异,产生新解向量v,v超过解的边界时,保留原来的初始解。这里可以采用和改善最典型的变异方法。

  def突变(自身):“”v)I)=x[r1]f)x[r2]-x[R3],其中我、R1、R2、R3是随机生成的 #和#以及TD #和R3不应相等random _ idx=NP.random.randint (0,self.size_pop,size=)self。大小R3=random _ idx[:2]#其中f是固定的,并且能够转换成适应值self.v=3360 (-x [ R3,R3 ],])thelowerupperboundstillworksinmutationmask=NP。随机的。统一(低=自我。lb,high=叹气self.n_dim)

  交叉操作是使初始解x和变异解v概率性交叉,生成解向量你。在此,self.prob_mut是复活社

  defcrossover(自身): 如果rand prob_crossover使用v,elseusexmask=NP .Random.rand ) self.size_Pize

  选择操作,然后根据函数值的大小选择是否保留u

  定义选择(自身): 贪婪选择 x=self.x.copy ) ) f_X=self.x2y).复制)self.x=

  迭代,继续变异,选择

  定义运行(自、马克斯_ ITER=无(:自我。马克斯_ ITER=马克斯_伊特尔瑟夫。max _ iterforiinrange(self。马克斯_ ITER)3360自我。最大lf。generation _ best _ x . append)自我。x[generation _ x . append]3360).复制((自我。世代_最佳_ y)全局_最佳_索引=NP。数组(自身。世代_最佳_ y).arg min)self。best _ x=自我。世代相传

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: