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


Posted in Python onApril 09, 2019

问题

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

找图中函数在区间[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中处理字符串之ljust()方法的使用简介
May 19 Python
Python过滤列表用法实例分析
Apr 29 Python
Python搜索引擎实现原理和方法
Nov 27 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
python flask中动态URL规则详解
Nov 22 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
基于python实现百度语音识别和图灵对话
Nov 02 Python
sklearn中的交叉验证的实现(Cross-Validation)
Feb 22 Python
python执行js代码的方法
May 13 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 #Python
Python爬取数据保存为Json格式的代码示例
Apr 09 #Python
python实现QQ空间自动点赞功能
Apr 09 #Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 #Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 #Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 #Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 #Python
You might like
咖啡的化学
2021/03/03 咖啡文化
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
Python Property属性的2种用法
2015/06/21 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
客服部工作职责范本
2014/02/14 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
《大海那边》教学反思
2014/04/09 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
煤矿安全保证书
2015/02/27 职场文书
2015年女职工工作总结
2015/05/15 职场文书