这次做一个复盘贴,刚刚参加完这次的华为杯数学建模,由于是2020级研究生所以允许跨校组队,所以选择的队友是两个外校的,沟通方面第一天至第三天每天在微信使用语音通话汇报一次进度,第四天至第五天腾讯会议共享桌面进行论文修改。
比赛时间 2020年9月17日8:00 -- 2020年9月21日12:00
第一天
9月17日上午8:00 比赛试题解压密码分发
比赛试题会在开赛前一天分发,但是解压密码并不会即时分发,而是在等到第二天早上八点。试题的信息是百度网盘链接,推荐提前下载好,不然下载需要较长时间。队友两个人都在第一二节有课,所以讨论时间推迟到了中午十一点半,题目信息如下:
A题:华为题_芯片相噪算法设计
B题:汽油辛烷值建模
C题:面向康复工程的脑电信号分析和判别模型
D题:无人机集群协同对抗
E题:能见度估计与预测
F题:飞行器质心平衡供油策略优化
6个题目都看了并且思考过,在第一遍看完所有的支持材料后,考虑到队友参赛经验较少,所以初步选定的题目是B题,D题,E题。下面对各个题目说一下自己的理解:
A题华为题确实很值得,基础概念很多,而且理解起来也需要较长时间,第一时间觉得较难,不太可做。
B题感觉就是一道大数据题目,和今年的本科生国赛题目C题类似,也是使用主成成分分析得出10个主成分,然后数据清洗求解之类的。
C题脑电工程题目,题目中说了有卷积神经网络的知识,但是看不懂,并且未使用神经网络做过类似这方面的内容,所以作罢。
D题在知网上搜了些论文后,觉得方法很多,很全面,可以做,殊不知做的过程中极其自闭,接下来会详谈。
E题也是深度学习方法,但是专业领域不太相关,所以也选择了放弃。
F题个人觉得是一道物理题,质心求解问题,联系到供油策略。物理题感觉极其缺少空气动力学,相关物理知识的支持,所以也选择了放弃。
十一点开始和队友讨论,在和队友说了自己的意见后,队友比较信任我所以也决定选择D题,殊不知这就是噩梦的开始,接下来四天都被这个问题想的头疼。
中午十二点半吃完饭,回到寝室开始思考问题的解法。
在知网上找了几篇论文后,发现在无人机拦截方面,对于无人机群的飞行轨迹确定普遍倾向于使用群体智能算法,但是第一,二,三问对于蓝色方的突防飞机都是一架,而红色方的无人机群都是五架,所以对于蓝色方突围的策略陷入了沉思。于是开始整理题目中的条件,希望找出一些思考突破点。
在当天下午16:00左右,从第二问中得到了启发。第一问求取的是蓝色方突围的最优策略,第二问询问的是蓝色方突围成功的最短时间,既然如此,何不将最短时间作为突围的最优策略,同时为了确保蓝色方飞行器的突围时间最短,于是设定在第一问中,蓝色方飞行器的飞行轨迹只会进行直线飞行,所以会出现无法突围的区域和必定会突围的区域,这样第一问的求解就化简成了一个单纯的物理问题,只需列几个方程即可求解。当天晚上22:00讨论了思路,得到队友的一致肯定后,决定开始进行编程求解,同时确定明年的目标,完善第一问以及开始查阅第二问,第一天的任务就此完成。
第二天
9月18日上午8:00 前往校医院体检 由于种种自身原因,11:00回到寝室开始编程求解,第一问的求解代码如下:
Problem1.cpp
//问题一求解 角度angle是与水平面的角度 输出结果大于L纵深说明无法突围 小于则说明可以
#include <iostream>
#include <math.h>
using namespace std;
//定义圆周率常数PI
const double PI = 3.1415926;
//垂直高度距离
const int Height_ver = 20000;
//无人机A的飞行速度
const int Speed_A = 200;
//无人机B的飞行速度
const int Speed_B = 250;
int main() {
double limit_distance = INFINITY;
//垂直飞