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字符串内置函数功能与用法总结)
- python3目录操作(Python3 pip3 list 出现 DEPRECATION 警告的解决方法)
- python中对象方法和顶级方法(Python3.5面向对象程序设计之类的继承和多态详解)
- python判断对象是否是某一类型(Python判断对象是否相等及eq函数的讲解)
- python标准库操作键盘(Python中捕获键盘的方式详解)
- python类中的数据封装(基于python生成器封装的协程类)
- python和mysql实战(由Python编写的MySQL管理工具代码实例)
- python 获取天气预报(详解用python自制微信机器人,定时发送天气预报)
- python如何读取文件(Python从文件中读取数据的方法讲解)
- 超简单使用Python换脸实例(超简单使用Python换脸实例)
- python怎么判断对象属性(判断python对象是否可调用的三种方式及其区别详解)
- python实现将txt转化为excel(python实现Excel文件转换为TXT文件)
- python的三维画图(python处理DICOM并计算三维模型体积)
- python3标准库资源(Python3标准库总结)
- python虚拟变量教程(Python中psutil的介绍与用法)
- linux下python安装pip(在Docker中的ubuntu中安装Python3和Pip的问题)
- 销 售 买 卖 你真的了解这四个字了吗(销售买)
- 谢娜是得罪快乐大本营造型师了吗 全场被黑化(谢娜是得罪快乐大本营造型师了吗)
- 前《iLOOK》时装总监 《快乐大本营》御用造型师上线(快乐大本营御用造型师上线)
- 释小龙晒杀青照片 多重身份惹观众期待(释小龙晒杀青照片)
- 《九牛之人降魔传》开机 演员祁高坤化身九牛之人除魔卫道(九牛之人降魔传开机)
- 王铲铲的致富之路无限金币卡法攻略教学(王铲铲的致富之路无限金币卡法攻略教学)
热门推荐
- docker 构建整个环境(Docker如何快速搭建LNMP环境最新)
- django整合前端流程日志权限(使用Django开发简单接口实现文章增删改查)
- docker1.12.5容器假死(解决docker run后容器出现Exited 0情况的问题)
- css盒子内阴影效果(CSS 实现多彩、智能的阴影效果)
- vue查询条件生成工具(vue实现四级导航及验证码的方法实例)
- python的4种数字变量(Python将字符串常量转化为变量方法总结)
- python3.7对象检测(在Python中使用Neo4j的方法)
- thinkphp控制器怎么设置自定义(Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例)
- asp.net中fileupload上传文件的方法
- python函数使用方法高级用法(Python函数的参数常见分类与用法实例详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9