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的pyxmpp2中的主循环使其提高性能
Apr 24 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
python 多线程串行和并行的实例
Feb 22 Python
python识别文字(基于tesseract)代码实例
Aug 24 Python
Django 创建后台,配置sqlite3教程
Nov 18 Python
Python实现动态循环输出文字功能
May 07 Python
python 中关于pycharm选择运行环境的问题
Oct 31 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 Python
python_tkinter弹出对话框创建
Mar 20 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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防注
2007/01/15 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
在Django的URLconf中使用命名组的方法
2015/07/18 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
python破解zip加密文件的方法
2018/05/31 Python
python实现周期方波信号频谱图
2018/07/21 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
数控专业推荐信范文
2013/12/02 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
保险公司早会主持词
2014/03/22 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
庆祝教师节主题班会
2015/08/17 职场文书