该比赛已于4.18日9点结束,本篇博客是我参赛结束或的记录,代码均为原创,请勿抄袭!!!
如有疑问,请私信作者或在评论区。
第一次参加数学建模比赛是深圳杯练手,当时和韦哥,马总一起为了国赛练手,毫无任何建模知识的人选择了比较难的与机器学习相关的“羊犬逃逸”问题。
之后参加建模国赛(我作为建模手),选择的是数据处理方面的优化问题,最终通过线性规划和多目标规划等模型解出了比较靠谱的优化方案,获得了省一。
上学期(大三上),选修了数学建模和MATLAB两门数学建模的基础课程,才更加的了解到自己拿到的一个实际的应用问题产生的灵感怎么用具体的方法和技巧去实现。
我也算是经过“机缘巧合”了解到MathorCup比赛,高校建模比赛(“小国赛”)。作为一个熟悉点建模,熟悉点编程,主攻论文的热爱数学建模的人,还是耐不住“手痒”,凑齐队友,开始比赛。这次我选择的是D题(18万数据的处理题)。
本题主要研究基站选址规划和区域聚类问题。综合考虑减少成本、提高网络覆盖业务量等要求,增设新基站并合理布局满足移动网络通信需求。通过某实际覆盖网络区域的182807个弱覆盖点和1474个现有基站的数据分析与聚类,构建遗传算法模型,制定相应的目标体系和约束条件,调整相关参数,使用 MATLAB、RStudio等软件求解,得到该区域内新站址的最优规划方案。
大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
在一个实际网络中,由于通信带宽增大导致基站覆盖范围减小,在给定区域内出现许多弱覆盖区域,要求在业务量优先、成本减少条件下规划建设新基站解决该网络中的弱覆盖问题。具体问题如下:
1、附件1给出确定区域中的弱覆盖点的坐标和业务量信息,附件2给出区域内已有基站的坐标信息,考虑基站类型和站址之间距离门限条件,在给定区域进行站址规划,达到规划基站解决若覆盖点业务量满足总业务量的90%。
2、结合实际基站覆盖状况,使基站由圆形覆盖变成扇形覆盖,扇形覆盖包含三个扇区及对应扇区主方向,在满足扇区间角度约束和扇区覆盖递减条件下,结合问题一条件,给出最优站址、扇形角度、最大解决弱覆盖点的总业务量比例。
3、使用区域聚类技术将所有弱覆盖点进行聚类,划分多个弱覆盖区域,并降低方法的总时间复杂度。
本次D题真的在第一问卡了好久,并不是没有思路,而是很难合理的实现思路。首先因为本题的数据量太大,所以很多算法直接使用都会让你的代码“崩”,我们想了许多办法(筛选小业务量数等),最终选择了聚类。相当于数据结构的分治思想。
182807个弱覆盖点和1474个现有站点绘制如图。可以看到弱覆盖点的分步呈现一定的聚集性,所以聚类算法是可行的,而且数据点的密集程度高且不均匀。
参数说明:
(1)minPoints—最小圈住点的个数,单弱覆盖点(距离其他若覆盖点距离很远)我不认为它是一个异常点。大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
(2)epsilon—聚类半径,即聚类内弱覆盖点间距离阈值。宏基站的覆盖范围为30,微基站覆盖范围为10,聚类之后的每个类中考虑规划新建基站坐标和基站类型,可以在每个类中建多个微基站与宏基站,所以聚类半径设置为宏基站范围,保证聚类不影响基站类型的选择。
DBSCAN聚类MATLAB代码
聚类结果
1.MATLAB 代码实现
遗传结果
再次说明:
本篇博客中得部分仅仅是我参赛论文中的一小部分,本篇博客主要内容是记录,和简单的总结心得,等五月份比赛结果出来后,会在本篇博客后附上我的论文和代码链接,供大家下载。谢谢大家的理解!!!
链接:https://pan.baidu.com/s/1N5VGs2A37VfWFvtduDDIAg
提取码:nz4b
下面从几个方面来总结一下自己比赛结束的心得。
从第一次参加数学建模比赛开始,每次的论文基本最终都是由我去主要整合和陈述,平时的大大小小的课程设计小组,我也经常在报告和论文中承担比较重要的角色。
我知道很多同学或者说和我有相同学习情景的朋友,不喜欢或者不擅长论文或报告的撰写,但是他们的代码水平要比我好很多。我并不是说自己论文水平有多么好,毕竟咱也还不是研究生,那比起每天搞论文的大佬还是天壤之别,但我对写报告论文至少有比较浓厚的兴趣,和大家分享一下我自己的经验。
论文能力,文书能力这样的写作能力,往往在很多事情的书面沟通和细节处理上起关键的作用。我自己是在学生会的三年里有深切感受倒文书工作的重要性,很多时候要发布的新闻稿或者文案,都是要给全院,全校甚至更多人看的,并不是只有自己明白自己的意思就可以,这需要积累,也需要细心。除了工作,在计算机这个行业,有必要,也必须有一定的论文能力,你需要把自己的编程思想陈述明白,把自己的代码写成规范性的文档。才会有更多人明白你做了什么。
让程序员憋屈的一点是,明明写了代码跑出结果,却因为表述不明白被质疑、被诽谤、被非议、被黑幕。(虽说清者自清,无需解释。但我要说明白,讲清楚,守护好属于自己的智慧的结晶。)
其实这次比赛给我感触最深的是,我发现自己的抗压能力显著提高了。抗压能力,对于每一个生活着的人,极其重要。我这里仅仅谈作为计算机专业学生在抗压的经验和处理。
很多事情都是残酷的,天赋,就是残酷的。学计算机的人可能在大学感触就会很深,有些人写代码,写算法,就是一遍过,没有bug;但有些人就是简单的代码,并且这些人也是了解算法的思想,但就是写不对代码,bug很多(用一个bug去解决另一个bug)。当然这个是可以通过大量的刷题去弥补的,但是要明白一个道理。
如果你发现你需要通过比别人成千上百倍的努力去达到别人擅长的领域,那你会不会怀疑自己不适合在这个领域。
抗压能力在这个时候就很重要,如果你能承受住自己内心对自己的不断怀疑、冲击,那么你的抗压能力足够优秀。
这次比赛我感受到自己做不出来D题,因为确实题目数据量太大,而且我的队友对于编程的熟练度不高,我需要一个人去对抗核心的算法,并且承受自己内心的怀疑,但我从第一天晚上、到第二天晚上、再到第三天晚上(比赛一共四天),我越来越坚定,也越来越放松。
每一件你想做到的事情,都要当作一份荣耀。
这是我自己总结的,与大家共勉。
身体健康很重要!!!这次比赛我就拖着不舒服的身体去持续了四天的高强度比赛,产出的效率肯定比现在我身体健康状况下写博客的速度要慢许多。
对于我们可能未来十年二十年都会面临着高强度的科研、敲代码等高强度的工作,保护好自己身体健康是很重要的,没有身体健康,你没有了去写出好的论文,搞出好的算法的本钱。
大家身体都要健健康康!!!
结尾感谢:建模队友(爱吃桃子、蒙眼的兔子)大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
还木有评论哦,快来抢沙发吧~