2022五一数学建模A题和C题代码分析

2022五一数学建模已经写出A题和C题
A题:完整代码见文末

随着微机电系统的发展,人类已经可以加立越来越小的机器。这些机器小到一定程度就可以放进血管开展疾病治疗,这就是血管机器人。血管机器入河以携带药物放入血管里定点治疗与血管有关的疾病,还可以充当d管清道夫,清除病毒,保持人体健康。因而,血管机器人越来越受到人们的关注。
手问题2: 血管机器人在患者血管中工作有风险,一旦碰卫巨噬细胞,如果躲避不及,将会完全损毁。假设每周有20%的血管机器人损毁(损毁的个数按四舍五入取整),其他条件遵循问题1,通盘考虑第1-104周,请问总共需要购买多少容器艇和操作手,既满足治疗又能够使运营成本达到最低?并将相关结果填入表1。另外,将第1-8周的结果数据与问题1的第1-8周的结果数据进行对比分析。问题分析:问题2在问题1的基础上,多了一些约束条件,即每新的- -周都有20%损毁,要求考虑1-104周,总共需要多少容器艇和操作手,那么思路和方法是和问题1的,在模型上面需要加上损毁的约束条件,需要全盘考虑决策变量,每周进了多少货,相当于问题2要做-一个全局优化,全局优化的难点在于计.。算量大,所以必须费选择- 个合适的,收敛速度快的算法。
问题3:如果每名熟练操作手可以“指是“新操作手的数量调整为不超过20个,假设每周有10%的血管机器人损毁负毁的个数按四舍五入取整2同问题2,请研究第1-104周里总共需要购买多少容器艇和操作手既满足治疗又能够使运营成本达到最低?将相关结果数据填入表2。
S问题分析:问题3的意思还是加了2个约束条件,一是熟练操作手指导数量小于等于20,每周损毁10%,目标函数不变,约束条件改变,决策变量不变,那么选择好优化算法,编程实现即可。
问题4和问题5:这里就一起说了,题目给了很多数字,这些数字其实都是改变规:划模型里面的约束条件,所以从问题1到问题5,我们的目标函数是- -样的,是成本,决策变量是一样的,是每周进了多少货,所以每个问题在建模的时候,需要改变模型中的约束条件,求解方法是一一样的,启发式全局寻优,选择的算法很多,遗传算法,模拟退火,免疫算法等等。现在比较热门的是鲸鱼算法,可以学习一下相关的原理和代码。
总结: A题是日标规划,需要目标函数,约束条件,决策变量,5个问题,目标函数,决策变量都是一一样的,所以每一个间题都是通过改变约束条件来进行求解,至于使用什么算法,需要编程的同学想想,从最简单的枚举法到高难度的算法都是可以的。
写了部分代码:
1)粒子群优化算法(求解无约束优化问题) 2)遗传算法

function [xm,fv]=AsyLnCPSO(fitness,N,c1max,c1min,c2max,c2min,w,M,D)
%待优化的目标函数:fitness
%粒子数目:N
%学习因子1的最大值:c1max
%学习因子1的最小值:c1min
%学习因子2的最大值:c2max
%学习因子2的最小值:c2min
%惯性权重:w
%最大迭代次数:M
%问题的维数:D
%目标函数取最小值时的自变量的值:xm
%目标函数的最小值:fv

format long;
for i=1:N
    for j=1:D
        x(i,j)=randn;       %随机初始化位置
        v(i,j)=randn;       %随机初始化速度
    end
end
for i=1:N
    p(i)=fitness(x(i,:));
    y(i,:)=x(i,:);
end
pg=x(N,:);                  %pg为全局最优
for i=1:(N-1)
    if fitness(x(i,:))<fitness(pg)
        pg=x(i,:);
    end
end
for t=1:M
function [x,minf]=minFactor(f,x0,h,v,M,alpha,gama,var,eps)
%目标函数:f
%初始点:x0
%约束函数:g
%初始乘子向量:v
%罚因子:M
%放大系数:alpha
%参数:gama
%自变量向量:var
%精度:eps
%目标函数取最小值时的自变量值:x
%目标函数的最小值:minf

format long;
if nargin==8
    eps=1.0e-4;
end
FE=0;
for i=1:length(h)
    FE=h(i)^2;
end
x1=transpose(x0);
x2=inf;

while 1
    FF=M*FE/2;
    Fh=v*h;
    SumF=f+FF-Fh;    %乘子法的罚函数
    [x2,minf]=minNT(SumF,transpose(x1),var);    %用牛顿法进行一维搜索
    
    Hx2=Funval(h,var,x2);
    Hx1=Funval(h,var,x1);
    if norm(Hx2)<eps                            %精度判断
        x=x2;
        break;
    else
        if Hx2/Hx1>=gama
            M=alpha*M;                          %修正罚因子
            x1=x2;
        else
   
end
minf=Funval(f,var,x);
format short;

完整代码见文末

C题:通过建立模型对附件1中的各类型部件进行分析,利用可靠性和故障率对各类型部件进行评价,帮助政府选取更加可靠的火灾探测器类型。
选择合适参数建立区域报警部件类型智能研判模型,当某大队辖区内某类型部件发出报警信息时,能够较好判断是否属于误报,提高报警准确率,并对附件3中各大队不同部件发出的报警信号进行真实性评价,确定附件3中各报警信号是真实火灾的概率。
综合管理水平最低的三个辖区的技术指标(如辖区火灾发生频率、部件故障率、部件可靠性等)进行量化,就是个评价问题,为了准确评价,我们可以使用最小二乘法,并结合层次分析和熵权法,我们将这个模型命名为最小二乘主客观一致赋权评价模型。这种算法很少人用,不拿奖都难。目前我已经写出代码,如下:

clear
close all
clc
charct_vector = 6; %评价对象个数
charct_totalnum = 4; %评价指标个数
....
....
u = zeros(charct_totalnum, 1);
v = zeros(charct_totalnum, 1);
for i = 1:6
    for j = 2:4
        r1(i, j) = (max(x(i, :)) - x(i, j)) / (max(x(i, :)) - min(x(i, :))); %%%越小越优的归一化处理
    end
end
for i = 1:6
    for j = 1:1
        r1(i, j) = (x(i, j) - min(x(i, :))) / (max(x(i, :)) - min(x(i, :))); %%%越大越优的归一化处理
    end
end
%%层次分析法%构建新特征参数
A = [1, 2, 3, 3; 1 / 2, 1, 2, 2; 1 / 3, 1 / 2, 1, 2; 1 / 3, 1 / 2, 1 / 2, 1]; %判断矩阵
[V, DD] = eig(A); %A的特征值构成对角阵D,特征向量构成V的列向量
q = V(:, 1); %q向量即为权重向量
for i = 1:charct_totalnum
    u(i) = q(i, 1); %q 4x1
end %计算新定义特征参数
%%熵值法
entropy_sum = zeros(charct_totalnum, 1);
for i = 1:charct_totalnum

上面的不是完整代码,完整代码见文末
其他的评价算法也有,如topsis法:

2022五一数学建模A题和C题代码分析_第1张图片

A题完整代码地址(限量):添加链接描述
C题完整代码地址(限量):添加链接描述

你可能感兴趣的:(python,人工智能,数据挖掘,算法)