python实现爬山算法的思路详解

  

  

  

找图中函数在区间(5、8)的最大值,
  

  

  

爬山算法会收敛到局部最优,解决办法是初始值在定义域上随机取乱数100次,总不可能100次都那么倒霉。

  

实现         进口numpy np   进口matplotlib。pyplot作为plt   导入数学   #搜索步长   δ=0.01   #定义域x从5到8闭区间   绑定=(5、8)   #随机取乱数100次   一代=100   def F (x):   返回sin (x *) + 2.0 * math.cos (2.0 * *)   def hillClimbing (x):   当F (x +δ)在F (x)和x + DELTA<绑定[1]=x + DELTA>=绑定[0]:   x=x +δ   当F (x-DELTA)在F (x)和x-DELTA<=绑定[1]和x-DELTA>=绑定[0]:   x=x-DELTA   返回x, F (x)   def findMax ():   最高=[0,-1000)   我的范围(代):   x=np.random.rand() *(绑定[1]绑定[0])+绑定[0]   currentValue=https://www.yisu.com/zixun/hillClimbing (x)   打印(当前值是:,currentValue)      如果currentValue[1]比;最高[1]:   [:]=currentValue最高   回报最高的   (x, y)=findMax ()   打印(' y,最高点是x: {}: {}“.format (x, y))      

运行结果:

  

 python实现爬山算法的思路详解

  

  

以上所述是小编给大家介绍的python实现爬山算法的思路详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留的言,小编会及时回复大家的!

python实现爬山算法的思路详解