2020年五一杯数学建模C题饲料混合加工问题解题全过程文档及程序

news2024/12/22 18:21:46

2020年五一杯数学建模

C题 饲料混合加工问题

原题再现

  饲料加工厂需要加工一批动物能量饲料。饲料加工需要原料,如加工猪饲料需要玉米、荞麦、稻谷等。加工厂从不同的产区收购了原料,原料在收购的过程中由于运输、保鲜以及产品本身属性等原因,存在着效能率的问题(如1吨玉米可加工成0.7吨左右的玉米面)。这个数据在原料进厂之后可以通过随机抽样进行检测得到。
  某饲料加工厂有9个加工窖,现有一批加工任务,要将16个加工原料(见表1)按照某种混合方案一次性放入加工窖中进行加工。一个加工窖的混合产品称为一个加工包。如果某加工原料重量不少于500千克,则可以单独成为一个加工包。因产品属性原因,要求品种代码10的加工原料不能单独成为一个加工包。每一个加工窖能够加工的重量有限定范围(见表2)。加工窖加工成本由点火成本(也称固定成本)与加工量成本(也称可变成本)构成,其他成本暂不考虑。表1提供了各加工原料的品种代码、总重量和效能率。表2提供了每一个加工窖能够加工的重量范围以及点火成本、加工量单位成本数据。
  由于加工窖数量低于饲料加工原料的品种数,所以在加工前需要将若干个加工原料进行混合。为了保证加工后饲料的质量,要求混合的任何两个加工原料之间必须具有亲缘关系。工厂技术人员对每种加工原料进行了基因检测,得到了10个关键位点的基因序列(见表1),并规定,两个加工原料如果有N个相同位点的基因序列标记相同,就认为这两个加工原料的亲缘值为N(如果N大于0,则说明这两种加工原料之间具有亲缘关系),一个加工包中所有原料两两之间亲缘值的平均值称为亲缘度。例如品种代码1、2、5的加工原料混合成为一个加工包,假设品种代码1和品种代码2的亲缘值为5,品种代码1和品种代码5的亲缘值为3,品种代码2和品种代码5的亲缘值为5,那么它们的亲缘度就是(5+3+5)/3。如果一个加工包中只含有一种加工原料,则该加工包的亲缘度为10。本题仅从亲缘度角度考虑混合加工饲料的质量,亲缘度越高,饲料质量就越高。
  请考虑下列问题:
  1. 请研究16个加工原料两两之间的亲缘值,并进行统计性分析。
  2. 将16个加工原料进行混合全部放入9个加工窖中。请建立数学模型,求出饲料质量最高的混合方案并给出每个加工包的亲缘度。
  3. 将16个加工原料进行混合全部放入9个加工窖中。请建立数学模型,求出平均能耗率超过80%的加工包数量最多的混合方案并给出每个加工包的能耗率,并将结果填入表3。
  4. 如果饲料加工厂允许部分加工窖不生产,请建立数学模型,给出混合加工方案,用尽量低的加工成本完成整个加工任务,同时要求平均能耗率超过80%的加工包尽量的多。
  5. 如果饲料加工厂允许部分加工窖不生产,但必须完成整个加工任务。请建立数学模型,给出混合加工方案使得(1)饲料质量尽量高,(2)加工成本尽量低,(3)平均能耗率超过80%的加工包尽量多。
在这里插入图片描述
在这里插入图片描述

整体求解过程概述(摘要)

  近年来,养殖业迅猛发展,对于饲料的需求日益增加,导致饲料混合加工行业竞争十分激烈。因此,企业都在积极寻求质优价廉高效的饲料配比方案。本文通过数学模型,就饲料配比加工方案进行优化,给出最优的饲料混合配比方案。
  针对问题一,对饲料两两加工原料之间的亲缘关系进行研究。饲料两两加工原料之间的亲缘关系用两种原料的对应 10 个关键点的基因序列相同个数进行判断,其表征为亲缘值大小。利用 Matlab 进行编程,获得两两加工原料的亲缘值表。对两两加工原料亲缘关系利用 IBM SPSS statistics 进行统计分析获得两两加工原料亲缘关系有 40 种,最大值为 6,最小值为 1,亲缘值范围长度为 5,亲缘值方差为 2.254,标准偏差为 1.50128,均值为 3.0500。
  针对问题二,要求将 16 种加工原料全部放入 9 个加工窖中进行加工,求出能得出饲料质量最高的混合并给出每个加工包的亲缘度,实际上是一个优化问题。以加工原料的混合配比方案的亲缘度为优化目标。假设所有加工窖在加工过程中完全可以正常使用;只考虑亲缘度对混合加工饲料质量的影响;假设只考虑加工窖的点火成本和加工量成本,其他成本不考虑。建立亲缘度优化目标函数,给出配比方案的质量系数矩阵 A,在满足加工窖质量上下限约束和特定种类不能单独混合约束条件下,通过 Matlab 编程,结合蒙特卡洛算法进行优化,得到亲缘度最大的原料混合配比加工方案,亲缘度的最大值为 50.667。
  针对问题三,要求将 16 个加工原料进行混合全部放入 9 个加工窖中,求出平均效能率超过 80%的加工包数量最多的混合方案并给出每个加工包的效能率,也是最优问题,优化目标函数为加工包的能耗率最大问题。影响单个加工包效能率的因素为每个加工窖中的每种加工原料的质量分配。在问题 2 的基础之上结合题目三所给的约束条件进行求解。利用蒙特卡洛算法进行优化,得到平均能耗效率超过 0.8 的加工包有 7 个 ,另外两个加工包的效率也在 0.7-0.8 之间。
  针对问题四,从本质上来说,问题 4 属于双目标优化问题,问要求在允许部分加工窖不生产的情况下,满足成本尽量低,平均效能率超过 80%的加工包尽量多,取消一次性加工限制,可以多次加工。即在各种约束条件下设计出一个可以使得成本最小化、平均效能率超过 80%的加工包尽量多的混合方案。建立成本最低,加工包能耗率大于 0.8 数量尽可能多的目标函数,利用线性加权和法进行双目标优化,经过优化得线性加权和后的目标函数的最优解为 0.9548,其中成本为14350 元,效能值大于 0.8 的加工包的数量为 5。
  问题五与问题四类似,属于多目标优化问题。经优化得线性加权后得目标函数得最优解为 0.9091,在此种配比情况下亲缘值为 43,即为质量最好,成本为14474 元,效能率大于 0.8 的加工包数量为 4。

模型假设:

  [1]假设所有加工窖在加工过程中完全可以正常使用。
  [2]假设只考虑亲缘度对混合加工饲料质量的影响。
  [3]假设只考虑加工窖的点火成本和加工量成本,其他成本不考虑。

问题分析:

  问题 1 的分析
  问题 1 要求研究 16 个加工原料两两之间的亲缘值,并进行统计性分析。因此,首先根据题目所给亲缘值定义:即两个加工原料如果有 N 个相同位点的基因序列标记相同,就认为这两个加工原料的亲缘值为 N(如果 N 大于 0,则说明这两种加工原料之间具有亲缘关系)。由于是两两原料之间,且两元素之间不存在先后顺序问题,所以利用 matlab 进行编程,筛选出两两加工原料的组合方式,并计算出两两加工原料之间的亲缘值,然后利用 IBM SPSS Statistics 对数据进行统计分析。
  问题 2 的分析
  问题 2 要求将 16 种加工原料全部放入 9 个加工窖中进行加工,建立数学模型,求出能得出饲料质量最高的混合并给出每个加工包的亲缘度。显然问题二最终目标是求取亲缘度最优值问题,并给出饲料质量最高的混合方案(仅从亲缘度角度考虑混合加工饲料的质量,亲缘度越高,饲料质量就越高)。将 16 中种加工原料进行混合投放到 9 个加工窖中进行加工,由于每个加工窖中投放的加工原料组合不同以及每种组合方式的加工原料的重量分配比例也不确定,因此每个加工窖的加工原料组合具有随机性。因此我们将加工窖中加工原料混合方案问题看作是蒙特卡洛算法的优化组合方案问题。在考虑加工原料混合方案时,如何确定每一个加工窖的投放的加工原料的种类以及各种加工原料的重量占比是本问题的难点。但是,从企业的经营方式和经营目的来看生产方式必定是符合实际的,生产方案必定追求合理性,因此我们对于每个加工窖中的加工原料种类限制在 1 到 4 之间。原料种类大于 4 种的不予考虑,这就极大的简化了问题的复杂程度,并且该简化是合理的,符合企业实际生产的。同时要求混合方案达到质量最高的同时,还必须使投放的混合原料的重量在加工窖的加工重量范围上限和下限之间。我们从 9 个加工窖进行着手,通过建立加工原料重量组合系数矩阵,将每个加工窖的质量范围进行约束,从而建立数学模型,进行求解。
  问题 3 的分析
  问题 3 是将 16 个加工原料进行混合全部放入 9 个加工窖中,求出平均效能率超过 80%的加工包数量最多的混合方案并给出每个加工包的效能率。显然问题三同问题二一样属于最优问题,并在约束条件之下寻找加工原料的最优混合方案。问题中包含 16 种元素,9 个加工窖。假设在加工原料混合方案确定后,将混合原料投放到 9 个加工窖形成 9 个加工包。则每一个加工包都有一个效能率。通过对 16 种加工原料相关数据的分析,不难发现,由于加工窖自身没有加工效率问题,我们默认加工窖的加工效率是 1,对于每个加工包的效能率无影响。同时每种加工原料的能效率是定值,且不会随着外界条件发生改变。因此,影响单个加工包效能率的因素为每个加工窖中的每种加工原料的质量分配。在明确影响因素的前提条件下,建立起优化目标函数,在问题 2 的基础之上结合题目三所给的约束条件进行求解。利用蒙特卡洛算法进行优化,获得最优解,给出方案配比完成附表 3。
  问题 4 的分析
  问题 4 要求在允许部分加工窖不生产的情况下,满足给定的两个条件,一个是成本尽量低,另一个是平均效能率超过 80%的加工包尽量多,进而完成加工任务,即取消一次性加工的限制,可以多次加工。从本质上来说,问题 4 属于双目标优化问题,即在各种约束条件下设计出一个可以使得成本最小化、平均效能率超过 80%的加工包尽量多的混合方案。我们采用线性加权和法进行双目标优化。该问题的难点在于同时从成本以及效能率两个角度进行考虑,将复杂的任务预定规则转化为约束条件。在考虑加工成本最低时,我们发现加工窖的容量越大,加工成本越低,因此优先使用加工容量较大的加工窖进行加工。我们按照加工要求,设定约束条件,求解双目标优化模型。
  问题 5 的分析
  问题5的建模与求解过程是综合考虑前4个问题的求解结果进行优化计算的,问题 5 共有 3 个目标函数,属于多目标函数优化问题。由于这 3 个目标函数的最优解已经得到,因此我们直接采用线性加权和法进行求解,建立目标函数。假设饲料质量、加工成本和效能率对工厂加工的重要性相等,我们分别赋予每个指标各三分之一的权系数,以问题 2、问题 3 和问题 4 求解的最优值作为基准,建立新的目标函数进行优化。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

[num,jy,raw]=xlsread('temp.xlsx');
qyz=zeros(120,3);
count=0;
for i=1:15
 for m=i+1:16
 count=count+1;
 qyz(count,1)=num(i,1);
 qyz(count,2)=num(m,1);
 for j=1:10
 jdg=strcmp(jy(i,j),jy(m,j));
 if jdg
 qyz(count,3)=qyz(count,3)+1;
 end
 end
 end
end
temp=find(qyz(:,3));
yxqyz=qyz(temp,:);
qyzpj=mean(qyz(:,3));
stdqyz=std(qyz(:,3));
count=1;
num2=nan.*ones(16);
for i=1:size(qyz,1)
 num2(qyz(i,1),qyz(i,2))=qyz(i,3);
 num2(qyz(i,2),qyz(i,1))=qyz(i,3);
 num2(qyz(i,1),qyz(i,1))=10;
end
num2(16,16)=10;
for i=1:14
 for j=i+1:15
 for k=j+1:16
 if num2(i,j)*num2(i,k)*num2(j,k)~=0
 qy3z(count,1:3)=[i,j,k];
 qy3z(count,4)=(num2(i,j)+num2(i,k)+num2(j,k))/3;
 qy3z(count,5)=num(i,2)+num(j,2)+num(k,2);
 count=count+1;
 end
 end
 end
end
ttt=find(qy3z(:,5)>1200);
qy3z(ttt,:)=[];
function [ xxx ] = creatxbq()
%UNTITLED13 Summary of this function goes here
% Detailed explanation goes here
try
 load qyz
 load luzi
 load slzl
 alphab=1:16;
 syu=ones(1,16);
 xxx=zeros(9,16);
 qudiao=ceil(4*rand());
 qudiao=qudiao-1;
 if qudiao
 prob=[100 100 100 20 20 20 1 1 1];
 prob=prob/sum(prob);
 luzinm=1:9;
 kd=[];
 while max(size(kd))~=qudiao
 kd1=randsrc(1,qudiao,[luzinm;prob]);
 kd = unique (kd1);
 end
 end 
 for i=9:-1:1
 jdg=find(kd==i);
 if isempty(jdg)==0 &&i~=1
 jdg=[];
 continue
 end 
 if isempty(jdg)==0 && i==1 
 else 
 dq=ones(1,4); 
 temp=1./(abs(syu-ones(1,16)*luzi(1,i))+0.1);
 prob=temp/sum(temp);
 if i==9||i==8||i==7 
 end
 numi1=randsrc(1,1,[alphab;prob]);
 dq(1,1)=numi1;
 if syu(numi1)*slzl(numi1)<luzi(1,i)
 bl1=syu(numi1);
 else
 if syu(numi1)*slzl(numi1)>=500 && numi1~=10
 bl1=500/slzl(numi1);
 else

bl1=luzi(1,i)/slzl(numi1);
 end
 end
 xxx(i,numi1)=bl1;
 mass=xxx(i,:)*slzl;
 syu(numi1)=syu(numi1)-xxx(i,numi1);
 if numi1==10||mass<500
 %xuan2
 else
 if mass>=luzi(1,i) && i~=1
 continue 
 end
 end 
 mass=(xxx(i,:)*slzl);
 qyi1=find(qyz(dq(1,1),:));
 qyi1(find(qyi1==numi1))=[];
 if sum(syu(qyi1))~=0
 prob=syu(qyi1)/sum(syu(qyi1));
 numi2=randsrc(1,1,[qyi1;prob]);
 dq(1,2)=numi2;
 if mass+syu(numi2)*slzl(numi2)<=luzi(1,i)
 bl2=syu(numi2);
 else
 slslsl=luzi(2,i)-(xxx(i,:)*slzl);
 slslmin=luzi(1,i)-xxx(i,:)*slzl;
 if slslmin<0
 slslmin=0;
 end
 
bl2=ceil(100*(slslmin/slzl(numi2)+(50/slzl(numi2))*rand()))/100;
 end
 
 xxx(i,numi2)=bl2;
 
 mass=(xxx(i,:)*slzl);
 syu(numi2)=syu(numi2)-xxx(i,numi2);
 if mass>=luzi(1,i) && mass<=luzi(2,i)&&i~=1
 continue
 
 end
 
 
 
 qyi112=qyi1;
count=0;
 for j=1:size(qyi1,2)
 if qyz(qyi1(j),numi2)~=0
 count=count+1;
 qyi12(count)=qyi112(j);
 end
 end
 qyi12(find(qyi12==numi2))=[];
 if sum(sum(syu(qyi12)))~=0
 
 prob=syu(qyi12)/sum(syu(qyi12));
 
 numi3=randsrc(1,1,[qyi12;prob]);
 mass=(xxx(i,:)*slzl);
 if mass+syu(numi3)*slzl(numi3)<=luzi(2,i)
 bl2=syu(numi3);
 else
 slslsl=luzi(2,i)-(xxx(i,:)*slzl);
 slslmin=luzi(1,i)-xxx(i,:)*slzl;
 if slslmin<0
 slslmin=0;
 end
 bl2=slslmin/slzl(numi3);
 end
 xxx(i,numi3)=bl2;
 syu(numi3)=syu(numi3)-xxx(i,numi3); 
 end
 end
 mass=(xxx(i,:)*slzl);
 if mass<luzi(1,i)
 tttt=find(xxx(i,:));
 for j=1:max(size(find(xxx(i,:))))
 ysl=find(xxx(:,tttt(j)));
 for k=1:max(size(ysl))
 
yslimass=(xxx(ysl(k),:)*slzl-luzi(1,ysl(k)))/slzl(j);
 if xxx(ysl(k),tttt(j))<yslimass
 xxx(i,tttt(j))=xxx(i,tttt(j))+ 
xxx(ysl(k),tttt(j))-1/slzl(j);
 xxx(ysl(k),tttt(j))=1/slzl(j);
 else
 xxx(i,tttt(j))=xxx(i,tttt(j))+yslimass;
xxx(ysl(k),tttt(j))= 
xxx(ysl(k),tttt(j))-yslimass;
end
 end
 end 
 end 
 end 
 if i==1
 jsy=find(syu);
 if jsy
 for j=1:max(size(jsy))
 yyy=find(xxx(:,jsy(j)));
 if yyy
 for k=1:size(yyy)
 if syu(jsy(j))==0
 continue
 end
ksy=luzi(2,yyy(k))-xxx(yyy(k),:)*slzl;
if ksy
 if ksy>syu(jsy(j))*slzl(jsy(j))
 
xxx(yyy(k),jsy(j))=xxx(yyy(k),jsy(j))+syu(jsy(j));
 syu(jsy(j))=0;
 else
 
xxx(yyy(k),jsy(j))=xxx(yyy(k),jsy(j))+ksy/slzl(jsy(j));
 
syu(jsy(j))=syu(jsy(j))-ksy/slzl(jsy(j));
 end 
 end
 end 
 end
 end
 end
 end 
 end
catch
end
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

windows服务器热备、负载均衡配置

安装网络负载平衡 需要加入的服务器上全部需要安装网络负载平衡管理器 图形化安装&#xff1a;使用服务器管理器安装 在服务器管理器中&#xff0c;使用“添加角色和功能”向导添加网络负载均衡功能。 完成向导后&#xff0c;将安装 NLB&#xff0c;并且不需要重启计算机。 …

Unity Hub无法登陆的两种终极解决办法

最近换了个电脑&#xff0c;需要重装Unity&#xff0c; 然后unity hub 怎么都无法登陆&#xff0c;登陆不了就不能激活personal license。试了很多次&#xff0c;包括unity hub 2.5.8 和unity hub 3.3都不行&#xff0c;真的是很崩溃。因为是公司的电脑&#xff0c;限制比较多&…

【系统安装】ubuntu20.04启动盘制作,正经教程,小白安装教程,百分百成功安装

1.所需材料&#xff1a; 64GBU盘&#xff08;其实8g和16g也可以&#xff09; 2.制作U盘启动盘 使用windows制作ubuntu 20.04启动盘 1&#xff09;下载制作工具&#xff1a;Rufus&#xff1a;Rufus - 轻松创建 USB 启动盘 2&#xff09;插入用来做启动盘的U盘 3&#xff0…

nodejs+vue+python+PHP+微信小程序-安卓- 电影在线订票系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

qnx log 系统

前言 本文主要介绍QNX 系统中的 log 打印相关接口和使用方法 软件环境:qnx7.1 一、QNX查看 log 的工具 slog2info 1. slog2info 的相关介绍 和linux 中查看 kernel log 信息的 dmesg 命令一样, qnx 里面也有一个查看 log 信息的命令,那就是 slog2info 命令, 如下图所示是…

Jenkins的介绍与相关配置

Jenkins的介绍与配置 一.CI/CD介绍 &#xff11;.CI/CD概念 ①CI 中文意思是持续集成 (Continuous Integration, CI) 是一种软件开发流程&#xff0c;核心思想是在代码库中的每个提交都通过自动化的构建和测试流程进行验证。这种方法可以帮助团队更加频繁地交付软件&#x…

无监督学习的集成方法:相似性矩阵的聚类

在机器学习中&#xff0c;术语Ensemble指的是并行组合多个模型&#xff0c;这个想法是利用群体的智慧&#xff0c;在给出的最终答案上形成更好的共识。 这种类型的方法已经在监督学习领域得到了广泛的研究和应用&#xff0c;特别是在分类问题上&#xff0c;像RandomForest这样…

【深度学习】机器翻译的前世今生

我们都知道谷歌翻译&#xff0c;这个网站可以像变魔术一样在100 种不同的人类语言之间进行翻译。它甚至可以在我们的手机和智能手表上使用&#xff1a; 谷歌翻译背后的技术被称为机器翻译。它的出现改变了世界交流方式。 事实证明&#xff0c;在过去几年中&#xff0c;深度学习…

搜索引擎项目

认识搜索引擎 1、有一个主页、有搜索框。在搜索框中输入的内容 称为“查询词” 2、还有搜索结果页&#xff0c;包含了若干条搜索结果 3、针对每一个搜索结果&#xff0c;都会包含查询词或者查询词的一部分或者和查询词具有一定的相关性 4、每个搜索结果包含好几个部分&…

5 新的关键字

动态内存分配 回想C语言中&#xff0c;动态内存是怎么分配的&#xff1f;通过C库里面的malloc free去进行动态内存分配。 C通过new关键字进行动态内存申请&#xff0c;动态内存申请是基于类型进行的。 delete 关键字用于内存释放。 //变量申请 type* pointer new type; dele…

TDengine 与煤科院五大系统实现兼容性互认,助力煤矿智能化安全体系搭建

近日&#xff0c;涛思数据与煤炭科学技术研究院&#xff08;以下简称煤科院&#xff09;已完成数个产品兼容互认证工作&#xff0c;经双方共同严格测试&#xff0c;涛思数据旗下物联网、工业大数据平台 TDengine V3.X 与煤炭科学技术研究院旗下煤矿复合灾害监测监控预警系统、煤…

css渐变背景,linear-gradient()线性渐变和radial-gradient()径向渐变

嗨&#xff0c;大家好&#xff0c;我是爱搞知识的咸虾米。 许多APP、小程序、网站等都喜欢采用渐变色背景&#xff0c;这样做不但可以增加设计感&#xff0c;而且能提升品牌辨识度。 所以&#xff0c;今天使用css的线性渐变和径向渐变&#xff0c;给大家将这几种不同类型的渐变…

web 服务

作业&#xff1a;请给openlab搭建web网站 网站需求&#xff1a; 1.基于域名 www.openlab.com 可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c; 1、基于 www.openlab.com/student 网站访问学生信…

适配器模式 rust和java的实现

文章目录 适配器模式介绍何时使用应用实例优点缺点使用场景 实现java实现rust 实现 rust代码仓库 适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能…

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力

作为一款制造业和工业互联网&#xff08;IIOT&#xff09;高级分析软件&#xff0c;Seeq 支持在工艺制造组织中使用机器学习创新的新功能。这些功能使组织能够将自己或第三方机器学习算法部署到前线流程工程师和主题专家使用的高级分析应用程序&#xff0c;从而使单个数据科学家…

腾讯云5年云服务器还有吗?腾讯云5年时长服务器入口在哪?

如果你是一名企业家或者是一个热衷于数字化转型的创业者&#xff0c;那么腾讯云最近推出的一项优惠活动绝对不会让你无动于衷。现在&#xff0c;腾讯云正在大力推广一项5年特价云服务器活动&#xff0c;只需要花费3879元&#xff0c;你就可以享受到腾讯云提供的优质服务。 腾讯…

如何保护电动汽车充电站免受网络攻击

根据国际能源署 (IEA) 的一份报告&#xff0c;如今&#xff0c;全球销售的汽车中约有七分之一是电动汽车。虽然这对环境来说是个好消息——有可能使占总碳排放量16% 的道路交通脱碳——但这也带来了针对电动汽车充电站的网络攻击日益严重的威胁。 电动汽车充电站、数据流网络和…

Python中的数据增强技术

使用imgaug快速观察Python中的数据增强技术 在本文中&#xff0c;我们将使用imgaug库来探索Python中不同的数据增强技术 什么是图像增强 图像增强是一种强大的技术&#xff0c;用于在现有图像中人为地创建变化以扩展图像数据集。这是通过应用不同的变换技术来实现的&#xf…

在 SQL 中,当复合主键成为外键时应该如何被其它表引用

文章目录 当研究一个问题慢慢深入时&#xff0c;一个看起来简单的问题也暗藏玄机。在 SQL 中&#xff0c;主键成为外键这是一个很平常的问题&#xff0c;乍一看没啥值得注意的。但如果这个主键是一种复合主键&#xff0c;而另一个表又引用这个键作为它的复合主键&#xff0c;问…

Android R.fraction

来源 我是在看Android10原生代码&#xff0c;绘制状态栏蓝牙电量相关类中第一次看到R.fraction的&#xff0c;如类BatteryMeterDrawable <fraction name"battery_button_height_fraction">10%</fraction> mButtonHeightFraction context.getResources(…