python实现爬山算法的思路详解
2019-04-11 09:16
615 查看
问题
找图中函数在区间[5,8]的最大值
重点思路
爬山算法会收敛到局部最优,解决办法是初始值在定义域上随机取乱数100次,总不可能100次都那么倒霉。
实现
import numpy as np import matplotlib.pyplot as plt import math # 搜索步长 DELTA = 0.01 # 定义域x从5到8闭区间 BOUND = [5,8] # 随机取乱数100次 GENERATION = 100 def F(x): return math.sin(x*x)+2.0*math.cos(2.0*x) def hillClimbing(x): while F(x+DELTA)>F(x) and x+DELTA<=BOUND[1] and x+DELTA>=BOUND[0]: x = x+DELTA while F(x-DELTA)>F(x) and x-DELTA<=BOUND[1] and x-DELTA>=BOUND[0]: x = x-DELTA return x,F(x) def findMax(): highest = [0,-1000] for i in range(GENERATION): x = np.random.rand()*(BOUND[1]-BOUND[0])+BOUND[0] currentValue = hillClimbing(x) print('current value is :',currentValue) if currentValue[1] > highest[1]: highest[:] = currentValue return highest [x,y] = findMax() print('highest point is x :{},y:{}'.format(x,y))
运行结果:
总结
以上所述是小编给大家介绍的python实现爬山算法的思路详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
您可能感兴趣的文章:
相关文章推荐
- Python实现时钟显示效果思路详解
- python实现括号匹配的思路详解
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)
- Python实现日志自动记录功能(一个思路代码,详细可以自己扩展)
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(2)
- 机器学习经典算法详解及Python实现–K近邻(KNN)算法
- 详解Python字符串对象的实现
- Python实现优先级队列结构的方法详解
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(4)
- Python中用Descriptor实现类级属性(Property)详解
- 使用python获取CPU和内存信息的思路与实现(linux系统)
- 手机控制电脑的一种思路(Python实现)
- PHP实现执行定时任务的几种思路详解
- 人脸验证算法Joint Bayesian详解及实现(Python版)
- 详解字典树Trie结构及其Python代码实现
- 机器学习经典算法详解及Python实现--决策树(Decision Tree)
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(5)
- python实现bitmap数据结构详解
- 详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)