java实现爬山算法_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实现爬山算法的思路详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
java实现爬山算法_python实现爬山算法的思路详解相关推荐
- python实现括号匹配代码_python实现括号匹配的思路详解
1.用一个栈[python中可以用List]就可以解决,时间和空间复杂度都是O(n) # -*- coding: utf8 -*- # 符号表 SYMBOLS = {'}': '{', ']': '[ ...
- java二分查找法_java算法之二分查找法的实例详解
java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...
- JAVA算法:回文字符串相关问题详解(回文字符串总结)
JAVA算法:回文字符串相关问题详解(回文字符串总结) Q1. 编写一个工具方法判断给定的字符串是否为回文字符串 例如:给定一个字符串"aabbaa",判断该字符串是否为回文字符串 ...
- DL之DilatedConvolutions:Dilated Convolutions(膨胀卷积/扩张卷积)算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之DilatedConvolutions:Dilated Convolutions(膨胀卷积/扩张卷积)算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 Dilated Con ...
- DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 ShuffleNetV2算法的简介(论文介绍) 1.论文特点 2.基于硬件 ...
- DL之ShuffleNet:ShuffleNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNet:ShuffleNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 相关文章 DL之ShuffleNet:ShuffleNet算法的简介(论文介绍).架构详 ...
- DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之MobileNet V2:MobileNet V2算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 MobileNetV2算法的简介(论文介绍) MobileNet V2算法 ...
- DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之MobileNet:MobileNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 MobileNet算法的简介(论文介绍) 1.研究背景 2.传统的模型轻量化常用的方法 ...
- DL之SqueezeNet:SqueezeNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之SqueezeNet:SqueezeNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 SqueezeNet算法的简介(论文介绍) 1.轻量级的CNN架构优势 2.主要特 ...
最新文章
- 构造方法和方法的重载。
- PHP中的常用关键字
- Android 更新UI的两种方法——handler和runOnUiThread()
- Linux Crontab内环境变量与Shell环境变量的关系及解决问题的办法
- 随想录(用好自己的时间)
- 数据库索引的使用及优化
- 推荐四格漫画:勇者、魔族、龙族
- 关于Java的this关键字
- bilibili直播: Vue.js Podcast(小记录)~~~
- android 音量调节流程分析,Android 4.4 音量调节流程分析(二)
- 5款不错的整站下载工具
- iOS前后台切换和监听
- 云知声打磨四年的AI芯片出炉,中国造芯势力群起
- 在Windows 7中使用AppLocker限制对程序的访问
- 阻止微信后退,阻止微信页面关闭 history.pushState 无刷新改变页面URL
- 苹果开发者账号申请 App IDs(应用身份证)
- 【明解C语言】选择语句之switch
- 1分钟链圈 | 比特大陆推出挖矿路由器!苏宁正式上线区块链产品“星际家园”...
- Linux磁盘分区初始化
- Linux软件源更新地址