智能优化算法改进策略之局部搜索算子(七)--自适应模式搜索法

1、原理介绍

    模式搜索法[1]是Hooke与Jeeves提出的一种直接搜索算法,其目的是通过比较目标函数在有限点集中的函数值来优化目标函数。更重要的是,它不仅不使用任何导数知识,而且不需要隐式地建立任何一种导数近似。

在这种直接搜索技术中,将模式移动和探索移动相结合,迭代地寻找最优解。该技术首先沿着每个轴进行探索性移动,以寻找新的基点和有利于函数值下降的方向。然后,为了加快在探索性移动中确定的方向上的搜索过程,采用模式移动。模式移动与探索移动交替进行,直到满足停止条件,如图1所示[2]。

图片

                        图模式搜索示意图

图片

图片

                      图二:模式搜索算法伪代码

2、自适应模式搜索

模式搜索方法原有的固定步长适用于单峰函数,但在处理复杂的多峰问题时,可能导致解陷入局部最优。因此,为了保持种群的多样性并充分利用搜索空间中每个解的知识,采用自适应步长。公式如下所示:

图片

3、仿真实验

以海洋捕食者算法(MPA)为基本算法。考察基于自适应模式搜索的改进海洋捕食者算法(命名为PMPA) vs. 海洋捕食者算法(MPA)

在Sphere函数上:

图片

  在Rosenbrock函数上:

图片

  在Penalized1函数上:

图片

  在CEC2017-1上:

图片

在CEC2017-3上:

图片

在CEC2017-4上:

图片

在CEC2017-12上:

图片

在CEC2017-24上:

图片

在CEC2017-28上:

图片

        基于自适应模式搜索法的改进海洋捕食者算法(PMPA)在23个标准测试函数及CEC2017测试集中的大部分函数上的性能优于原算法。在30维的Rosenbrock函数上精度达到1e-20,30维的Penalized1函数上的精度达到1e-30,在30维CEC2017测试集的单峰函数上能直接找到全局最优。

代码获取:

4、参考文献

[1] Hvattum L M, Glover F. Finding local optima of high-dimensional functions using direct search methods[J]. European Journal of Operational Research, 2009, 195(1): 31-45.

[2] Kang F, Li J, Li H. Artificial bee colony algorithm and pattern search hybridized for global optimization[J]. Applied Soft Computing, 2013, 13(4): 1781-1791.

[3] Torczon V. On the convergence of pattern search algorithms[J]. SIAM Journal on optimization, 1997, 7(1): 1-25.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/858132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据 复习】第3章 分布式文件系统HDFS(重中之重)

一、概念 1.分布式文件系统把文件分布存储到多个计算机节点上,通过网络实现、文件在多台主机上进行分布式存储的文件系统。(就是你的电脑存a,我的电脑存pple) 2.降低了硬件开销: 与之前使用多个处理器和专用高级硬件的并行化处理装…

YOLOv8中是如何实现类似将结构体作为函数参数传递

YOLOv8中是如何实现类似将结构体作为函数参数传递 flyfish 实现类似将结构体作为函数参数传递可以有多种方式 可以使用类(class)来定义一个类似结构体(struct)的数据结构,然后将其作为函数参数传递 class MyStruct…

CLIP-ReID代码解读七——model.py上

Bottleneck模块 首先定义了一个名为 Bottleneck 的 PyTorch 模块,它是 ResNet 架构中的一个瓶颈块(Bottleneck Block)。瓶颈块是 ResNet 中常用的一种层次结构,用于构建更深的网络。以下是对这段代码的详细注释: 类定…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-30`Kaggle`竞赛:图片分类

30Kaggle竞赛:图片分类 **比赛链接:**https://www.kaggle.com/c/classify-leaves 导入包 import torch import torchvision from torch.utils.data import Dataset, DataLoader from torchvision import transforms import numpy as np import pandas…

pytest测试框架flaky插件重试失败用例

Pytest提供了丰富的插件来扩展其功能,本章介绍下插件flaky ,用于在测试用例失败时自动重新运行这些测试用例。与前面文章介绍的插件pytest-rerunfailures功能有些类似,但是功能上不如pytest-rerunfailures插件丰富。 flaky官方并没有明确pyt…

【FFmpeg】AVCodecContext结构体

【FFmpeg】AVCodecContext结构体 1. AVCodecContext的定义1.1 struct AVCodecInternal *internal1.1.1 struct FramePool *pool 参考: FFMPEG结构体分析:AVCodecContext 示例工程: 【FFmpeg】调用ffmpeg库实现264软编 【FFmpeg】调用ffmpeg库…

SSM框架 --- SpringMVC --- exercise1

1.创建Maven项目 2.导入依赖&#xff08;导入SpringMvc与Servlet的坐标&#xff09;&#xff1a; <dependencies> <!--servlet依赖的坐标--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId&…

git stash Pop 后丢失,要如何找回?

文章目录 须知背景描述解决过程 须知 写在前面&#xff1a;我们都知道 stash list 中如果 pop 出来一条&#xff0c;那 list 里就会少一条&#xff0c;但其实使用 git stash pop 并没有真正地将该条 stash 删掉的&#xff0c;而是删除引用而已&#xff0c;因此当我们误 pop 时…

AI在软件开发中的应用

AI在软件开发中的应用可以帮助开发人员更高效地编写和测试代码&#xff0c;并提高软件的质量和性能。它能够帮助加快软件的部署和维护过程&#xff0c;提供更好的开发体验。 编码辅助 帮助开发人员更快地编写代码。例如&#xff0c;AI可以识别代码中的语法错误&#xff0c;并提…

WSL+Anconda(pytorch深度学习)环境配置

动机 最近在读point cloud相关论文&#xff0c;准备拉github上相应的code跑一下&#xff0c;但是之前没有深度学习的经验&#xff0c;在配置环境方面踩了超级多的坑&#xff0c;依次来记录一下。 一开始我直接将code拉到了windows本地来运行&#xff0c;遇到了数不清的问题&a…

LoRaWAN网关源代码分析(基础概念篇)

目录 一、简介 1、lora_gateway 2、packet_forwarder 二、目录结构 1、lora_gateway 2、packet_forwarder 一、简介 LoRaWAN网关的实现主要依赖两个源代码&#xff1a;lora_gateway和packet_forwarder。接下来&#xff0c;我们将从分析源代码入手&#xff0c;移植LoRaWAN源…

ThinkPHP:查询数据库数据之后,更改查询数据的字段名称

一、原始查询数据 含有字段item_no&#xff0c;lot_num&#xff0c;position $data[brushed] db::table(wip_station_transaction) ->where([wip_entity_name>$wip_entity_name,line_code>$line_code,]) ->field([item_no, lot_num, position]) ->select(); …

DAC测试实验——FPGA学习笔记7

一、DAC简介 DAC全称Digital to Analog Converter&#xff0c;即数模转换器。它用于将主控芯片产生的数字值(0和1)转换为模拟值(电压值)。 1、DAC参数指标 2、DAC类型 常用的DAC可大致分为权电阻网络DAC、T型电阻网络DAC、倒T型电阻网络DAC以及权电流型DAC。 3、AD9708/3PD9…

ChatGPT 简介

ChatGPT 是一种基于大型语言模型的对话系统&#xff0c;由 OpenAI 开发。它的核心是一个深度学习模型&#xff0c;使用了 GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构。以下是 ChatGPT 的原理和工作机制的详细介绍&#xff1a; ### GPT 架构 1. **Tr…

Linux - 记一次某Java程序启动报错(申请内存失败)

文章目录 问题可能原因分析可能原因分析尝试各种解决方案尝试解决过程 解决办法&#xff1a; 调整 overcommit_meory参数overcommit_memory详解什么是 overcommit_memory&#xff1f;overcommit_memory 的选项及其含义配置 overcommit_memory查看当前设置设置 overcommit_memor…

github-chinese,跟英文GitHub说拜拜

背景 对于我们程序员来说,Github是一个常逛的web网站,里面学习资源众多,不管是查问题还是查资料都离不开他。 但是Github作为一个国际化的网站,语言主要是英语,所以对于一些英语似懂非懂的同学来说还是有一些难处。 想过找一个国内中文的Github作为一个平替网站,但是资…

访问网站时IP被屏蔽是什么原因?

在互联网使用中&#xff0c;有时我们可能会遇到访问某个网站时IP地址被屏蔽的情况。IP地址被网站屏蔽是一个相对常见的现象&#xff0c;而导致这种情况的原因多种多样&#xff0c;包括恶意行为、违规访问等。本文将解释IP地址被网站屏蔽的常见原因&#xff0c;同时&#xff0c;…

【AI原理解析】— 小模型(总述)

目录 1. 线性模型 2. 决策树 3. 朴素贝叶斯 4. 小型神经网络 5. 多模态小模型&#xff08;特定类型的小型神经网络&#xff09; 1. 线性模型 原理&#xff1a; 线性模型是试图通过属性的线性组合来进行预测的函数。其表达式可以表示为 y w^T * x b&#xff0c;其中w和b…

Day 30:100346. 使二进制数组全部等于1的最小操作次数Ⅱ

Leetcode 100346. 使二进制数组全部等于1的最小操作次数Ⅱ 给你一个二进制数组 nums 。 你可以对数组执行以下操作 任意 次&#xff08;也可以 0 次&#xff09;&#xff1a; 选择数组中 任意 一个下标 i &#xff0c;并将从下标 i 开始一直到数组末尾 所有 元素 反转 。 反转 …

Kafka 集群元数据之Zookeeper存储介绍

Kafka 集群元数据之Zookeeper存储介绍? 在 Kafka 集群中,ZooKeeper 存储了大量的元数据,管理和协调 Kafka 的各个组件。以下是 ZooKeeper 中创建 的主要信息及其作用: 1. Broker 信息 路径: /brokers/ids/[broker_id]/brokers/topics/[topic_name]/brokers/seqid作用:…