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程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
python如何读写csv数据
Mar 21 Python
python中的句柄操作的方法示例
Jun 20 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
详解Django配置JWT认证方式
May 09 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
5款实用的python 工具推荐
Oct 13 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
Python天气语音播报小助手
Sep 25 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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
PHP中error_log()函数的使用方法
2015/01/20 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
Python日期操作学习笔记
2008/10/07 Python
python基础教程之lambda表达式使用方法
2014/02/12 Python
Python3 log10()函数简单用法
2019/02/19 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
工商管理实习生自我鉴定范文
2013/12/18 职场文书
单位办理社保介绍信
2014/01/10 职场文书
项目经理聘任书
2014/03/29 职场文书
学生干部培训方案
2014/06/12 职场文书
公益广告标语
2014/06/19 职场文书
银行求职自荐书
2014/06/25 职场文书
教室布置标语
2014/06/26 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
文明单位创建材料
2014/12/24 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang