临时抱佛脚

B

  • 动态优化 > 模糊综合评价。博弈论。多目标优化
  • 优化和评价( TOPSIS/熵权 )综合在一起(?)

1 评价类

评价或选择一个可能更好或更优的政策或方案,要先找到指标,再量化指标,再综合考虑所有指标
Pasted image 20250123160226.png
Pasted image 20250123160323.png
Pasted image 20250123183558.png

层次分析法
  • 一致性检验 ()
  • 求权重
    • 算术平均法
    • 几何平均法
    • 特征值法
熵权法
  • 正向矩阵标准化
  • 计算概率矩阵P
  • 计算熵权
主成分分析

目的:减少特征(降维)
Pasted image 20250116194220.png
Pasted image 20250116194232.png
Pasted image 20250116194243.png
8) 解释主成分

TOPSIS法
  • 原始矩阵正向化(所有指标转化为极大型指标)
  • 正向矩阵标准化(消除不同指标量纲的影响)
  • 用层次分析法(较主观)/熵权法(较客观)给指标加上权重
  • 计算得分并归一化
模糊综合评价

把数据(如成本、可采矿量等)通过隶属函数转化成评分

  • 单层次
    • 求隶属函数
    • 求隶属度,获得单因素评判矩阵
    • 求权重 (专家法、层次分析法、熵权法等)
    • 综合评价
  • 多层次
    • 把前一级的 当成下一级的
灰色关联分析
  • 数据正向化
  • 正向化后预处理(除以均值)
  • 构造母序列(没有母序列时可以
  • 计算关联系数
  • 计算关联度
  • 计算指标权重
  • 计算得分并归一化

2 预测类

  • 根据已知预测未知
    Pasted image 20250123160454.png
    Pasted image 20250123160626.png
    Pasted image 20250123183827.png

回归分析预测模型

一元线性回归分析
  • 使用 regress 函数
    Pasted image 20250118131901.png

  • b
    Pasted image 20250118132307.png

  • bint
    Pasted image 20250118132345.png

  • r & rint
    Pasted image 20250118132422.png

  • stats
    Pasted image 20250118132450.png
    Pasted image 20250118132538.png
    Pasted image 20250118132826.png

多元线性回归分析
  1. 多元线性回归模型的参数估计
    Pasted image 20250118135703.png
  2. 多元线性回归模型和回归系数的检验
    Pasted image 20250118135802.png
  3. 多元线性回归模型的预测
    Pasted image 20250118135822.png
普通方法 matlab

调用 regress 函数
Pasted image 20250118140155.png

逐步回归 matlab
  • 先逐步回归判断哪个变量影响更大,删掉影响小的变量
  • 对影响大的变量进行线性回归
    Pasted image 20250118142137.png
非线性回归分析
1 配曲线求解

Pasted image 20250118145008.png
Pasted image 20250118145017.png
Pasted image 20250118145028.png

常见的6类曲线
Pasted image 20250118145054.png
Pasted image 20250118145332.png
Pasted image 20250118145344.png
Pasted image 20250118145352.png
Pasted image 20250118145404.png
Pasted image 20250118145416.png

2 多项式回归

Pasted image 20250118145824.png

一元多项式回归
Pasted image 20250118145902.png

Pasted image 20250118150450.png
Pasted image 20250118150501.png

多元二项式回归

Pasted image 20250118151047.png

Pasted image 20250118151554.png
Pasted image 20250118151629.png
Pasted image 20250118151648.png

3 一般求解

Pasted image 20250118151913.png

Pasted image 20250118152355.png
Pasted image 20250118152410.png

灰色预测 GM(1, 1)

  • 灰色预测适用于什么情况?
    • 数据是以年份度量的非负数据(如果是月份或者季度数据一般要用时间序列模型),比如定时求量的题目,即已知一些年份数据,预测下一年的数据,常见有GDP、人口数量、耕地面积、粮食产量等;或者定量求时,已知一些年份数据和某灾变的阈值,预测下次灾变时间。
    • 数据能经过准指数规律的检验(除了前两期外,后面至少90%的期数的光滑比要低于0.5)。
    • 数据的期数较短且和其他数据之间的关联性不强(小于等于10,也不能太短了,比如只有3期数据),要是数据期数较长,一般用传统的时间序列模型比较合适。
    • 应该是时期时间序列而不是时点时间序列

Pasted image 20250118153959.png

模型求解前,判断能否使用灰色预测模型

Pasted image 20250118155111.png

模型求解

Pasted image 20250118155423.png
Pasted image 20250118155437.png
Pasted image 20250118155500.png
Pasted image 20250118155511.png
Pasted image 20250118155540.png

模型评价

Pasted image 20250118155311.png

时间序列模型 ( ARIMA )

时间序列根据时间和数值性质的不同,可以分为时期时间序列和时点时间序列

  • 时期序列中,数值要素反映现象在一定时期内发展的结果
  • 时点序列中,数值要素反映现象在一定时点上的瞬间水平
  • 时期序列可加,时点序列不可加
模型介绍

Pasted image 20250118193428.png

自回归模型 ( AR(p) )

Pasted image 20250118193439.png

移动平均模型 ( MA(q) )

Pasted image 20250118193506.png

自回归移动平均模型 ( ARMA(p, q) )

Pasted image 20250118193750.png

差分自回归移动平均模型 ( ARIMA(p, d, q) )

Pasted image 20250118193836.png

建模步骤

Pasted image 20250118194352.png

1 实现/检验 平稳性

Pasted image 20250118194755.png

检验平稳性:

  • 图检验法
    • 时间序列趋势图
    • 自相关函数图
  • ADF 检验

不平稳怎么变平稳:

  • 差分法(一般 1-2 次就够)
自相关系数 (ACF) 和偏自相关系数 (PACF)
  • 自相关系数
    Pasted image 20250118195253.png
  • 偏自相关系数:剔除中间 k-1 个随机变量的干扰,只考虑 的影响
    Pasted image 20250118195304.png
ADF检验

Pasted image 20250118200327.png

2 确定 p, q, d
  • d:差分次数(一般为0, 1, 2)
法1:ACF/PACF 截尾/拖尾判断

Pasted image 20250118201636.png
Pasted image 20250118201651.png
Pasted image 20250118201707.png

法2:AIC BIC准则(更客观)

Pasted image 20250118202350.png

3 模型检验

Pasted image 20250118202901.png

4 模型预测

3 优化类

找最大/最小/极值
Pasted image 20250116210940.png
Pasted image 20250123161023.png
Pasted image 20250123161216.png
Pasted image 20250123183839.png

1 线性规划法

  • 目标函数和约束条件都是决策变量的线性函数,即不存在 , , , ,

  • 线性规划模型:在一组线性约束条件下,求线性目标函数的最大值或最小值

  • 多目标规划:把其中一个目标转化为约束条件进行求解

建模步骤

Pasted image 20250116211647.png

线性规划的表现形式

Pasted image 20250116211710.png
Pasted image 20250116211721.png

关于python代码

Pasted image 20250116214502.png

2 蒙特卡罗法

  • 定义:蒙特卡罗法又称统计模拟法,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解
  • 是一种思想而不是算法,没有固定的代码
  • 非线性规划用蒙特卡罗法求初始值是最精确的

3 非线性规划法

1 matlab

Pasted image 20250117103220.png
Pasted image 20250117103333.png
Pasted image 20250117103345.png

例1

Pasted image 20250117104122.png

%% code1.m
%% 非线性规划的函数
% [x,fval] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlfun,option)
% x0表示给定的初始值(用行向量或者列向量表示),必须得写
% A b表示线性不等式约束
% Aeq beq 表示线性等式约束
% lb ub 表示上下界约束
% fun表示目标函数
% nonlfun表示非线性约束的函数
% option 表示求解非线性规划使用的方法
clear;clc
format long g %可以将Matlab的计算结果显示为一般的长数字格式(默认会保留四位小数,或使用科学计数法)

%% 例题1的求解
% max f(x) = x1^2 +x2^2 -x1*x2 -2x1 -5x2
% s.t. -(x1-1)^2 +x2 >= 0 ; 2x1-3x2+6 >= 0
x0 = [0 0]; %任意给定一个初始值
A = [-2 3]; b = 6;
[x,fval] = fmincon(@fun1,x0,A,b,[],[],[],[],@nonlfun1) % 注意 fun1.m文件和nonlfun1.m文件都必须在当前文件夹目录下
fval = -fval

%% 使用其他算法对例题1求解
% Matlab默认使用的算法是'interior-point' 内点法
% 使用interior point算法 (内点法)
option = optimoptions('fmincon','Algorithm','interior-point')
[x,fval] = fmincon(@fun1,x0,A,b,[],[],[],[],@nonlfun1,option)
fval = -fval
% 使用SQP算法 (序列二次规划法)
option = optimoptions('fmincon','Algorithm','sqp')
[x,fval] = fmincon(@fun1,x0,A,b,[],[],[],[],@nonlfun1,option)
fval = -fval %得到-4.358,远远大于内点法得到的-1,猜想是初始值的影响
% 改变初始值试试
x0 = [1 1]; %任意给定一个初始值
[x,fval] = fmincon(@fun1,x0,A,b,[],[],[],[],@nonlfun1,option) % 最小值为-1,和内点法相同(这说明内点法的适应性要好)
fval = -fval

%% 使用蒙特卡罗的方法来找初始值(推荐)
clc,clear;
n=10000000; %生成的随机数组数
x1=unifrnd(-100,100,n,1); % 生成在[-100,100]之间均匀分布的随机数组成的n行1列的向量构成x1
x2=unifrnd(-100,100,n,1); % 生成在[-100,100]之间均匀分布的随机数组成的n行1列的向量构成x2
fmin=+inf; % 初始化函数f的最小值为正无穷(后续只要找到一个比它小的我们就对其更新)
for i=1:n
x = [x1(i), x2(i)]; %构造x向量, 这里千万别写成了:x =[x1, x2]
if ((x(1)-1)^2-x(2)<=0) & (-2*x1(i)+3*x2(i)-6 <= 0) % 判断是否满足条件
result = -x(1)^2-x(2)^2 +x(1)*x(2)+2*x(1)+5*x(2) ; % 如果满足条件就计算函数值
if result < fmin % 如果这个函数值小于我们之前计算出来的最小值
fmin = result; % 那么就更新这个函数值为新的最小值
x0 = x; % 并且将此时的x1 x2更新为初始值
end
end
end
disp('蒙特卡罗选取的初始值为:'); disp(x0)
A = [-2 3]; b = 6;
[x,fval] = fmincon(@fun1,x0,A,b,[],[],[],[],@nonlfun1)
fval = -fval
%% fun1.m
function f = fun1(x)
% 注意:这里的f实际上就是目标函数,函数的返回值也是f
% 输入值x实际上就是决策变量,由x1和x2组成的向量
% fun1是函数名称,到时候会被fmincon函数调用, 可以任意取名
% 保存的m文件和函数名称得一致,也要为fun1.m
% min f(x) = x1^2 +x2^2 -x1*x2 -2x1 -5x2
f = x(1)^2+x(2)^2 -x(1)*x(2)-2*x(1)-5*x(2) ;
end
%% nonlfun1.m
function [c,ceq] = nonlfun1(x)
% 注意:这里的c实际上就是非线性不等式约束,ceq实际上就是非线性等式约束
% 输入值x实际上就是决策变量,由x1和x2组成的一个向量
% 返回值有两个,一个是非线性不等式约束c,一个是非线性等式约束ceq
% nonlfun1是函数名称,到时候会被fmincon函数调用, 可以任意取名,但不能和目标函数fun1重名
% 保存的m文件和函数名称得一致,也要为nonlfun1.m
% -(x1-1)^2 +x2 >= 0
c = [(x(1)-1)^2-x(2)]; % 千万別写成了: (x1-1)^2 -x2
ceq = []; % 不存在非线性等式约束,所以用[]表示
end
例2

Pasted image 20250117105420.png
Pasted image 20250117105442.png
Pasted image 20250117105453.png

%% xuanzhiwenti.m
%%%第一问:线性规划
clear;clc;
% 6个工地坐标
a=[1.25 8.75 0.5 5.75 3 7.25];
b=[1.25 0.75 4.75 5 6.5 7.75];
% 临时料场位置
x=[5 2];
y=[1 7];
% 6个工地水泥日用量
d=[3 5 4 7 6 11];
% 计算目标函数系数,即6工地与两个料场的距离,总共12个值
for i=1:6 % 对于6个工地
for j=1:2 % 接收两个料场的供用
l(i,j)=sqrt((x(j)-a(i))^2+(y(j)-b(i))^2); % 距离
end
end
f = [l(:,1);l(:,2)]; % 目标函数系数向量,总共12个值
% 不等式约束条件的变量系数和常数项
% 双下标转换成单下标:x11=x1,x21=x2,x31=x3,x41=x4,…,x62=x12
A = [1 1 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1];
% 两个临时料场日储量
b = [20;20];
% 矩阵的行数是约束条件个数,列数是变量个数
% 等式约束的变量系数和常数项
Aeq = [eye(6),eye(6)]; % 两个单位矩阵横向拼成
beq=[d(1);d(2);d(3);d(4);d(5);d(6)];
% 所有变量下限全是0
Vlb=[0 0 0 0 0 0 0 0 0 0 0 0];
[x,fval]=linprog(f,A,b,Aeq,beq,Vlb);
x,fval

%% 第二问:非线性规划
% 注意!第二问中求新料场位置,所以两个料场的横纵坐标也是变量,所以多了4个变量
% 对新坐标没有不等式约束,所以其不等式约束条件里的系数为0
A2 = [1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0];
B2 = [20;20];
% 对新坐标也没有等式约束,所以相应项也为0
Aeq2 = [eye(6),eye(6),zeros(6,4)]; % 两个单位矩阵和一个全0矩阵拼成
beq2=[3 5 4 7 6 11]';
Vlb2=[zeros(12,1);-inf;-inf;-inf;-inf];
% 非线性规划必须赋初值,可以基于问题情况来设,或设置rand()随机数等等;
% 初始值设为线性规划的计算结果,即临时料场的坐标
% 设置初始值x0,此处可直接使用第一问的值作为初始值;
x0=[3 5 0 7 0 1 0 0 4 0 6 10 5 1 2 7]';
[x2,fval2]=fmincon(@fun2,x0,A2,B2,Aeq2,beq2,Vlb2)
% 若约束条件里有非线性函数,可使用在fmincon里使用nonlcon 项
% 若有条件,可使用蒙特卡罗法求一个近似解作为初始值
% 1、因为第2问模型中有16个变量,所以要给16个变量分别生成随机值,作为当前解;
% 2、判断这些当前解是否满足模型的约束条件
% 3、若满足,代入目标函数,求当前目标函数值
% 4、判断当前目标函数值是否比已求的较优函数值更好,若是,则替换掉较优函数值和对应的较优解
% 5、不断重复前5步,构成统计意义,求得较优解。
p0 = 10000; n = 10^6; tic
x_m0 = 0;
for i = 1:n
% 前12个数是6个工地从两个料场接收的量,6个工地分别需要3,5,4,7,6,11吨水泥
% 所以前12个变量分别需要取0到3,0到5,……,0到11的随机数
% 为加速求近似,取前12个变量(工地从料场接受的量)为随机整数
% randi(n)为随机取1到n之间的一个整数,则randi(n+1)-1为取0到n间随机整数
% 后4个变量是两个料场的横纵坐标,取一定范围内的随机数(根据题目,工地坐标都在0到9,所以此处取0到9)
% ...表示续行,即下一行和这行是在同一行
x_m = [randi(4)-1,randi(6)-1,randi(5)-1,randi(8)-1,randi(7)-1,randi(12)-1,...
randi(4)-1,randi(6)-1,randi(5)-1,randi(8)-1,randi(7)-1,randi(12)-1,...
9*rand(1,4)];
[g,k] = constraint(x_m); % 约束条件
if all(g<=0) % 等式约束难以严格满足,所以此处相差不大即可算近似
if all(abs(k)<=1)
ff = fun2(x_m); % 目标函数
if ff<p0
x_m0 = x_m; p0 = ff;
end
end
end
end
x_m0,p0,toc
% 以采样10^6次的蒙特卡罗法求得的近似值作为初始值,调用fmincon
[x3,fval3]=fmincon(@fun2,x_m0,A2,B2,Aeq2,beq2,Vlb2)
% 此时最终求得的结果fval3 = 85.4054,
% 优于前面以第一问线性规划结果为初始值时求得的90.4920
% 注意!!!非线性规划每次求解的结果都不一样!!!
% 多次运行相同代码,得出的结果不相同是正常的!!!
%% constraint.m
function [g,k] = constraint(x)
% 不等式约束条件
% sum(x(:,1:6),2)是对矩阵前6列按行求和,即对前6个元素求和,
% 对应6个工地接收第一个料场的总量。再减去20,即把不等式右边常数项移到左边
g = [sum(x(:,1:6),2)-20
sum(x(:,7:12),2)-20
];
% 等式约束条件,6个工地从两个料场收到的总量分别为3,5,4,7,6,11
k = [x(1)+x(7)-3
x(2)+x(8)-5
x(3)+x(9)-4
x(4)+x(10)-7
x(5)+x(11)-6
x(6)+x(12)-11
];
end
%% fun2.m
function ff = fun2(x)
% 6个工地坐标
a1 = [1.25 8.75 0.5 5.75 3 7.25];
b1 = [1.25 0.75 4.75 5 6.5 7.75];
f1=0;
% x(13)是第一个新料场的横坐标,x(14)是其纵坐标;
% x(15)是第二个新料场的横坐标,x(16)是其纵坐标;
for i=1:6
s(i)=sqrt((x(13)-a1(i))^2+(x(14)-b1(i))^2); % 第一个料场到各工地的距离
f1=s(i)*x(i)+f1; % 第一个料场给各工地的吨千米数
end
f2=0;
for i=7:12
s(i)=sqrt((x(15)-a1(i-6))^2+(x(16)-b1(i-6))^2); % 第二个料场到各工地的距离
f2=s(i)*x(i)+f2; % 第二个料场给各工地的吨千米数
end
% 总运输量(吨千米数)
ff=f1+f2;
end
2 python

Pasted image 20250117113435.png
Pasted image 20250117113548.png
Pasted image 20250117120358.png
Pasted image 20250117120656.png

4 整数规划和0-1规划

  • 在整数规划中,如果所有变量都限制为整数,则称为纯整数规划;
  • 如果仅一部分变量限制为整数,则称为混合整数规划。
  • 整数规划的一种特殊情形是0-1规划,它的变数仅限于0或1。
    Pasted image 20250117141303.png
1 matlab

Pasted image 20250117141344.png

2 python

Pasted image 20250117143523.png
Pasted image 20250117143717.pngPasted image 20250117143805.png

5 最大最小化规划模型 ( Minimax )

  • 最大最小化最小化最坏情况
  • 最大最小算法(Minimax算法),是一种找出失败的最大可能性中的最小值的算法(即最小化对手的最大得益)。在实际问题中也有许多求最大值的最小化问题,例如急救中心选址问题就是要规划其到所有地点最大距离的最小值,在投资规划中要确定最大风险的最低限度等,为此,对每个 ,我们先求出目标值 的最大值,然后再求这些最大值中的最小值。
    Pasted image 20250117182956.png
matlab

Pasted image 20250117183658.png

python

Pasted image 20250117184039.png

6 多目标规划模型

  • 多目标规划是数学规划的一个分支。研究多于一个的目标函数在给定区域上的最优化。
    • 设计一个导弹,既要射程远,命中率高,还要耗燃料少
    • 选择新厂址,除了要考虑运费、造价、燃料供应费等经济指标外,还要考虑对环境的污染等社会因素
  • 解题思路
    1. 把目标函数转换成约束条件,多目标转换为单目标
    2. 本节内容

Pasted image 20250117190819.png
Pasted image 20250117191906.png
Pasted image 20250117192837.png
Pasted image 20250117192850.png

7 智能优化算法

智能优化算法又称为现代启发式算法,是一种具有全局优化性能、通用性强、且适合于并行处理的算法。这种算法一般具有严密的理论依据,而不是单纯凭借专家经验,理论上可以在一定的时间内找到最优解或近似最优解
特点:都是从任一解出发,按照某种机制,以一定的概率在整个求解空间中探索最优解。由于它们可以把搜索空间扩展到整个问题空间,因而具有全局优化性能

7.1 粒子群算法 ( PSO )(有代码)

3 原理

原理描述
  • 初始化为一群随机粒子,通过迭代找到最优。
  • 每次迭代中,粒子通过跟踪“个体极值(pbest)”和“全局极值(gbest)”来 更新自己的位置。
算法

Pasted image 20250119141017.png
Pasted image 20250119141049.png
Pasted image 20250119141104.png

算法流程

Pasted image 20250119141359.png

4 参数分析

Pasted image 20250119141707.png
Pasted image 20250119142035.png
Pasted image 20250119142126.png
Pasted image 20250119141746.png
Pasted image 20250119141757.png
Pasted image 20250119141832.png

pro版

Pasted image 20250119142231.png

5 算法实现(有代码)

Pasted image 20250119142400.png
Pasted image 20250119142513.png
Pasted image 20250119142549.png
Pasted image 20250119142701.png
Pasted image 20250119142713.png
Pasted image 20250119142737.png
Pasted image 20250119142807.png

6 群智能优化的特点和不足

Pasted image 20250119144407.png
Pasted image 20250119144416.png

7.2 遗传算法(用工具箱)

1 算法原理

  • 染色体与基因
    Pasted image 20250119144812.png
  • 遗传操作
    Pasted image 20250119144820.png
    • 选择-复制
      Pasted image 20250119144920.png
    • 交叉
      Pasted image 20250119144938.png
    • 变异
      Pasted image 20250119145609.png
算法流程

Pasted image 20250119145554.png

2 算法分析

Pasted image 20250119145802.png
Pasted image 20250119145906.png

3 算法实现

例1

Pasted image 20250119150442.png
Pasted image 20250119150508.png
Pasted image 20250119150625.png
Pasted image 20250119150635.png
Pasted image 20250119150829.png
Pasted image 20250119150839.png
Pasted image 20250119150957.png
Pasted image 20250119151009.pngPasted image 20250119151016.png
Pasted image 20250119151217.png
Pasted image 20250119151224.png
Pasted image 20250119151255.png
Pasted image 20250119151307.png
Pasted image 20250119151316.png
Pasted image 20250119151324.png
Pasted image 20250119151330.png
Pasted image 20250119151419.png
Pasted image 20250119151433.png

总结

遗传算法的主要特点

  • 遗传算法一般是直接在解空间搜索, 而不像图搜索那样一般是在问题空间搜索, 最后才找到解。
  • 遗传算法的搜索随机地始于搜索空间的一个点集, 而不像图搜索那样固定地始于搜索空间的初始节点或终止节点, 所以遗传算法是一种随机搜索算法。
  • 遗传算法总是在寻找优解, 而不像图搜索那样并非总是要求优解, 而一般是设法尽快找到解, 所以遗传算法又是一种优化搜索算法
  • 遗传算法的搜索过程是从空间的一个点集(种群)到另一个点集(种群) 的搜索,而不像图搜索那样一般是从空间的一个点到另一个点地搜索。 因而它实际是一种并行搜索, 适合大规模并行计算,而且这种种群到种群的搜索有能力跳出局部最优解
  • 遗传算法的适应性强, 除需知适应度函数外, 几乎不需要其他的先验知识。
  • 遗传算法长于全局搜索, 它不受搜索空间的限制性假设的约束,不要求连续性, 能以很大的概率从离散的、多极值的、 含有噪声的高维问题中找到全局最优解。

遗传算法的应用

  • 遗传算法在人工智能的众多领域便得到了广泛应用。例如,机器学习、聚类、控制(如煤气管道控制)、规划(如生产任务规划)、设计(如通信网络设计、布局设计)、调度(如作业车间调度、机器调度、运输问题)、配置(机器配置、分配问题)、组合优化(如TSP、背包问题)、函数的最大值以及图像处理和信号处理等等。
  • 另一方面,人们又将遗传算法与其他智能算法和技术相结合,使其问题求解能力得到进一步扩展和提高。例如,将遗传算法与模糊技术、神经网络相结合,已取得了不少成果。

7.3 模拟退火算法(有代码)

2 算法原理

原理

Pasted image 20250119161511.png
Pasted image 20250119161644.png
Pasted image 20250119161803.png

3 算法流程

Pasted image 20250119162147.png

4 算法特点

Pasted image 20250119162258.png

5 算法拓展

Pasted image 20250119162316.png

7.4 天牛须搜索(有代码)

3 算法原理

Pasted image 20250120095713.png
Pasted image 20250120095729.png
Pasted image 20250120095740.png

4 算法特点

  • 优点
    • 运算量非常小,收敛非常快
    • 具有全局寻优能力
    • 代码非常简洁,容易实现
  • 缺点
    • 有可能陷入局部最小值
    • 步长的选取需要根据实际情况确定
    • 迭代次数增加导致寻优步长过小

7.5 萤火虫算法(有代码)

2 算法原理

算法原理

Pasted image 20250120134710.png
Pasted image 20250120134732.png
Pasted image 20250120135120.png
Pasted image 20250120135132.png
Pasted image 20250120135445.png

算法步骤

Pasted image 20250120135504.png

伪代码

Pasted image 20250120135824.png

3 算法改进

APFA 参数自适应策略

Pasted image 20250120142703.png

CFA 混沌映射策略

  • 高斯映射

7.6 鲸鱼优化算法(有代码)效果不好???

1 背景

Pasted image 20250120152347.png
Pasted image 20250120152618.png
Pasted image 20250120152631.png

2 算法

流程图

Pasted image 20250120152207.png

原理

Pasted image 20250120152657.png
Pasted image 20250120153054.png
Pasted image 20250120153108.png
Pasted image 20250120153514.png
Pasted image 20250120153524.png
Pasted image 20250120153532.png

3 算法分析

Pasted image 20250120154524.png

4 算法拓展

Pasted image 20250120154604.png

Built with MDFriday ❤️