算法应用:基于蜣螂优化(DBO)算法的工程优化设计(含MATLAB代码)

article/2025/9/28 0:11:45

 先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。 

这一期是利用蜣螂优化(DBO)算法去求解工程领域中的实际问题。文献[1]设计的DBO算法是2022年11月27日提出的,到现在才一个多月时间。这里先放一个DBO算法的链接,不清楚DBO算法的,可以先看我往期的推送,了解它的算法原理和计算流程。

01
优化问题模型

工程领域有许多优化设计问题,今天先介绍6种:压力容器设计、滚动轴承设计、拉伸/压缩弹簧设计、悬臂梁设计、轮系设计、三杆桁架设计。这些优化设计都是在满足各种约束条件下,使得材料花销最少、或质量最小、或体积最小等。因此,它们的数学模型都是单目标或多目标的约束优化模型。今天介绍的6个问题都属于单目标约束优化。

1.1 压力容器设计

在该设计问题中,目标函数为压力容器的总成本,包括材料、成形和焊接成本。如图1所示,压力容器的两端都有盖子封顶,头部一端的封盖为半球状。该优化问题包括4个决策变量:容器壁的厚度(Ts)、半球头部的厚度(Th)、内半径(R)、和圆柱截面的长度(L)。

图1 压力容器设计

其数学模型如下:


1.2 滚动轴承设计

滚动轴承优化设计的目标是使得滚动轴承的动态承载能力最大,有10个决策变量和10个约束条件。如图2所示,10个决策变量包括五个设计变量和五个设计参数来优化滚动轴承的承载能力。这些设计变量分别是节径Dm、球径Db、滚道内外曲率系数(fofi)以及球的总数Z,设计参数分别是e、ε、ζ、KDmax和KDmin,仅在约束条件上出现。10个约束条件都是基于制造和运动学因素的非线性约束。注意,这是一个最大化问题,算法求解时,将其处理成最小化问题。

图2 滚动轴承设计

其数学模型如下:

1.3 拉伸/压缩弹簧设计

拉伸/压缩弹簧设计问题的目的是在满足最小挠度、震动频率和剪应力的约束下,最小化拉压弹簧的重量。如图3所示,该问题由3个连续的决策变量组成,即弹簧线圈直径(d)、弹簧簧圈直径(D)和绕线圈数(P)。

图3 拉伸/压缩弹簧设计

其数学模型如下:

1.4 悬臂梁设计

悬臂梁包括5个截面为方形的空心单元。从图4中可以看出,每个单元由一个变量定义,而厚度是恒定的,因此共有5个结构参数,即5个决策变量。悬臂梁优化设计的目标是将横梁的重量减到最小,约束条件是满足一个垂直位移约束。

图4 悬臂梁设计

其数学模型如下:

1.5 轮系设计

轮系设计问题旨在使图5所示的轮系的传动比成本最小化。这个问题有四个整数决策变量,其中𝑇𝑎、𝑇𝑏、𝑇𝑑、𝑇𝑓分别代表四个不同齿轮的齿数。

图5 轮系设计

其数学模型如下:

1.6 三杆桁架设计

三杆桁架设计问题的目的是通过调整横截面积(x1和x2)来最小化三杆桁架的体积。该三杆式桁架在每个桁架构件上受到应力(σ)约束,如图6所示。该优化问题具有一个非线性适宜度函数、3个非线性不等式约束和两个连续决策变量。

图6 三杆桁架设计

其数学模型如下:

02
约束条件处理

DBO算法本身是针对无约束优化问题提出的。因此,将DBO算法用于求解约束优化问题时,需要对约束条件进行处理。根据进化计算中约束处理方法的研究进展,约束处理方法主要分为3类:罚函数方法、可行规则方法和多目标方法。

因原理简单和易于实现,罚函数方法是目前应用广泛的约束处理方法之一。罚函数方法是在目标函数中加入一个惩罚函数将约束问题转换成一个无约束问题,该方法的难点在于罚函数的选择。常用的罚函数方法主要有3种:死罚函数方法、静态罚函数方法和自适应罚函数方法。

可行规则方法建立在可行解要优于不可行解的偏好基础上,3条比较规则为:可行解要优于不可行解;当两个都是可行解时,选择目标函数值小的解;当两个都是不可行解时,选择违反约束小的解。

近年来,多目标概念已经越来越多地用于进化计算中的约束处理问题,其思想是将约束转换成一个或多个目标。根据处理约束的不同原则,有两类多目标方法:一类是有两个目标的,如源目标函数和所有约束违反程函数;另一类是将每个约束看成一个目标。因此,对于有m个约束的约束问题来说,总共有m+1个目标函数。

惩罚函数是最流行的约束处理方法,因为它简单且易于实现。为了简单起见,这里使用文献[2]中的惩罚方法来处理这些工程优化设计问题的约束条件,这是一种常见的罚函数:

G𝑖(𝒙)是不等式约束,H𝑗(𝒙)是等式约束,𝑝是不等式约束的数量,𝑞是等式约束的数量,𝑎𝑖和𝑏𝑗是正的常数,𝜂和𝜆等于1或2。对于这种惩罚方法,当候选解违反任何约束时,目标函数值都会增加,将种群从不可行解推入可行域内。

这里是采用了文献[2]中一个比较经典的罚函数方法,旨在做简单的演示。实际上,大家也可以改用其他的罚函数方法,例如文献[3]中提出的Oracle罚函数方法,或者使用其他的约束处理技术。此外,利用智能优化算法求解约束优化问题时,除了算法上的改进外,也可以在约束条件的处理技术上做创新。比如文献[4]在文献[3]的基础上提出了一种改进的Oracle罚函数方法,并嵌入到差分进化(DE)算法中。文献[5]在算法和约束处理上都做了改进。

03
实验结果

将约束处理后的数学模型,利用DBO算法进行求解。为了对比性能,这里随便选了近期推送的两种算法来进行对比。这里将DBO算法的求解效果与哈里斯鹰优化(HHO)算法和白鲸优化(BWO)算法进行对比。不了解HHO算法或者BWO算法的朋友可以翻看往期推送。

由于DBO算法的种群规模只能是30的倍数,为了保证实验的科学性,三种算法的种群规模均为30,最大迭代次数为1000。取10次运行中最优的一次结果及其对应的决策变量值进行展示。对比结果如表1~表6所示,其中,最优结果用粗体表示;收敛曲线如图7~图12所示。这里就不再进一步做分析和讨论了。

表1 DBO、HHO和BWO在压力容器设计问题上的最优结果对比
算法TsThRL最优值
DBO0.79847790.39468841.37191185.85245920.96187173
HHO0.84107990.407297942.69365169.3986084.66482009
BWO0.8877040.42701644.27818179.40467017.42355547
表2 DBO、HHO和BWO在滚动轴承设计问题上的最优结果对比
算法DmDbZfifo
DBO125.719121.42559110.5150.5150005
HHO126.618720.04402110.5150.5862558
BWO125.977320.20524110.51546840.541816
KDminKDmaxεeζ最优值
0.4422510.62392870.30.062458710.710656985549.23863792
0.42028820.62008770.32675170.063550810.663395275976.24424012
0.4376480.66341330.30734890.034835460.6531876142.46689560

(这里需要注意的是,滚动轴承设计是最大化问题,在算法求解时将其处理成了最小化问题。因此最优值要取一个负号才是实际问题的最优结果,包括收敛曲线的绘制也要取反。)

表3 DBO、HHO和BWO在拉伸/压缩弹簧设计问题上的最优结果对比
算法dDP最优值
DBO0.05058050.330629130.01268813
HHO0.0545730.4301580.01281078
BWO0.05210580.364712110.01287256

表4 DBO、HHO和BWO在悬臂梁设计问题上的最优结果对比
算法x1x2x3x4x5最优值
DBO6.01915.30994.49113.50582.14791.33996061
HHO5.9715.21634.58463.48762.22661.34073305
BWO5.38645.06014.77834.97332.25151.40086059
表5 DBO、HHO和BWO在轮系设计问题上的最优结果对比
算法TaTbTdTf最优值
DBO431916492.7009E-12
HHO491619432.7009E-12
BWO341320532.3078E-11
表6 DBO、HHO和BWO在三杆桁架设计问题上的最优结果对比
算法x1x2最优值
DBO0.788770.40798263.89585015
HHO0.792940.39633263.90899011
BWO0.792860.3981264.06448937

图7 DBO、HHO和BWO在压力容器设计问题上的收敛曲线

图8 DBO、HHO和BWO在滚动轴承设计问题上的收敛曲线

图9 DBO、HHO和BWO在拉伸/压缩弹簧设计问题上的收敛曲线

图10 DBO、HHO和BWO在悬臂梁设计问题上的收敛曲线

图11 DBO、HHO和BWO在轮系设计问题上的收敛曲线

图12 DBO、HHO和BWO在三杆桁架设计问题上的收敛曲线
 

04
MATLAB代码

MATLAB代码请关注GZH:启发式算法讨论。其中,main.m是主函数,直接运行即可;DBO.m是算法的代码;Problem_range.m是6个工程优化设计问题的基本性质,规定了问题的维度、各决策变量的取值范围;Problem_models.m是6个工程优化设计问题的数学模型,即目标函数、约束条件,以及使用罚函数处理的过程;Bound_limit.m是边界约束处理,保证解的决策变量不超出取值范围。

其他:

哈里斯鹰优化(HHO)算法在工程优化设计中的应用

白鲸优化(BWO)算法在工程优化设计中的应用

蛇优化(SO)算法在工程优化设计中的应用

金豺优化(GJO)算法在工程优化设计中的应用

05
参考文献

[1] Xue J, Shen B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization[J]. The Journal of Supercomputing, 2022: 1-32.

[2] Coello C A C. Theoretical and numerical constraint-handling techniques used with evolutionary algorithms: a survey of the state of the art[J]. Computer methods in applied mechanics and engineering, 2002, 191(11-12): 1245-1287.

[3] Dong, M., Wang, N., Cheng, X., & Jiang, C.: Composite differential evolution with modified oracle penalty method for constrained optimization problems. Mathematical problems in engineering, 2014, 1-15 (2014).

[4] 汪逸晖, 高亮. 乌鸦搜索算法的改进及其在工程约束优化问题中的应用[J]. 计算机集成制造系统, 2021, 27(07): 1871-1883.


http://chatgpt.dhexx.cn/article/OiqlIu1T.shtml

相关文章

智能优化算法(源码)—蜣螂优化算法(Dung beetle optimizer,DBO)

获取更多资讯,赶快关注上面的公众号吧! 文章目录 启发数学模型滚球跳舞繁殖觅食偷窃伪代码 2022年11月27日,东华大学沈波教授团队,继麻雀搜索算法之后,又提出了一种全新的群体智能优化算法——蜣螂优化(Du…

ODB简介

官方参考文档 本文档内容是自己学习的一个记录,内容来自官方文档 https://www.oschina.net/p/odb-orm?hmsraladdin1e1 https://www.codesynthesis.com/products/odb/doc/manual.xhtml#1 ODB是什么? ODB可以直接把C的类对象映像成关系型数据库对象。 …

数据库(DB)

数据库系统概述 数据库:是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库的基本特征:  数据按一定的数据模型组织、描述和储存  可为各种用户共享、冗余度较小、易扩展  数据独立性较高 数据库管理系统(DBMS&#xff…

SQL server 中的dbo、guest

最近新项目中接触SQL sever 数据库,可视化连接的过程中发现在数据库下存在两个特殊的类似数据库的层级 dbo、guest 查了一下资料这两者的具体含义: dbo database owner 数据库的创建者,创建该对象的用户 DBO是每个数据库的默认用户,具有所有…

SQLServer 对象创建注意事项之dbo

最近,一客户遇到一个奇怪的问题,sqlserver数据库,使用备份恢复到目标机器。之后,在目标服务器创建了测试函数对象,但是执行查询的时候却提示对象不存在,再次尝试重新创建该函数及其依赖的对象时能正常执行。…

单目标优化:蜣螂优化算法(Dung beetle optimizer,DBO)

蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。 一、蜣螂优化算法 1.1蜣螂滚球 (1)当蜣螂前行无障碍时…

蜣螂优化(DBO)算法(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…

智能优化算法 — 蜣螂优化算法(Dung beetle optimizer,DBO)

引言 小时候,蜣螂还是比较多见的,还顽皮地将粪球给它弄走,或者给它来点障碍。现在放牛的几乎看不到了,蜣螂没东西可推了,也慢慢从我们的视线中消失了。 DBO介绍 2022年11月27日,东华大学沈波教授团队&…

什么是 HTTP?

什么是 HTTP? 超文本传输协议 (HTTP) 是万维网的基础,用于通过超文本链接加载网页。HTTP 是应用程序层协议,旨在在联网设备之间传输信息,并在网络协议栈的其他层之上运行。HTTP 上的典型流涉及客户端计算机向服务器发出请求&…

什么是HTTP? HTTP和HTTPS的区别?

目录 1、什么是HTTP? 2、HTTP的特点 ① 支持客户/服务器模式 ② 简单快速 ③ 灵活 ④ 无连接 ⑤ 无状态 3、HTTPS 4、HTTP和HTTPS的区别 ① 安全性不同 ② 默认端口不同 ③ 响应速度和资源消耗不同 ④ 网站申请流程不同 ⑤ 对搜索排名的提升不同 1、什么是H…

什么是HTTPS,与HTTP的区别?

1. 什么是HTTPS HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer),基于安全套接字协议 SSL,是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。 HTTP2.0和H…

什么是 HTTP? HTTP 和 HTTPS 的区别?

简版 http 是无状态的超文本传输协议,连接简单,信息是明文传输,端口为 80。 https 协议是由 httpss 协议构建的可进行加密传输、身份认证的具有安全性网络协议,端口是 443。 优缺点: https 有加密认证相对于 http 安全一些 htt…

什么是https(详细),http和https

文章目录 1:什么是https2:使用http协议的问题2.1:http是明文传输。2.2:http不会验证对方身份。2.3:http无法验证报文的完整性。 3:密钥的问题4:SSL 四次握手4.1:第一次握手4.2&#…

[HTTP] HTTP是什么

HTTP是什么 HTTP是什么 HTTP全称为HyperText Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的一种网络协议。 HTTP协议是在Web上进行数据交换的基础,是一种“客户端–服务器端”协议。也就是说,请求通常是由像浏览器这样…

HTTP 请求是什么?

文章目录 HTTP请求一,请求行二,请求头三,空行四,请求体五,HTTP请求示例 HTTP请求 请求是由客户端向服务器发送的,一般可以分为请求行、请求头、空行和请求体四个部分,如下图所示: …

HTTP 与 HTTPS 的理解

区别:HTTP 是明文传输的,容易泄漏信息,所以大多数应用都会升级为 HTTPS HTTP 底层是用 TCP 传输的,HTTPS 就是在 TCP 和 HTTP 之间加了一层加密和认证的协议,这一层叫做 SSL/TLS。 为什么叫这个名字呢? 因…

什么是HTTP协议、与HTTPS的区别?

一.HTTP协议的定义: http(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定。也就是说,http协议规定了超文本传输所要遵守的规则。…

HTTP和HTTPS

1. 前言 近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTT…

HTTP到底是什么?

HTTP简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,基于 TCP/IP 通信协议来传递数据。 HTTP原理…

HTTP是什么

HTTP是什么 ​ HTTP全称为Hyper Text Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的一种网络协议。 ​ HTTP协议是在Web上进行数据交换的基础,是一种“客户端–服务器端”协议。也就是说,请求通常是由像浏览…