智能优化算法应用:基于蚁狮优化算法的工程优化案例-附代码

news2024/11/17 0:06:05

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

文章目录

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

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

1.蚁狮算法

蚁狮算法具体原理请参照:https://blog.csdn.net/u011835903/article/details/107726004

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);

实验结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gnsg3CBb-1678000398989)(D:\Self\Intelligent algorithm Application\工程案例\基于蚁狮优化算法的工程优化案例\结果1.png)]

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);

实验结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MgO8n8Db-1678000398990)(D:\Self\Intelligent algorithm Application\工程案例\基于蚁狮优化算法的工程优化案例\结果2.png)]

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/390753.html

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

相关文章

191、【动态规划】AcWing —— 900. 整数划分:完全背包解法+加减1解法(C++版本)

题目描述 参考文章:900. 整数划分 解题思路 因为本题中规定了数字从大到小,其实也就是不论是1 2 1 4,还是2 1 1 4,都会被看作是2 1 1 4这一种情况,因此本题是在遍历中不考虑结果顺序。 背包问题中只需考虑…

AcWing:并查集

并查集理论基础并查集的作用是什么:将两个集合合并。询问两个元素是否在一个集合当中。如果不使用并查集,要完成上述两个操作,我们需要:创建一个数组来表示某个元素在某个集合之中,如belong[x] a,即x元素在…

0201基础-组件-React

1 组件和模块 1.1 模块 对外提供特定功能的js程序,一般就是一个js文件 为什么拆分模块呢?随着业务逻辑增加,代码越来越多,越来越复杂。作用:复用js,简化js,提高js运行效率 1.2 模块化 当应用…

用gdb.attach()在gdb下断点但没停下的情况及解决办法

在python中,如果导入了pwntools,就可以使用里面的gdb.attach(io)的命令来下断点。 但是这一次鼠鼠遇到了一个情况就是下了断点,但是仍然无法在断点处开始运行,奇奇怪怪。 这是我的攻击脚本 我们运行一下。 可以看到其实已经运行起…

计算机网络模型、协议

ARP(IP->MAC)RARP(MAC->IP)TFTPHTTPDHCPNATARP(IP->MAC) 主机建立自己的ARP缓冲区存ARP列表 广播ARP请求,单播ARP响应 RARP(MAC->IP) 用于无盘工作站&am…

Java分布式全局ID(一)

随着互联网的不断发展,互联网企业的业务在飞速变化,推动着系统架构也在不断地发生变化。 如今微服务技术越来越成熟,很多企业都采用微服务架构来支撑内部及对外的业务,尤其是在高 并发大流量的电商业务场景下,微服务…

[1.#]第一章 计算机系统概述——知识回顾

第一章 计算机系统概述 知识回顾 (对于考研408而言) 这个章节主要以选择题形式考察。 总的来说,这个章节考察的深度、难度不会太大。另外,这个章节的分值占比是比较低的。 不过,对第一章的学习,有助于我们…

使用 Sublime Text 4 优雅地写C++

使用 Sublime Text 4 优雅地写C 进入sublime官网下载sublime的安装包(当然也可以在官网下载页面下载portable版本,不过建议下载默认的setup版本) 双击安装包: 应该一会就下载完成了。 此时可以在应用列表看到sublime:…

谈谈 爬虫遇到的 Access denied Error code 1020

这几天在练习爬虫的时候,遇到一个问题, 通过 python 代码从站点中拿到了目标图片的 url , 但是,在持久化到本地时,出现了错误,所有保存下来的图片都报错:文件损坏, 而且,…

【博学谷学习记录】超强总结,用心分享|狂野大数据课程【DataFrame的相关API】的总结分析

操作dataFrame一般有二种操作的方式, 一种为SQL方式, 另一种为DSL方式 SQL方式: 通过编写SQL语句完成统计分析操作DSL方式: 领域特定语言 指的通过DF的特有API完成计算操作(通过代码形式)从使用角度来说: SQL可能更加的方便一些, 当适应了DSL写法后, 你会发现DSL要比SQL更加…

LeetCode:最长回文子串(动态规划)

一、题目 https://leetcode.cn/problems/longest-palindromic-substring/description/ 二、 算法思想 使用动态规划思想解决,如果一个子串是回文的,并且它的左右两边各加上一个字符后仍然是回文的,那么这个子串加上这两个字符后也一定是回文…

浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用

前言浅谈 OSITCP三次握手数据传输四次挥手Socket 服务端/客户端通信测试服务端代码客户端代码tcpdump 命令监控命令总结FAQ怎么确认数据包的大小?TCP 拥塞如何避免?如何理解 TCP keep-alive 原理?总结前言 在网络知识体系,TCP 这块的三次握…

【计算机组成原理】指令系统

目录 指令格式 按指令数目分类: 零地址指令 一地址指令 二地址指令 三地址指令 四地址指令 按指令长度分类: 指令字长 机器字长 存储字长 按操作码的长度分类 定长操作码 可变长操作码 定长指令字结构可变长操作码------>拓展操作码指令…

女子举重问题

一、问题的描述 问题及要求 1、搜集各个级别世界女子举重比赛的实际数据。分别建立女子举重比赛总成绩的线性模型、幂函数模型、幂函数改进模型,并最终建立总冠军评选模型。 应用以上模型对最近举行的一届奥运会女子举重比赛总成绩进行排名,并对模型及…

Java分布式事务(二)

文章目录🔥分布式事务处理_认识本地事务🔥关系型数据库事务基础_并发事务带来的问题🔥关系型数据库事务基础_MySQL事务隔离级别🔥MySQL事务隔离级别_模拟异常发生之脏读🔥MySQL事务隔离级别_模拟异常发生之不可重复读&…

信息安全与数学基础-笔记-②同余

知识目录同余完全剩余系剩余类完全剩余系❀简化剩余系❀欧拉函数逆元!欧拉定理 !同余 a,b 两个数字,都模m,当两个数字模m后余的数一样即为同余。 例子: a bq r (mod m),这里的a 和 r 就是同余 &#xff…

如何使用Unity3d实现多人对战联机游戏

所需资源 课程来源(请支持正版课程) 安装Unity Hub 安装Visual Studio 角色模型 环境准备 ①Unity设置 不设置的话编写有些代码没有自动补全 点开 Preferences 选择 visual studio ②角色导入 点击 windows—>Package Manager 左上角 My Ass…

数据结构与算法(七):排序算法

排序算法是《数据结构与算法》中最基本的算法之一,排序算法可以分为内部和外部排序。 内部排序:数据记录在内存中进行排序。 外部排序:因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常…

xgboost:分割Sparsity-aware Split Finding

Sparsity-aware Split Finding1 在许多现实问题中,输入xxx是稀疏的是很常见的。造成稀疏性的可能原因有很多: 1)数据中存在缺失值; 2)统计中频繁出现零项; 3)特征工程的处理结果,如独热编码。 重要的是使算法意识到数据中的稀…

RocketMQ5.1.0单机安装与启动

RocketMQ单机安装与启动系统要求下载地址安装步骤RocketMq启动NameServer查看是否启动成功启动BrokerProxy查看是否启动成功修改tool.sh测试消息产生消息的消费关闭服务器系统要求 下载地址 官网下载地址 二进制包是已经编译完成后可以直接运行的,源码包是需要编译…