网易首页 > 网易号 > 正文 申请入驻

Python中的盆地跳跃(BasinHopping)优化

0
分享至

盆地跳跃是一种全局优化算法。它是为解决化学物理学中的问题而开发的,尽管它是一种适用于具有多个最优条件的非线性目标函数的有效算法。

在本教程中,您将发现盆地跳跃全局优化算法。完成本教程后,您将知道:

盆地跳跃优化是一种全局优化,它使用随机扰动来跳跃盆地,并使用局部搜索算法来优化每个盆地。

如何在python中使用盆地跳跃优化算法API。

使用流域跳跃来解决具有多个最优解的全局优化问题的示例。

教程概述

本教程分为三个部分:他们是:

盆地跳跃优化

盆地跳跃API

盆地跳跃的例子 局部最优的多峰优化 具有多个全局最优的多峰优化

盆地跳跃优化

Basin Hopping是为化学物理领域开发的一种全局优化算法。局部优化是指旨在为单变量目标函数定位最优值或在认为存在最优值的区域中运行的优化算法。而全局优化算法旨在将单个全局最优定位在潜在的多个局部(非全局)最优之中。David Wales和Jonathan Doye在1997年的论文中描述了“盆地跳跃”,题目是“通过盆地跳跃进行的全局优化和包含110个原子的Lennard-Jones团簇的最低能级结构”。

该算法包括循环两个步骤,一个是好的候选解的扰动,另一个是将本地搜索应用于被扰动的解。

扰动允许搜索算法跳到搜索空间的新区域,并可能找到导致不同最优值的新盆地,例如技术名称中的“跳槽”。局部搜索使算法可以遍历新盆地达到最佳状态。新的最优值可以作为新的随机扰动的基础,否则将被丢弃。保留新解决方案的决策是由具有“温度”变量的随机决策函数控制的,这与模拟退火非常相似。温度根据算法的迭代次数进行调整。这样可以在高温时在运行的早期就接受任意解决方案,而更严格的策略是在低温时在搜索的后期仅接受质量更好的解决方案。这样,该算法非常类似于具有不同(扰动)起始点的迭代局部搜索。该算法运行指定的迭代次数或函数求值,并且可以多次运行以提高对找到全局最优值或找到相对好的解决方案的信心。

现在,我们已经从较高的层次熟悉了基本的跳变算法,下面让我们看一下Python中用于盆地跳变的API。

盆地跳跃API

在Python中,可以通过Basinhopping()SciPy函数来进行盆地跳跃。

另一个重要的超参数是通过“ niter”参数运行搜索集的迭代次数,默认为100。可以将其设置为数千次迭代或更多次迭代。

可以通过“步长”控制应用于候选解的扰动量,该“步长”定义了在问题域的边界范围内施加的最大变化量。默认情况下,将其设置为0.5,但应在域中将其设置为合理的值,以允许搜索找到新的盆地。例如,如果搜索空间的合理范围是-100到100,则步长为5.0或10.0个单位可能是合适的(例如,域的2.5%或5%)。

默认情况下,使用的本地搜索算法是“ L-BFGS-B”算法。可以通过将“ minimizer_kwargs”参数设置为关键字为“ method”且值作为要使用的本地搜索算法的名称(例如“ nelder-mead”)的目录来更改此设置。可以使用SciPy库提供的任何本地搜索算法。

搜索的结果是一个OptimizeResult对象,可以在其中像字典一样访问属性。可以通过“成功”或“消息”键来访问搜索的成功与否。

可以通过“ nfev”访问功能评估的总数,并且可以通过“ x”键访问为搜索找到的最佳输入。

现在,我们已经熟悉了Python中的盆地跳跃API,下面我们来看一些可行的示例。

盆地跳跃的例子

在本节中,我们将研究在多模态目标函数上使用盆地跳跃算法的一些示例。多峰目标函数是具有多个最优值的函数,例如全局最优值和许多局部最优值,或者具有相同目标函数输出的多个全局最优值。我们将在这两个函数上查看流域跳跃的示例。

局部最优的多峰优化

Ackley函数是目标函数的一个示例,该目标函数具有单个全局最优值和多个局部最优值,可能会在其中陷入局部搜索。因此,需要全局优化技术。这是一个二维目标函数,其全局最佳值为[0,0],其值为0.0。下面的示例实现了Ackley,并创建了一个三维表面图,显示了全局最优值和多个局部最优值。

运行示例将创建Ackley函数的表面图,以显示大量的局部最优值。

我们可以将盆地跳跃算法应用于Ackley目标函数。

在这种情况下,我们将使用从-5到5之间的输入域绘制的随机点开始搜索。

我们将使用0.5的步长,200次迭代和默认的本地搜索算法。经过一番尝试和错误后,才选择此配置。

搜索完成后,它将报告搜索状态,执行的迭代次数以及通过评估发现的最佳结果。

结合在一起,下面列出了将盆地跳跃应用于Ackley目标函数的完整示例。

运行示例将执行优化,然后报告结果。

注意:由于算法或评估程序的随机性,或者数值精度的不同,您的结果可能会有所不同。考虑运行该示例几次并比较平均结果。

在这种情况下,我们可以看到该算法将最优值定位为非常接近零的输入,并且目标函数的评估值实际上为零。我们可以看到,该算法的200次迭代产生了86,020个函数求值。

具有多个全局最优的多峰优化

Himmelblau函数是具有多个全局最优值的目标函数的示例。

具体来说,它具有四个最优值,并且每个都有相同的目标函数评估。这是一个二维目标函数,其全局最佳值分别为[3.0,2.0],[-2.805118、3.113112],[-3.779310,-3.283186],[3.584428,-1.848126]。这意味着全局优化算法的每次运行都可能找到不同的全局最优值。下面的示例实现了Himmelblau并创建了一个三维表面图,以直观地说明目标函数。

运行示例将创建Himmelblau函数的表面图,该图将四个全局最优值显示为深蓝色盆地。

我们可以将盆地跳跃算法应用于Himmelblau目标函数。

与前面的示例一样,我们将使用从-5到5之间的输入域绘制的随机点开始搜索。

我们将使用0.5的步长,200次迭代和默认的本地搜索算法。搜索结束时,我们将报告最佳位置的最佳输入。

运行示例将执行优化,然后报告结果。

在这种情况下,我们可以看到该算法在[3.0,2.0]处确定了一个最佳值。

我们可以看到,该算法的200次迭代产生了7,660个函数评估。

如果我们再次运行搜索,则可能期望找到其他全局最优值。

例如,下面,我们可以看到一个最佳值位于[-2.805118,3.131312]处,与之前的运行不同。

作者:沂水寒城,CSDN博客专家,个人研究方向:机器学习、深度学习、NLP、CV

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
学历大放水!清华一年毕业3000多博士,比哈佛耶鲁等五所世界名校加起来多出30%

学历大放水!清华一年毕业3000多博士,比哈佛耶鲁等五所世界名校加起来多出30%

爆角追踪
2026-06-02 22:12:58
OECD报告称中国大规模补贴扭曲全球市场,外交部回应

OECD报告称中国大规模补贴扭曲全球市场,外交部回应

澎湃新闻
2026-06-03 17:02:19
豪门婆婆有多豪?赌王送四太的传家澳白,儿媳大婚直接拿来撑场面

豪门婆婆有多豪?赌王送四太的传家澳白,儿媳大婚直接拿来撑场面

一盅情怀
2026-06-03 15:32:19
痛惜!39岁副教授,突发心梗离世

痛惜!39岁副教授,突发心梗离世

双一流高校
2026-06-03 00:08:06
四川巴中一小学为教师定制1500元一套的西装,官方通报:存在决策程序失当、经费使用不规范等问题,校长马某某停职

四川巴中一小学为教师定制1500元一套的西装,官方通报:存在决策程序失当、经费使用不规范等问题,校长马某某停职

扬子晚报
2026-06-03 07:22:58
钟景辉,今日在睡梦中离世

钟景辉,今日在睡梦中离世

最江阴
2026-06-03 14:08:54
头号大热出炉!世界杯6大夺冠热门来了!阿根廷仅第4,葡萄牙第5

头号大热出炉!世界杯6大夺冠热门来了!阿根廷仅第4,葡萄牙第5

球叮足球
2026-06-03 09:47:29
下午大跳水原因找到了

下午大跳水原因找到了

贩财局
2026-06-03 17:17:45
江西一民警驾车肇事致1死1残,一审获刑1年2个月,伤残者已申请抗诉:人行道上被汽车高速冲撞当场昏迷,为试管婴儿准备3年因车祸毁于一旦

江西一民警驾车肇事致1死1残,一审获刑1年2个月,伤残者已申请抗诉:人行道上被汽车高速冲撞当场昏迷,为试管婴儿准备3年因车祸毁于一旦

都市快报橙柿互动
2026-06-03 14:08:54
王守业贪污1.6亿,2005年“双规”后却被放出,他叫嚣:我摆平了

王守业贪污1.6亿,2005年“双规”后却被放出,他叫嚣:我摆平了

帝哥说史
2026-06-02 21:40:03
“King Sir”钟景辉,今早睡梦中去世

“King Sir”钟景辉,今早睡梦中去世

南方都市报
2026-06-03 16:06:22
今年高考很平静:只有985、211找得到好工作,其他80%都是销售相关工作

今年高考很平静:只有985、211找得到好工作,其他80%都是销售相关工作

老郭在学习
2026-06-03 13:31:11
Shams:库里与李宁10年合同总价超4亿美元,他曾拒绝更丰厚报价

Shams:库里与李宁10年合同总价超4亿美元,他曾拒绝更丰厚报价

懂球帝
2026-06-03 09:53:28
特朗普称对伊朗海上封锁或持续至9月

特朗普称对伊朗海上封锁或持续至9月

新华社
2026-06-03 18:30:30
霍尔木兹大消息,美军宣布:“林肯”号航母参与封锁,战机空袭开往伊朗哈尔克岛油轮,致机舱起火!国际油价上涨,特朗普:尽快达成协议

霍尔木兹大消息,美军宣布:“林肯”号航母参与封锁,战机空袭开往伊朗哈尔克岛油轮,致机舱起火!国际油价上涨,特朗普:尽快达成协议

每日经济新闻
2026-06-03 07:49:10
河南一足疗店推出“反方向按摩”,花200多给女技师洗脚70分钟

河南一足疗店推出“反方向按摩”,花200多给女技师洗脚70分钟

汉史趣闻
2026-06-02 11:04:59
割四赔五后续:麦客撤了,麦烂了,农户跪了,这锅谁背?

割四赔五后续:麦客撤了,麦烂了,农户跪了,这锅谁背?

番外行
2026-06-02 14:19:47
傅首尔瘦成瓜子脸上热搜,网友:弥补了瘦人没有傅首尔面相的缺憾

傅首尔瘦成瓜子脸上热搜,网友:弥补了瘦人没有傅首尔面相的缺憾

映射生活的身影
2026-06-03 15:48:06
蒋中正亲笔书写的任命状冲上热议!书法的好坏,永远意见不一?

蒋中正亲笔书写的任命状冲上热议!书法的好坏,永远意见不一?

书画相约
2026-06-01 07:23:51
46岁董洁花期太短了,这是董洁为某时尚杂志拍的大片,董洁贴上假胡子,脸上戴着厚重的网纱,脖子上挂着繁复的花朵,这妆造真的太前卫了

46岁董洁花期太短了,这是董洁为某时尚杂志拍的大片,董洁贴上假胡子,脸上戴着厚重的网纱,脖子上挂着繁复的花朵,这妆造真的太前卫了

牛油果生活观
2026-06-02 19:09:43
2026-06-03 20:31:00
情感骆驼
情感骆驼
每天分享情感美文
2020文章数 3302关注度
往期回顾 全部

科技要闻

传DeepSeek融资意向500亿:腾讯投100亿

头条要闻

民警驾车致1死1残获刑1年2个月 女伤者刚试管有了胚胎

头条要闻

民警驾车致1死1残获刑1年2个月 女伤者刚试管有了胚胎

体育要闻

选择中国品牌的库里,和他们的巨大野心

娱乐要闻

官方痛批乱象 刘涛郑恺等艺人遭点名

财经要闻

AI,开始偷懒了?

汽车要闻

专访蒋平:安全不做高低配 长安要让安全技术普惠

态度原创

手机
家居
房产
时尚
艺术

手机要闻

全能影像旗舰怎么选?vivo S60领衔四款中端机型横评

家居要闻

江畔轻奢 观云大宅

房产要闻

突发!254亩调规,海口江东的超级学校真的快来了!

休闲T恤舒适感极佳,夏天必不可少!轻轻松松拿捏日常的造型

艺术要闻

二十年前割麦的场景

无障碍浏览 进入关怀版