智能优化算法应用:基于麻雀搜索算法的工程优化案例

2024-06-18 07:33

本文主要是介绍智能优化算法应用:基于麻雀搜索算法的工程优化案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智能优化算法应用:基于麻雀搜索算法的工程优化案例

文章目录

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

摘要:本文介绍利用麻雀搜索算法,对压力容器设计问题进行智能寻优。

1.麻雀搜索算法

麻雀搜索算法具体原理请参照:https://blog.csdn.net/u011835903/article/details/108830958

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

实验结果:

在这里插入图片描述

最终获得的最优Ts Th R L参数分别为:: 1.30353 0.646514 67.386 33.4108

3.三杆桁架设计问题

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

请添加图片描述

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

实验结果:

请添加图片描述

麻雀算法获得的适应度值为 : 263.9015
获得的最优参数x1,x2分别为:: 0.78707 0.41285

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.拉压弹簧设计问题示意图

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

实验结果:
请添加图片描述

麻雀算法获得的适应度值为 : 263.8977
获得的最优参数x1,x2,x3分别为:: 0.7882 0.40961 2

4.Matlab代码

这篇关于智能优化算法应用:基于麻雀搜索算法的工程优化案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071666

相关文章

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字