智能优化算法应用:基于蜣螂优化算法的工程优化案例

news2024/11/27 9:41:02

智能优化算法应用:基于蜣螂算法的工程优化案例

文章目录

  • 智能优化算法应用:基于蜣螂算法的工程优化案例
    • 1.蜣螂算法
    • 2.压力容器设计问题
    • 3.三杆桁架设计问题
    • 4.拉压弹簧设计问题
    • 5.Matlab代码
    • 6.Python代码

摘要:本文介绍利用蜣螂搜索算法,对工程优化案例问题进行智能寻优。

1.蜣螂算法

蜣螂算法具体原理请参照:https://blog.csdn.net/u011835903/article/details/128280084

2.压力容器设计问题

图1.压力容器示意图

压力容器设计问题的目标是使压力容器制作(配对、成型和焊接)成本最小,压力容器的设计如图1所示,压力容器的两端都有盖子封顶,头部一端的封盖为半球状. L L L 是不考虑头部的圆柱体部分的截面长度, R R R是圆柱体部分的内壁直径, T s T_s Ts T h T_h Th分别表示圆柱体部分壁厚和头部的壁厚, L L L R R R T s T_s Ts T h T_h Th 即为压力容器设计问题的四个优化变量. 问题的目标函数和四个优化约束表示如下:
x = [ x 1 , x 2 , x 3 , x 4 ] = [ T s , T h , R , L ] x=[x_1,x_2,x_3,x_4]=[T_s,T_h,R,L] x=[x1,x2,x3,x4]=[Ts,Th,R,L]

M i n f ( x ) = 0.6224 x 1 x 3 x 4 + 1.7781 x 2 x 3 2 + 3.1661 x 1 2 x 4 + 19.84 x 1 2 x 3 Minf(x)=0.6224x_1x_3x_4+1.7781x_2x_3^2+3.1661x_1^2x_4+19.84x_1^2x_3 Minf(x)=0.6224x1x3x4+1.7781x2x32+3.1661x12x4+19.84x12x3

约束条件为:
g 1 ( x ) = − x 1 + 0.0193 x 3 ≤ 0 g_1(x)=-x_1+0.0193x_3\leq0 g1(x)=x1+0.0193x30

g 2 ( x ) = − x 2 + 0.00954 x 3 ≤ 0 g_2(x)=-x_2+0.00954x_3\leq0 g2(x)=x2+0.00954x30

g 3 ( x ) = − π x 3 2 − 4 π x 3 3 / 3 + 1296000 ≤ 0 g_3(x)=-\pi x_3^2-4\pi x_3^3/3+1296000 \leq0 g3(x)=πx324πx33/3+12960000

g 4 ( x ) = x 4 − 240 ≤ 0 g_4(x)=x_4-240\leq0 g4(x)=x42400

0 ≤ x 1 ≤ 100 , 0 ≤ x 2 ≤ 100 , 10 ≤ x 3 ≤ 100 , 10 ≤ x 4 ≤ 100 0\leq x_1\leq100,0\leq x_2\leq100,10\leq x_3\leq100,10\leq x_4\leq100 0x1100,0x2100,10x3100,10x4100

参数设定:

clear all 
clc
SearchAgents_no=100; %种群数量
Max_iteration=500; %设定最大迭代次数
dim = 4;%维度为4,即x1-x4
lb = [0,0,10,10];%参数下边界
ub =[100,100,200,200];%参数上边界
fobj = @(x) funP(x);

实验结果:
在这里插入图片描述

3.三杆桁架设计问题

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

图2

图2.三杆桁架设计问题示意图

m i n   f ( x ) = ( 2 2 x 1 + x 2 ) l min\,f(x)=(2\sqrt{2}x_1+x_2)l minf(x)=(22 x1+x2)l

约束条件为:
g 1 ( x ) = 2 x 1 + x 2 2 x 1 2 + 2 x 1 x 2 P − σ ≤ 0 g_1(x)=\frac{\sqrt{2}x_1+x_2}{\sqrt{2}x_1^2+2x_1x_2}P-\sigma\leq0 g1(x)=2 x12+2x1x22 x1+x2Pσ0

g 2 ( x ) = x 2 / ( 2 x 1 2 + 2 x 1 x 2 ) P − σ ≤ 0 g_2(x)=x_2/(\sqrt2x_1^2+2x_1x_2)P-\sigma\leq0 g2(x)=x2/(2 x12+2x1x2)Pσ0

g 3 ( x ) = 1 2 x 2 + x 1 P − σ ≤ 0 g_3(x)=\frac{1}{\sqrt2x_2+x_1}P-\sigma\leq0 g3(x)=2 x2+x11Pσ0

l = 100 c m , P = 2 k N / c m 2 , σ = 2 k N / c m 2 l=100cm,P=2kN/cm^2,\sigma=2kN/cm^2 l=100cm,P=2kN/cm2,σ=2kN/cm2

参数设定:

clear all 
clc
SearchAgents_no=100; %种群数量
Max_iteration=500; %设定最大迭代次数
dim = 2;%维度为2,即x1-x2
lb = [0,0];%参数下边界
ub =[1,1];%参数上边界
fobj = @(x) funS(x);

实验结果:

在这里插入图片描述

4.拉压弹簧设计问题

如图 3 所示,拉压弹簧设计问题的目的是在满足最小挠度、震动频率和剪应力的约束下,最小化拉压弹簧的重量。该问题由 3 个连续的决策变量组成,即弹簧线圈直径( d d d x 1 x_1 x1 )、弹簧簧圈直径( D D D x 2 x_2 x2)和绕线圈数( P P P x 3 x_3 x3​ )。数学模型表示公式如下:

图3

图3.拉压弹簧设计问题示意图

m i n   f ( x ) = ( x 3 + 2 ) x 2 x 1 2 min\,f(x)=(x_3+2)x_2x_1^2 minf(x)=(x3+2)x2x12

约束条件为:
g 1 ( x ) = 1 − x 2 3 x 3 71785 x 1 4 ≤ 0 g_1(x)=1-\frac{x_2^3x_3}{71785x_1^4}\leq0 g1(x)=171785x14x23x30

g 2 ( x ) = 4 x 2 2 − x 1 x 2 12566 ( x 2 x 1 3 − x 1 4 ) + 1 5108 x 1 2 − 1 ≤ 0 g_2(x)=\frac{4x_2^2-x_1x_2}{12566(x_2x_1^3-x_1^4)}+\frac{1}{5108x_1^2}-1\leq0 g2(x)=12566(x2x13x14)4x22x1x2+5108x12110

g 3 ( x ) = 1 − 140.45 x 1 x 2 2 x 3 ≤ 0 g_3(x)=1-\frac{140.45x_1}{x_2^2x_3}\leq0 g3(x)=1x22x3140.45x10

g 4 ( x ) = x 1 + x 2 1.5 − 1 ≤ 0 g_4(x)=\frac{x_1+x_2}{1.5}-1\leq0 g4(x)=1.5x1+x210

0.05 ≤ x 2 ≤ 2 , 0.25 ≤ x 2 ≤ 1.3 , 2 ≤ x 3 ≤ 15 0.05\leq x_2\leq2,0.25\leq x_2\leq1.3,2\leq x_3\leq15 0.05x22,0.25x21.3,2x315

参数设定:

clear all 
clc
SearchAgents_no=100; %种群数量
Max_iteration=500; %设定最大迭代次数
dim = 3;%维度为3,即x1-x3
lb = [0.05,0.25,2];%参数下边界
ub =[2,1.3,15];%参数上边界
fobj = @(x) funS(x);

实验结果:

在这里插入图片描述

5.Matlab代码

6.Python代码

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

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

相关文章

MyBatis框架知识点总结

一、引言1.1 什么是框架?框架:框架使用你的,而不是你在使用框架的。框架让我们提供什么信息,配置信息,数据库连接用户名密码等,你必须提供,还得按照框架要要求的方式提供,否则你就别…

《图机器学习》-Node Embeddings

Node Embeddings一、Graph Representation Learning二、Node Embeddings:Encoder and Decoder三、Random Walk Approaches for Node Embeddings一、Graph Representation Learning 在传统的图机器学习中,依赖于手工特征工程(即由特征工程师去设计节点、…

每日一题:Leetcode54. 螺旋矩阵

文章目录 系列:数组专练 语言:java & go 题目来源:Leetcode54. 螺旋矩阵 难度:中等 考点:边界问题处理 思路和参考答案文章目录题目描述思路java参考代码go参考代码:题目描述 给你一个 m 行 n 列的矩…

力扣sql基础篇(三)

力扣sql基础篇(三) 1 查询结果的质量和占比 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 把该列置为null的话,它就不会统计了 SELECT query_name,ROUND(sum(rating/position)/count(*),2) quality, ROUND(count(IF(rating<3,rating,null))/c…

【数据结构】—— Java实现双向链表

Java实现双向链表一、链表的概念及结构二、头指针与头结点的异同三、代码实现一、链表的概念及结构 我们在单链表中&#xff0c;有了next指针。这就使得我们查找下一个结点的时间复杂度为O(1)。可是我们要查找的是上一个结点的话&#xff0c;那最坏的时间复杂度就是O(n)了&…

用图记忆C语言中的运算符优先级

运算符优先级以及结合方向的统计表&#xff0c;网上到处可见。本文画了一张图&#xff0c;以便记忆&#xff01; 1. 总体来说优先级 初级运算 > 单目运算 > 双目运算 > 三目运算 > 赋值运算 > 逗号运算 2. 双目细分 算术运算 > 位移运算 > 关系运算 &g…

今年十八,基础过关

目录 前言 第一关&#xff1a;KEY在哪里 再加密一次你就得到key啦~ 猜猜这是经过了多少次加密&#xff1f; 据说MD5加密很安全&#xff0c;真的是么&#xff1f; 种族歧视 HAHA浏览器 key究竟在哪里呢&#xff1f; key又找不到了 冒充登陆用户​编辑 比较数字大小 就不让你…

Linux应用编程---14.UDP服务器、客户端编程

Linux应用编程—14.UDP服务器、客户端编程 ​ 之前有介绍过UDP是一种无连接、尽最大努力交付、面向报文的协议。应用层交给UDP多长的报文&#xff0c;UDP就照样发送。Linux下UDP属于数据报socket。数据报socket流程图如图1所示&#xff1a; 图1 数据报socket流程图 ​ 新引入的…

FourIE:一种最新联合事件抽取SOTA论文解读

Cross-Task Instance Representation Interactions and Label Dependencies for Joint Information Extraction with Graph Convolutional Networks 论文&#xff1a;Cross-Task Instance Representation Interactions and Label Dependencies for Joint Information Extractio…

Vue2的前端路由(vue-router)

一、路由 路由 (英文&#xff1a;router)就是页面地址与组件之间的对应关系 二、路由方式 服务器端路由、前端路由 三、前端路由 前端路由&#xff1a;地址和组件之间的对应关系&#xff0c;即由前端来维护一组路由规则&#xff08;地址和组件之间的对应关系&#xff09;&…

xlsx.utils.sheet_to_json的{ header: 1 }起的作用,header属性的研究

XLSX.utils.sheet_to_json 是为了把excel里面的数据解析出来&#xff0c;这是它的定义&#xff1a; 其中&#xff0c;worksheet表示特定表名的工作表&#xff0c;opts属于可要可不要的参数。 opts也有几种类型&#xff1a; export interface Sheet2JSONOpts extends DateNFOp…

selinux 控制

在某些Linux发行版上&#xff0c;默认情况下启用SELinux&#xff0c;如果不了解SELinux的工作原理以及如何配置它的基本详细信息&#xff0c;则可能会导致一些不必要的问题。一般强烈建议了解了SELinux 之后再去实现它。但是&#xff0c;在了解 SELinux 的实现细节之前&#xf…

由浅入深,详解ViewModel的那些事

Hi&#xff0c;你好 &#x1f603; 引言 关于 ViewModel &#xff0c;Android 开发的小伙伴应该都非常熟悉&#xff0c;无论是新项目还是老项目&#xff0c;基本都会使用到。而 ViewModel 作为 JetPack 核心组件&#xff0c;其本身也更是承担着不可或缺的作用。 因此&#x…

STL list 模拟实现

list 概述 相比于 vector 的连续线性空间&#xff0c;list 采用的是零散的空间&#xff0c;它的好处是每次插入或删除一个元素&#xff0c;就配置或释放一个元素空间。 list 是支持常数时间从容器任何位置插入和移除元素容器&#xff0c;但不支持快速随机访问。list 通常实现…

Linux操作系统之进程间通讯—共享内存与消息队列

文章目录一、共享内存1、共享内存的原理2、共享内存的实现三、消息队列1、消息队列原理2、消息队列实现一、共享内存 1、共享内存的原理 共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物理内存上申请一块空间&#xff0c;多个进程可以将其映射到…

dp (四) 打家劫舍

打家劫舍(一)_牛客题霸_牛客网 描述 你是一个经验丰富的小偷&#xff0c;准备偷沿街的一排房间&#xff0c;每个房间都存有一定的现金&#xff0c;为了防止被发现&#xff0c;你不能偷相邻的两家&#xff0c;即&#xff0c;如果偷了第一家&#xff0c;就不能再偷第二家&#…

离线和实时

离线和实时 一、数仓基本概念 1. 数据仓库架构 我们在谈数仓之前&#xff0c;为了让大家有直观的认识&#xff0c;先来谈数仓架构&#xff0c;“架构”是什么&#xff1f;这个问题从来就没有一个准确的答案。这里我们引用一段话&#xff1a;在软件行业&#xff0c;一种被普遍…

8种将pdf转化成excel的方法,亲测实用又有效!

PDF 到 Excel 的在线或离线转换工具可帮助您将原始或扫描的 PDF 文件转换为 Excel 格式。将 PDF 转换为 Excel 主要是为了获得可编辑的 Excel 文件或满足其他目标&#xff1b; 通过消除容易出错的手动复制粘贴来保持数据准确性。在需要使用 Excel 格式的大量 PDF 数据时节省时…

药物临床试验数据分析(靶点|适应症|企业|登记信息)

临床试验相关工作者在对药物进行系统性研究时都需要对药物做临床试验&#xff0c;且在对药物进行临床试验前和临床试验期间都需要对相关药物临床试验数据信息进行全面的分析及了解&#xff0c;有助于目标药物临床试验的顺利开展。药物临床试验数据覆盖非常宽泛&#xff0c;包含…

【进阶C语言】自定义类型——结构体+枚举+联合体

文章目录一.结构体1.内存对齐存在的原因规则举例2.位段二.枚举定义枚举的优点三.联合体定义特点内存计算一.结构体 1.内存对齐 存在的原因 平台原因(移植原因)&#xff1a; 不是所有的硬件平台都能访问任意地址上的任意数据的&#xff1b;某些硬件平台只能在某些地址处取某些…