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常规方法实现数组的全排列
Mar 17 Python
Python全局变量操作详解
Apr 14 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
老生常谈Python之装饰器、迭代器和生成器
Jul 26 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
如何通过50行Python代码获取公众号全部文章
Jul 12 Python
python3读取csv文件任意行列代码实例
Jan 13 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
用Python生成会跳舞的美女
Jan 18 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 Python
分享python函数常见关键字
Apr 26 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
JS 面向对象之神奇的prototype
2011/02/26 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
jQuery知识点整理
2015/01/30 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
python基础教程之lambda表达式使用方法
2014/02/12 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
window下eclipse安装python插件教程
2017/04/24 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python实现快递价格查询系统
2020/03/03 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
移交协议书
2014/08/19 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
办公用品管理制度
2015/08/04 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
Nginx快速入门教程
2021/03/31 Servers
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
如何利用python实现列表嵌套字典取值
2022/06/10 Python