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 相关文章推荐
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python探索之URL Dispatcher实例详解
Oct 28 Python
基于python OpenCV实现动态人脸检测
May 25 Python
对matplotlib改变colorbar位置和方向的方法详解
Dec 13 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
Django继承自带user表并重写的例子
Nov 18 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 Python
python爬虫之selenium库的安装及使用教程
May 23 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
一个用php3编写的简单计数器
2006/10/09 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
PHP7 list() 函数修改
2021/03/09 PHP
JS读取XML文件示例代码
2013/11/15 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
英国最大的海报商店:GB Posters
2018/03/20 全球购物
建筑设计师岗位职责
2013/11/18 职场文书
黄金搭档广告词
2014/03/21 职场文书
护士医德考评自我评价
2015/03/03 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
《确定位置》教学反思
2016/02/18 职场文书
六年级作文之预言作文
2019/10/25 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers