2021 年高教社杯全国大学生数学建模竞赛题目D题连铸切割的在线优化

2021高教社杯全国大学生数学建模竞赛D题

关键词:连铸切割 切割损失 整线性规划 平均绝对偏差 最优方案

D 题 连铸切割的在线优化

     连铸是将钢水变成钢坯的生产过程,而优化切割是连铸的关键技术之一,直接影响了钢坯的利用率和用户的满意度。本文从尾坯切割损失、满足用户目标值两方面研究连铸的最优切割方案,并制定了出现异常情况下的实时最优切割方案。

     问题1:在满足基本要求和正常要求的前提下,首先,证明了关于尾坯长度和用户目标范围实现切割损失为0的充要条件。考虑实际生产和测量都建立在一定精度之上,取定精度为0.1米,将4.8米~12.6米划分为79种长度规格; 根据参数与要求、用户目标值范围等条件,建立基于79种长度规格的切割损失最小整线性规划模型。进一步,给出了切割总损失最小值函数f(L)关于尾坯长度L的函数解析表达式。其次,将整线性规划模型所求的切割损失最小值固定,构造平均绝对偏差来刻画满足用户目标值,在切割损失最小的前提下,建立了最小平均绝对偏差模型并最终求得最优切割方案。结果表明,在切割损失最小的前提下,问题1中给出的12个尾坯最优切割方案的平均绝对偏差在0.16~0.5米之间。

     问题2:考虑结晶器异常会出现报废段,基于问题1的模型和结果,本文分“尾坯+0.8米废坯”、  “部分长度(≤0.8米)废坯+尾坯+0.8米废坯”、  “尾坯1+0.8米废坯+尾坯2+0.8米废坯”等三种讨论了实时初始最优切割方案和调整后最优切割方案。结果表明,9段异常时刻初始切割方案总共调整了8次,声明不做调整0次; 总的切割损失为16.6米

     问题3:结晶器出现异常的时刻都与问题2相同的条件下,分别求出了用户目标值为8.5米和11.1米的实时初始最优切割方案和调整后最优切割方案。用户目标值为8.5米初始切割方案总共调整了8次,声明不做调整0次,总的切割损失为8.8米; 用户目标值为11.1米初始切割方案总共调整了8次,声明不做调整0次,总的切割损失为17.1米。

二. 模型假设

1. 假设本文中连铸设备钢坯切割的精度为0.1米;

2. 假设t=0表示带有坯壳的钢水刚从结晶器中心出现;

3. 假设未说明结晶器异常时,连铸设备正常生产钢坯:

4. 由于报废段长度为固定值,本文切割损失仅为正常钢坯的切割所产生的报废钢坯长度,不计入报废段长度;

5. 假设温度、压力恒定,切割设备能正常进行,不存在漏钢现象;

6. 不考虑切割方案调整所需的时间。

三. 符号说明

符号

说明

单位

L

尾坯长度

Y

切割损失

 Ymin

最小切割损失值

d

用户的目标值

t

钢水在结晶器中心的时间

分钟

x₁

第i种规格的板坯数量

z

用户目标值的平均绝对偏差

*其他未标明符号在文中说明

四. 问题分析

针对问题1,要给出尾坯的最优切割方案,首先对已知报废长度进行规律探索,初步推论出理论切割总损失最小值与尾坯长度的关系。接着,建立两阶段模型求出尾坯切割最优方案。其中,第一阶段模型求解切割损失的最小值; 第二阶段模型寻找尽可能满足用户目标值的切割方案。最后,发现实际最小切割损失与理论最小切割损失完全相同,说明本文找到最小切割损失与尾坯长度的联系。

针对问题2,在两段报废段之间的正常钢坯可视为问题1中的“尾坯”。由于结晶器异常时常发生,本文将分三种情况讨论尾坯与废坯的连接类型,并给出相应的切割算法。第(1)小问要给出钢坯首次初选报废段的实时切割方案,由题目可知结晶器首次出现异常的时刻为0.0,因为假设未说明结晶器异常时,钢坯中不存在报废段,按照用户目标值9.5米进行钢坯的切割。第(2)小问要给出新一段钢坯和当前段钢坯的调整方案,

按照三种类型的对应算法进行求解。

针对问题3,在假设实时最优切割方案和结晶器出现异常的时刻都与问题2相同的条件下,要给出用户目标值分别为8.5米和11.1米的最优实时切割方案。直接使用问题2的算法,即可求出问题3中(1)(2)小问的实时最优切割方案。

五. 模型建立与求解

5.1模型的准备

连铸停浇时,将必然会产生尾坯,因此在实际生产中需要对尾坯进行切割。切割就可能会产生报废钢坯(即切割出的长度不满足用户的目标值范围),为使报废钢坯的长度尽可能的小,首先讨论钢坯报废长度为0的条件。设尾坯长度为L,用户目标范围为[a,b],若L/a或I/b恰好为整数,那么可将尾坯平均切割长度为a或b,从而报废长度为0。因此,下面将讨论L/a,L均不为整数时,报废长度为0的充要条件。

定理1:在钢材连铸切割中,若尾坯长度为L,用户目标范围为[a,b],且a≠b。若                   L,L与均不是整数,那么报废钢坯长度为0的充要条件是            L-|b|≥1,

证 明:

(1) 充分性证明。

   L 将尾坯平均切割为       段,每一段的长度为        LLa,     LaLa,可得   LLLLa,

另一方面,                          L≡La5)L+1<Lb=b。

因此,每一段长度都在[a,b],符合用户目标范围,报废钢坯长度为0。

(2) 必要性证明。

若报废钢坯长度为0,则可设尾坯长度为L被切割为                       L1,L2,⋯,Ln,   a≤b1b2≤⋯≤Ln≤b,      na≤∑i=1nL4≤nb,  又由于      LLb均不是整数,可得 na<L< nb, 即有       Lb<n<La

因此  La≥n,|Lb|≤n-1, 即有  La-|Lb|≥1,

综上所述,报废钢坯长度为0的充要条件是           LM-|b≥1,

由于                           因此,若                的值不满足定理1中 |La-|Lb]≥1的条件,只可能      |La]-|Lb|=0,  由于定理1给出的是充要条件,因此可以得到下述推论。

 

推论1:在钢材连铸切割中,若尾坯长度为L,用户目标范围为[a,b],且a<b。若                      L,I//s均不是整数,且                    该尾坯切割后报废钢坯长度必大于0。

.2 问题1的求解

实际生产过程和测量工作总是建立在一定的精度之上。根据问题1给出的数据,我们不妨假设该连铸工艺切割的精度为0.1米,在此基础上建立模型寻找最优切割方案。由于切割方案要优先考虑切割损失,在相同的切割损失下才需要尽量满足用户的目标值; 因此,本文将分别建立两阶段模型:第一阶段模型,根据参数与要求、用户目标值范围等条件建立切割损失最小模型; 第二阶段模型,在切割损失达到最小值的前提下,寻找尽可能满足用户目标值的切割方案,建立满足用户目标值最优模型。

5.2.1切割损失最小模型的建立

根据基本要求,要将在线切割后的钢坯运走,切割出的长度值必须在4.8~12.6米之间.我们已经假定连铸工艺切割的精度为0.1米,因此,尾坯只能被切割成4.8米、4.9米、5.0米、⋯⋯、12.6米共79种不同长度规格. 设x₁表示尾坯被切割出第i种长度规格数,其中i=1,2,……,79.假设尾坯长度为L,由于被切割后尾坯总长度仍保持不变,因此有:

 t=1m4.8+0.1i-1=L

问题1中,用户的目标值范围为9.0~10.0 米之间,因此,9.0米以下长度规格及10.0米以上长度规格均产生切割损失。其中:

(1)9.0米以下长度规格的切割损失为:         i=1424.8+0.1i-1xi:

(2)10.0米以上长度规格,超过10.0米的部分要离线切下报废,因此10.0米以上长度规格的切割损失为:      j=1260.1j⋅x3.

因此,长度为L的尾坯被切成79种不同长度规格后,其切割总损失量为:

 Y=∑i=1424.8+0.1i-1xi+∑j=1260.1j⋅x83+

基于以上分析,我们建立以下切割损失最小的整线性规划模型:

5

 minY-∑i=14248+0.1i-1xi+∑i=1260.1j⋅x33,                (1)

 s.t.∑t=1m4.8+0.1i-1=L                                  (2)

z₁∈N          i=1,2,…,79

下面对上述建立在0.1米精度上的整线性规划模型的求解结果进行分析和检验。问题1中用户目标值为[9.010.0],假设尾坯长度为L,切割总损失最小值为f(L)。对于尾坯长度L的不同取值范围,根据定理1,从理论上构建切割总损失最小值f(L)的解析式,具体分15种情况讨论:

(1)在 L∈[9,10]∪[18,20]∪[27,30]∪[36,40]∪[45,50]∪[54,60]∪[63,70]

∪[72,80]∪[81,+∞]时, f(L)=0

(2)在L∈(80,81)时, f(L)=L-80                   (3)在L∈(80,81)时, f(L)=L-80

(4)在L∈(70,72)时, f(L)=L-70                   (5)在L∈(60,63)时, f(L)=L-60

(6)在L∈(60,63)时, f(L)=L-60                   (7)在L∈(50,54)时, f(L)=L-50

(8)在L∈(40,45)时, f(L)=L-40                   (9)在L∈(30,36)时, f(L)=L-30

(10)在L∈(20,27)时, f(L)=L-20                   (11)在L∈(14.8,18)时, f(L)=L-10

(12)在L∈(13.7,14.8]时, f(L)=4.8                (13)在L∈(12.6,13.7]时, f(L)=L

(14)在L∈(10,12.6]时, f(L)=L-10                (15)在L∈[4.8,9)时, f(L)=L

对问题1给出的12种不同长度的尾坯,根据给出的切割总损失最小值f(L)解析函数,可以计算其切割总损失最小的理论值。将该理论值与建立在0.1米精度上的整线性规划模型求出的最小值进行对比,如下表1所示。

表1 不同尾坯长度的最小损失值对比表

尾坯长度

整线性规划所求损失最小值

最小值函数f(L)计算的理论值

109

0

0

93.4

0

0

80.9

0.9

0.9

72

0

0

62.7

2.7

2.7

52.5

2.5

2.5

44.9

4.9

4.9

42.7

2.7

2.7

31.6

1.6

1.6

22.7

2.7

2.7

14.5

4.8

4.8

13.7

13.7

13.7

检验结果表明,本文建立的整线性规划模型虽然建立在一定精度之上,但模型求解结果与理论计算结果完全吻合。

6

5.2.2满足用户目标值最优模型的建立

通过上文建立的整线性规划模型,求解出了尾坯切割损失的最小值。对于整线性规划模型,切割损失的最小值是唯一的,但最优解即切割方案可能不唯一。下面将求得的尾坯切割最小值Y,固定,在此条件下寻找最满足用户目标值的切割方案。设板坯长度L,用户的目标值为d,目标范围为[a,b]:第1~79种长度规格分别对应长度4.8米、4.9米、5.0米、……、12.6米, 2₄表示尾坯被切割出第i种长度规格数,其中i=1,2,……,79,设长度a、b分别对应第k₁和第k₂种长度规格,则显然有:

面构建平均绝对偏差来刻画满足用户目标值的情况。由于不在目标范围的长度规格全部报废而不提交给用户,只考虑目标范围内的钢坯满足用户目标值的情况。但需要注意的是,按照第一阶段模型结果,超过目标值范围上限值b长度规格的仍离线切割成长度b提交用户,因此仍需考虑这些长度规格带来的偏差。

第k₁~第k₂种长度规格的绝对偏差和为:        n=0kxk+n|a+0.1n-d|;

 k₁+1~第79种长度规格的绝对偏差和为:         m=1mxk+m|b-d|;

因此,满足用户目标值的平均绝对偏差为:

表3 钢坯第2次出现报废段的最优切割方案

初始切

割方案

切割时间

(分钟)

70.3

79.8

89.3

98.8

108.6

118.1

127.6

切割长度

(米)

9.5+0.8

9.5

9.5

9.5

9.5

9.5

9.5

9.5

调整后

的切割

方案

切割时间

(分钟)

70.8

80.8

90.8

100.8

106.4

115.9

125.4

切割长度

(米)

10+0.8

10

10

10

4.8+0.8

9.5

9.5

9.5

切割损失: 4.8米

表4 钢坯第3次出现报废段的最优切割方案

初始切

割方案

切割时间

(分钟)

100.8

106.4

115.9

125.4

134.9

144.4

153.9

163.4

切割长度

10

4.8+0.8

9.5

9.5

9.5

9.5

9.5

9.5

10

(米)

调整后

的切割

方案

切割时间

(分钟)

100.8

106.4

116.9

127.4

137.8

148.2

159.4

168.9

切割长度

(米)

10

4.8+0.8

10.5

10.5

10.4

10.4

10.4+0.8

9.5

切割损失: 2.2米

表5 钢坯第4次出现报废段的最优切割方案

初始切

割方案

切割时间

(分钟)

137.8

148.2

159.4

168.9

178.4

187.9

197.4

206.9

切割长度

(米)

10.4

10.4

10.4+0.8

9.5

9.5

9.5

9.5

9.5

调整后

的切割

方案

切割时间

(分钟)

137.8

148.2

159.4

170.1

180.8

192.3

201.8

211.3

切割长度

(米)

10.4

10.4

10.4+0.8

10.7

10.7

10.7+0.8

9.5

9.5

切割损失: 2.1米

表6 钢坯第5次出现报废段的最优切割方案

初始切

割方案

切割时间

(分钟)

192.3

201.8

211.3

220.8

230.3

239.8

249.3

***

切割长度

(米)

10.7+0.8

9.5

9.5

9.5

9.5

9.5

9.5

9.5

调整后

的切割

方案

切割时间

(分钟)

192.3

202.1

211.9

221.7

231.4

241.1

251.6

切割长度

(米)

10.7+0.8

9.8

9.8

9.5

9.7

9.7

9.7+0.8

9.5

切割损失: 0米

表7 钢坯第6次出现报废段的最优切割方案

初始切割

方案

切割时间

(分钟)

241.1

251.6

261.1

270.6

280.1

289.6

***

切割长度

(米)

9.7

9.7+0.8

9.5

9.5

9.5

9.5

9.5

调整后的

切割方案

切割时间

(分钟)

241.1

251.6

262.1

272.5

282.9

294.1

切割长度

(米)

9.7

9.7+0.8

10.5

10.4

10.4

10.4+0.8

9.5

切割损失: 1.7米

11

表8 钢坯第7次出现报废段的最优切割方案

初始切割

方案

切割时间

(分钟)

272.5

282.9

294.1

303.6

313.1

322.6

切割长度

(米)

10.4

10.4

10.4+0.8

9.5

9.5

9.5

9.5

调整后的

切割方案

切割时间

(分钟)

272.5

282.9

294.1

305.1

316

326.8

切割长度

(米)

10.4

10.4

10.4+0.8

11

10.9

10+0.8

9.5

切割损失: 1.9米

表9 钢坯第8次出现报废段的最优切割方案

初始切

割方案

切割时间

(分钟)

272.5

282.9

294.1

305.1

316

326.8

336.3

切割长度

(米)

10.4

10.4

10.4+0.8

11

10.9

10+0.8

9.5

9.5

调整后

的切割

方案

切割时间

(分钟)

272.5

282.9

294.1

305.1

316

326

331.5

切割长度

(米)

10.4

10.4

10.4+0.8

11

10.9

10

0.8+3.9

+0.8

9.5

切割损失: 3.9米

表10 钢坯第9次出现报废段的最优切割方案

初始切割

方案

切割时间

(分钟)

341

350.5

360

369.5

379

388.5

切割长度

(米)

9.5

9.5

9.5

9.5

9.5

9.5

9.5

调整后的

切割方案

切割时间

(分钟)

340.9

350.3

359.7

369.1

378.5

388.7

切割长度

(米)

9.4

9.4

9.4

9.4

9.4

9.4+0.8

9.5

切割损失: 0米

综上,每次出现新异常均需对原切割方案进行调整。9次异常总切割损失(不计报废段自身长度) 为: 4.8+2.2+2.1+0+1.7+1.9+3.9+0=16.6 (米)。

附 录

附录1

介绍:支撑材料的文件列表

问题1的源代码

 fenduanhanshu. m

切割损失最小模型. lg4

满足用户目标值最优模型. Ig4

问题2的源代码

 main. m

问题3的源代码

 main. m

注: m 文件是 Matlab程序, Ig4 是 lingo文件

附录2

介绍: lingo代码, 作用是求解切割损失最小模型

 model:

 sets:

r/1..79/:x;1x为长度为4,4.1, ⋯⋯, 12.6米铁坯的个数;

 endsets

 data:

1=109;! 1为尾坯长度;

d=4.8;1 d为最小长度限制:

 enddata

 min=8sum(r(i)|i# le#42:(d+0.1*(i-1))*x(i))+8sum(r(i)|i# ge#54:(d+0.1*(i-1)-10

)*x(i));! 损失最小;

θsum(r(i):(d+0.1*i-0.1)*8(i)]=1;

@ for(r:@ gin(x));

 End

附录3

介绍: lingo代码, 作用是求解满足用户目标值最优模型

 model:

 sets:

r/1..79/:x;

 endsets

 data:

1=109;! 1为尾坯长度;

d=4.8;! d为最小长度限制:

 enddata

20

 min=(9sum(r(i)|i# ge#43# and#i# le#53:9abs(9.5-(d+0.1*(i-1)))^2*x(i))+(10-9.5)

*@ sum(r(i)|i# ge#54:x))/@ sum(r(i)|i# ge#43:x);|用户满意度最优:

9sum(r(1)1i#1e#42:(d+0.1*(i-1))*x(i))+8sum(r(i)|i#ge#54:(d+0.1*(i-1)-10)*x(

i))=0;!保证在损失最小的情况:

@ sum(x(i):(d+0.1*i-0.1)*x(i)]=1;

θfor(r:0gin{x});

 end

目前尚未有针对2024高教全国大学生数学建模竞赛A的具体答案解析公开发布。然而,可以基于以往的比赛经验和解方法提供一些指导性的建议。 ### 关于数学建模竞赛的一般解答流程 #### 数据预处理阶段 数据清洗和特征提取是解决任何实际问的第一步。对于数学建模中的复杂数据集,通常需要利用Python或MATLAB等工具完成初步的数据整理工作[^1]。例如,在数据分析过程中可能涉及缺失值填补、异常值检测以及标准化操作: ```python import pandas as pd from sklearn.preprocessing import StandardScaler def preprocess_data(data_path): data = pd.read_csv(data_path) # 处理缺失值 data.fillna(method='ffill', inplace=True) # 去除异常值 (假设使用IQR法) Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 filtered_data = data[~((data < (Q1 - 1.5 * IQR)) | (data > (Q3 + 1.5 * IQR))).any(axis=1)] scaler = StandardScaler() scaled_data = scaler.fit_transform(filtered_data) return scaled_data ``` #### 模型构建与求解 根据具体问背景选择合适的算法模型至关重要。如果问是关于分类或者回归预测,则可考虑采用机器学习框架如Scikit-Learn实现支持向量机(SVM)、随机森林(Random Forests)等经典算法;如果是优化类问则需引入线性规划(LP)/整数规划(IP)[^2]等相关理论和技术手段来设计目标函数并约束条件加以求解。 #### 结果验证与可视化表达 最后一步是对所得结论进行有效性检验并通过图表等形式直观呈现出来以便评审专家更好地理解整个解决方案逻辑链条。Matplotlib 和 Seaborn 是两个非常流行的用于绘制高质量统计图形库之一[^3]: ```python import matplotlib.pyplot as plt import seaborn as sns def plot_results(x_values, y_actual, y_predicted): plt.figure(figsize=(8,6)) sns.lineplot(x=x_values, y=y_actual, label="Actual Values", color="blue") sns.lineplot(x=x_values, y=y_predicted, label="Predicted Values", color="red") plt.title('Comparison of Actual vs Predicted Results') plt.xlabel('X-axis Label') plt.ylabel('Y-axis Label') plt.legend() plt.show() ``` 尽管上述内容涵盖了大部分常规比赛环节所需技能要点,但由于缺乏当前度特定主描述无法给出更精确指向性意见。因此强烈推荐参赛者密切关注官方最新动态通知获取最权威版本资料参考依据!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python算法(魔法师版)

谢谢鼓励,您为支持开源做出贡献

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值