数学建模社区-数学中国
标题:
2021长三角数学建模竞赛思路
[打印本页]
作者:
杨利霞
时间:
2021-7-19 15:58
标题:
2021长三角数学建模竞赛思路
2021长三角数学建模竞赛思路
+ ~/ u$ F9 U& O Y7 N' y1 |
* P' O7 D% y3 V& R+ k
A题 Go! Fun游长三角
$ r& _* o4 X; B: r) z4 {1 u9 P$ \
8 }* H/ E0 x) V& A+ s, S* a8 K5 m% U
- ?/ \" ~7 j; K" h
A题如果从旅游业相关企业去看,就不足为奇了,这道题是让我们分析不同类型的游客的旅行规划问题
+ c2 M; B# R! g# J: {7 F, h* \0 ~
& c- R6 |4 k: P8 K2 L4 p( g
2 L- |) n. N3 q( Q6 A
) k+ [$ z3 `: P! S2 Q) r9 N
* {2 J2 F+ O1 p
6 r* v% |9 o' w( V( i) Z
# U4 h$ ]0 t& p4 R- |' z, ]8 Q
7 y& l2 w/ |& r' i
4 h. F) ?& g: H x" @! B3 M
0 U: m* J: R0 i1 l3 V1 n& e( g
- q2 e: X Z4 g/ m) Q
! ~. f- u$ `: \
( p `: O. E8 b" a9 [+ e. A# j
6 K" z/ _, y7 D/ f! ]+ _7 ]1 d
5 N4 @2 n0 z5 u1 s) }
# b" G& z$ z L8 b7 l @
7 V- d6 Q/ J, N: H" F$ v- @: l4 E. @
首先需要爬取不同景点信息,包括经纬度,是否收费,收费的门票多少,周围酒店多少价格,都可以通过地图网页爬取数据,公众号推文有python+selenium案例不会就手动整理。为了能够做第一问,这里可以自行设置一下每个景点中需要花费的时间。
. [* o# ^9 y U- W/ P
* P. y( M. N# z- @
, ~# T2 O5 F/ R( Y
家境良好且平时学习刻苦的小李同学,现住于杭州,要到长三角旅行,杭州离上海比较近,行程定为2小时,一天旅游时间设定为8小时,当天需要返回酒店,如果当天没有足够时间去下一个景点则直接返回酒店,8小时包含回酒店所需得时间,那么第一问就可以这么做,长三角景区基本位于上海,那我们就分析上海的景区,一般旅游会综合考虑要玩的景点地理位置及酒店价格选择住宿。假设住宿不变,到了上海采用徒步的形式到达景点,一般人走路速度为1.1-1.5m/s,两点距离根据Haversine公式计算,一天吃喝按100元算。
Y Y' k! h( J* | C
+ U1 t/ \) E1 z# |8 ~8 r$ k
! A0 n1 I% b; _/ S0 ~
第一问仅考虑旅行时间,构建多目标函数,函数1为旅游景点总数最大,函数2为到景点的路上行程最小,自变量1为酒店编号,自变量2为所有景点序列,可通过randperm实现,在内循环内依次遍历randperm产生的序列,直到满足条件终止,约束条件见上一段落,最后给出一个较好的方案即可。程序中需用矩阵时刻记录参数的变化,满足终止条件就输出结果。
- L* ?- c- J: c1 d0 U' b. Q! j0 |
# L2 ~% s% c2 p! z
, O: E6 _1 x1 T! O! I
第二问,不考虑时间,只考虑旅行资金,第一问模型中删除旅行时间约束,增加约束条件为旅行资金5000元
- P2 {" o; k" Y8 y( q
! \' e. j1 n" ^! B3 p8 [6 n
) W* r5 x B0 h f; i Q# w
第三问,同时考虑旅行资金和时间再算一遍
) t9 @1 l1 r4 H1 h3 Q' L2 @
! \8 Q; j# z9 y. _ y
: w0 R& G; ]6 I2 {1 `! x! @
第四问,小李的爷爷也来旅游了,时常怀念曾经的峥嵘岁月,于是跟着小李又来了长三角旅行,总资金变多了,但每天的吃喝消费和住宿费增加了,如果是有门票的景点,费用也增加了,带入第三问模型即可。
: ?: F6 B4 A( y6 I# y% \+ p
+ Q' t4 B% F. v' B2 k# F
' ^2 Y/ J/ h2 y" o* F- N8 k
第五问,后来小李兼职了新媒体,B站粉丝数达52.5万人了,这次到长三角旅行,每天需要抽出1个小时旅行时间来更新视频,上述模型中约束条件8小时改为7小时,假设小李的初始资金为5000,视频收入在第二天到账,视频的播放量+点赞数+投币+收藏,每一万播放量考虑上点赞数+投币+收藏大概在30元左右收入,在本问可以到B站搜一下相关的景点视频,如果会爬虫的同学可以直接用程序搜集,主要抓取一些相关景点视频的播放量及up主的粉丝数,最后取平均值,按粉丝比例算一下小李如果旅游该景点的收益多少,同样的按上文模型求解,本问的区别在于小李的资金是动态变化的。
" U$ \- I; I# a+ B/ T9 v" c" z& m
' T4 W, o( o v" f, T6 t4 p" h" E, v
3 z/ s: F$ r0 }6 M4 ~/ Q1 S
+ w% Y, c- M( b; {# f0 @
/ P8 ?7 d( ?; }1 I8 U h
) A' M( Y3 x8 A
B题 锅炉水冷壁温度曲线
1 |9 a8 @( U4 P# j1 A6 x& l
; y. O* j$ [$ h4 m
7 f$ @* ?% c) d
附件1中十条曲线如下
$ J H; ?3 m m+ _5 Y0 z" B
1 r( G# |4 l1 A N; g2 y/ d
6 \/ s& x' j8 i2 x/ c
( t5 g& }1 I1 C+ y/ Z( {
* r, {0 N$ r V) L# v
# C \0 m @0 i2 U2 q" C. t
. y ?( B' l+ `! F+ |
+ J7 D" g8 M- @ a: [3 ^* B
3 z p k5 X2 \
4 h" C7 S: z+ C1 A6 a
上图代码
% L( P, p7 t! ~- m. L3 K5 u8 T
8 W+ K1 P3 e$ _, v3 l
1 A; a# n D6 ^
X=xlsread('附件1.xlsx');
+ v+ d% m2 @1 b- L8 F
figure
6 E# ~; ~' v* {9 M7 \$ D
for i=1:10
6 A$ Z4 D6 T: `
subplot(5,4,2*i-1)
& J) [8 @# c, x2 [+ N% _8 f k7 ~
plot(X(:,1),X(:,i+1))
}/ H2 d2 q% ?
title(['管道',num2str(i),'温度曲线'])
4 b1 H2 f! I) B6 Q1 B
subplot(5,4,2*i)
* M0 |8 `0 r& Z7 G: U e
histogram(X(:,i+1))
8 x8 \3 W: ?' z$ e' D$ a" n3 q
xlabel('温度值')
- O! s! N7 [" @- c0 e* [, Y8 U
ylabel('数据频数')
2 c+ v* z t: H! n' B: w3 J
title(['管道',num2str(i),'温度曲线统计'])
; F: b K7 P+ f# L
end
5 K# X1 I/ a, p( n) G% u2 Z
第一问统计数据特征,统计变量一般有方差、均值和最大最小值,也可以做下histogram统计图说明下温度主要分布情况。
1 Q, F3 [0 w6 M
# L8 q8 u8 x% P7 ?8 H
% ?: z1 Q Y H F
第二问对十个水冷壁管道的工作状态进行评价,在实际生产过程中,温度变化尽可能平稳,水冷壁温度不宜过高,根据这两个条件,可以使用第一问两个指标,方差和最大值。根据这两个条件,确定方差和最大值均是越小越好,那么从数据大小的角度将这两个指标定义为负向指标,数据归一化时则需要注意减最小还是减最大,将数据归一化至[0,1]备用,评价算法可以用因子分析、秩和比、熵权法求得权重后乘以归一化数据求和。
* U6 |( O; f, y" B
" Q: y" M# t+ x* B; C( T
) W4 V9 {) K& |; f2 r
第三问附件二中包含了111个操作变量和42个状态变量,涉及高纬度数据首先应当对数据降维,可以去看下公众号发布的主成分分析推文,最后取贡献率到刚好到95%以上的k列降维数据,注意降维数据不是指选出主要指标出来,降维数据表示的是153高维数据的投影数据,直接用这k列数据去分别拟合10个管道的温度数据,常用的回归肯定不行,这里是比较复杂的非线性拟合,可以将k列数据和某个管道温度数据先用1stopt遍历下较符合的公式,通过lsqcurvefit函数进行非线性最小二乘拟合。
9 D1 Z1 ?5 H2 }% [, x7 z x
: j( v; u* b$ p H7 z, w
! O4 S3 u/ P% B8 Z0 B
第四问找出主要操作变量,注意是111个操作变量,求10个温度数据与111个操作数据的相关性,与是个温度数据的相关性取个平均值进行比较,选出最高的介个,算法可采用余弦相似度、皮尔逊等。
1 q: x$ I4 k- @# t0 R
% ?, q5 Q5 U2 l; E0 P" {8 I2 q
* [& H' v( w- c
第五问第四问中的相关性矩阵,取与第十个管道从3172节点以后的温度数据与111个操作数据求相关性,可以选5-10个操作变量备用,拟合出一个关系式,构建一个启发式算法,目标函数1为3172节点以后的数据总下降值,目标函数2为依然高于445的数据个数,目标函数3同样也是自变量为调节的操作变量个数,目标函数4为所有调节变量总下调比例;自变量1为调节的操作变量个数,自变量2设置每个操作变量调整比例为[0-0.2],同样的对3172节点后的操作变量数据进行整体的调节,向上还是向下调节可通过rand随机。启发式算法可采用模拟退火框架和蒙特卡洛框架,外循环为个体间比较,内循环为蒙特卡洛试验,内循环根据当前的调节操作变量个数随机模拟n次变量调整比例下的函数值,也就是变量2放在了蒙特卡洛试验中,通过非支配排序选择结果最好的试验作为当前个体的变量及函数值,外循环的个体间比较也同样通过非支配排序,迭代结束,输出最优解集的parote图及排名靠前的几个方案。(算法可参照公众号算法推文)
' X) l7 W) c8 s* k9 }: M. @
————————————————
8 x" D5 m* x* \ u, |/ h) x3 v
版权声明:本文为CSDN博主「微信公众号:您好啊数模君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
7 W: y" v. g( a* A9 h
原文链接:https://blog.csdn.net/qq_39899679/article/details/117093580
, S R1 i5 o/ ?. L) z
5 h# X9 U1 _/ ?& Z( |
z6 ?. ^7 T8 N5 X
作者:
1357404354
时间:
2022-7-30 14:31
da大佬,能给一份,参考论文么,最近正在研究这次的赛题
6 a0 e' ^. F* o+ {6 W; S
作者:
1357404354
时间:
2022-7-30 14:31
; f/ h9 ?2 d# K- [ V" ?
作者:
mlgb
时间:
2022-7-31 13:39
1357404354 发表于 2022-7-30 14:31
; e) e7 Q7 j$ Z+ [
) z; D$ p7 b3 @3 A
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5