python 简单算法(python实现爬山算法的思路详解)
类别:脚本大全 浏览量:725
时间:2021-10-19 06:15:01 python 简单算法
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实现爬山算法的思路详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
原文链接:https://www.jianshu.com/p/70b4c878917e
您可能感兴趣
- python如何判断文件是否结束(python判断文件是否存在,不存在就创建一个的实例)
- python爬取酷狗收费音乐(python爬取酷狗音乐排行榜)
- python中如何定义带走参数的函数(Python函数定义及传参方式详解4种)
- python远程下发shell指令(Python实现堡垒机模式下远程命令执行操作示例)
- 闭包python讲解(详解Python循环作用域与闭包)
- python散点图(python scatter散点图用循环分类法加图例)
- python怎么从数组中取内容(python调用c++ ctype list传数组或者返回数组的方法)
- python3 代码解读(Python3列表内置方法大全及示例代码小结)
- python爬虫模块教程(Python爬虫之UserAgent的使用实例)
- python opencv图像合并(Python3+OpenCV2实现图像的几何变换平移、镜像、缩放、旋转、仿射)
- python时间类的实现(Python日期时间Time模块实例详解)
- python常见知识点整理(Python基础知识点 初识Python.md)
- 如何用python编写抽奖(详解用python写一个抽奖程序)
- python3列表的使用教程(对Python3 pyc 文件的使用详解)
- python樱花绽放代码(新年快乐! python实现绚烂的烟花绽放效果)
- python中split使用方法(python lxml中etree的简单应用)
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
- 一部手机两套系统 OPPO Find X3的正确打开方式你知道吗(一部手机两套系统)
- OPPO用户看过来 汇总几个春节实用技巧,轻松搞定多设备联动玩法(汇总几个春节实用技巧)
- 北京旅游攻略(北京旅游攻略5日游及其花费)
- 四川旅游攻略(四川旅游攻略自由行攻略)
- 上海迪士尼攻略(上海迪士尼攻略旅游)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9