首页 > 编程语言 >编程手|美国大学生数学建模竞赛_经验分享

编程手|美国大学生数学建模竞赛_经验分享

时间:2024-02-11 19:00:14浏览次数:75  
标签:竞赛 比赛 TOPSIS -- 编程 建模 数学

坚持就是胜利,完赛就是成功!

一、前言

含金量/认可度

  • 从认可度来看

美国大学生数学建模竞赛(MCM/ICM),是唯一的国际性数学建模竞赛,由美国数学及其应用联合会主办,2024年大赛吸引了来自美国、中国、澳大利亚、加拿大、英国、印度等多个国家与地区的高校等全球众多高校在内队伍参赛。

  • 从创办时间来看

美赛分为MCM和ICM,MCM 始于 1985 年,ICM 始于 1999 年,单从举办时间来看,影响力更强。

  • 从参赛人数来看

2022年美国大学生数学建模竞赛MCM参赛队伍总数15105支,ICM参赛队伍总数为12100支,累计有27205支队伍参赛,预计接近8万人参加美赛[1]。

网上流传的梗图
网上流传的梗图

Anyway,虽然美赛现在不在中国大学生竞赛榜单赛事中,但是很多学校和企业还是认可这个竞赛的。并且如果你准备出国深造,这个比赛可能是申请中认可度相当高的一个比赛了

二、比赛过程

参赛网址 and 比赛报名

比赛官网:https://www.comap.com/contests/mcm-icm

比赛赛题:

https://www.contest.comap.com/undergraduate/contests/mcm/previous-contests.php比赛报名:

由于我是编程手,对于比赛的报名与最终的提交不是很熟悉,因此引用学校的文件简述

报名流程[2]
报名流程[2]

成员组成与分工

美赛要求参赛成员 <= 3 人。但是一个人做实在是难度太高,建议还是三个人组队一起参加,这样获奖率最高。

比赛较为常见的分工是“建模手”+“编程手”+“论文手”

比赛分工参考[3]
比赛分工参考[3]

赛前准备

赛前可以把可能需要用到的软件安装起来

比赛中可能需要用到的软件[4]
比赛中可能需要用到的软件[4]

我们团队在比赛中使用的工具(主要介绍编程手内容):

  • 编程手

    • Matlab R2021a、Pycharm (Python 3.10) -- 代码编写

    • SPSS(IBM SPSS Statistics 24) -- 本地进行数据处理,没什么用,界面古老,想使用数学模型好麻烦,没有深入研究

    • SPSSPRO -- 在线网站来使用数学模型处理数据,但是必须要导入数据才能处理与分析,因此导致了很多人卡在了第一步:求数据,而忽略了某些题目没有找到数据的情况下可以用模拟的数据(设置初始的初始参数【超参数】就能在本地用代码运行处理数据)

    • ChatGPT4 -- 阅读题目,Debug

    • Echarts -- 阿里开源的数据绘图网站

  • 共同使用

    • 飞书 -- 用来在线写中文内容

    • 亿图图示、Canva可画 -- 用来画精美的图

备赛中的一些疑问

赛前需要模拟做题吗?

  • 非常需要,建议至少模拟一次!团队一起进行赛题的阅读,思考与查找资料。可以阅读O、F、M奖论文(主要以O奖为主),尝试完整模仿出符合要求的论文。目的主要是为了跑通流程,查漏补缺,通过模拟来发现自己的不足,从而进行针对性学习。
    Remark:
    1. 一定不要盯着一篇论文,然后想着按照它的思路来复现。一定不要轻易尝试复现O奖以下的论文的思路!!!因为美赛很多人都是口水建模,做出来的图的效果和陈述很难完全对应。按照他们的思路自己复现难度也非常高,除非你能找到这篇论文开源的的代码。
    2. 并且很多时候一些指标的选取取决于你所找到的数据,而不是根据别人的论文的指标去找对应的数据,如果这样你很有可能找不到

编程手主要需要掌握哪方面的编程知识?

  • 建议最好能掌握Python的语法,因为我认为现在的人工智能辅助编写代码的效率 Python >> Matlab。Python需要掌握的知识包括但不限于:

    • 如何导入库(import ...)

    • 能看懂函数,以及知道如何调用

    • 知道如何注释语句,如何输出

    • 赛前准备好一些基础的模型与其对应代码,弄清楚模型的输入是什么,输出是什么,能解决什么问题,优劣势是什么

人工智能时代,如何使用AI来辅助编程的?

  • 以我使用的官网ChatGPT4为例,可以使用如下提示词

提示词在数模加油站[5]的基础上进行修改

用到的GPT4均为在GPTS Store中查找的的微调模型

Consensus

GPTS - Consensus
GPTS - Consensus
  • 我想了解TOPSIS理想解法,请向我介绍,我只想知道这个模型能解决什么问题,输入什么,输出什么

  • 根据这个模糊评价法的python算法模板,为我生成一个满足这个代码的数据集用来让我运行程序学习。请尽量不要修改源代码,如有修改,请告知

输出示例:

TOPSIS (Technique for Order Preference by Similarity to Ideal Solution) 是一种多属性决策技术,用于评估替代方案并找到理想解决方案。它的基本原则是所选择的方案应该与正理想解(最佳方案)的距离最短,同时与负理想解(最差方案)的距离最远。该方法在不同行业中得到了广泛应用,例如在制造业、医学、软件效率优化等领域。

TOPSIS 模型能解决的问题包括:

  • 在多个替代方案中选择最佳方案。

  • 综合评估不同方案的性能或优势。

  • 结合定性分析和定量分析进行决策。

TOPSIS 模型的输入主要包括:

  • 多个评价指标或标准。

  • 针对每个替代方案的各指标评分或数据。

TOPSIS 模型的输出是:

  • 每个方案相对于理想解的接近程度。

  • 基于这些计算的方案排序(根据理想解的接近程度),从而确定最佳方案。

以下是一些具体应用案例的研究论文:

  1. 在电火花线切割加工中,应用TOPSIS方法解决多标准优化问题 (Gadakh, 2012)

  2. 介绍了改进的TOPSIS方法及其在医学领域的应用,解决了传统TOPSIS方法的局限性 (Wang, Ren, Chen, & Sun, 2013)

  3. 介绍了TOPSIS方法在煤炭混合优化中的应用,有效结合了定性分析和定量分析 (Dong-lin, 2008)

  4. 应用TOPSIS方法优化汽车售后服务供应商的性能评估 (Xie, Zhu, & Chang, 2013)

总结来说,TOPSIS方法是一种有效的多属性决策工具,能够在多种场景下应用,帮助决策者从多个备选方案中选择最佳方案。

Grimoire

GPTS - Grimoire
GPTS - Grimoire
  • 接下来你将作为我的美国大学生数学建模竞赛的比赛指导老师,为我提供比赛思路,我会先把赛题发送给你,请先帮我梳理题目,并给我题目的翻译与要求

  • 接下来你将作为我的美国大学生数学建模竞赛的比赛指导老师,为我提供比赛思路,我会先把赛题发送给你,请先帮我梳理题目,给我题目的主要内容与要求(使用英文),并在最后给出中文翻译

  • 请根据赛题,帮我分析问题1,提供数学建模思路

  • 请根据你的思路建立具体的用数学语言描述的模型,要求尽可能的详细

  • 请再给出模型对应的Python代码

在比赛中没有思路怎么办?

早上起来看到赛题的中文翻译后你就明白了

所有的模型都是用的现有的代码,将“毛坯房”装修为“精装房”

2024A_我们最后解题的代码目录
2024A_我们最后解题的代码目录

完赛

官网提交+邮件之后,四个✓ + Received 就大功告成啦!

比赛会在四月底左右公布成绩

提交页面
提交页面 提交论文的缩略图
提交论文的缩略图

三、比赛收获

  1. 面对如比特币、光污染、生物入侵的现实问题,明白了如何从数学的角度进行简化与建模,真正尝试解决

  2. 进一步了解了科研画图的进阶技巧

    a. 流程图 and 插图:亿图图示

Our Work_亿图图示
Our Work_亿图图示 优劣势_亿图图示
优劣势_亿图图示

b. 表格:Canva可画

数据支撑_Canva可画
数据支撑_Canva可画

c. 曲线图折线图等:Echarts 、Python seaborn库

  1. seaborn库超级好用,增加两行代码,出图就能使用seaborn库的预设风格,看着会"高级"一些
import seaborn as sns

sns.set()
默认
默认 seaborn
seaborn
  1. 一段难忘的合作经历

四、参考资料

[1] 网易. 美赛春季赛含金量怎么样?. 2023年3月6日, https://www.163.com/dy/article/HV5QV48S05530N05.html.

[2] 苏州大学_王奎指导老师团队_2024报名步骤.pdf

[3] 数模加油站. 2-1 数学建模如何分工合作让效率翻倍_哔哩哔哩_bilibili. https://www.bilibili.com/video/BV1mC4y1S7wC/

[4] 数模加油站. 2-1 数学建模如何分工合作让效率翻倍_哔哩哔哩_bilibili. https://www.bilibili.com/video/BV1mC4y1S7wC/

[5] 数模加油站. 3-1 如何利用ChatGPT辅助数学建模_哔哩哔哩_bilibili. https://www.bilibili.com/video/BV1mC4y1S7wC/

标签:竞赛,比赛,TOPSIS,--,编程,建模,数学
From: https://www.cnblogs.com/tiramisu-xs/p/18013448

相关文章

  • 考研失败如何快速找到编程工作?
    考研成绩马上就要出来了,但是按照往年的录取情况,以及自己的考试表现来预估的话,相信大部分人心里早已有了答案。能上岸的同学还好,接下来几年继续自己的求学之后就好。但对于不能上岸的同学来说,已经到了不得不为自己将来考虑的时候了。那么问题来了,之前一直在忙考研的事情,就业的知......
  • scratch编程作品-龙年发大财
    作品介绍:龙年欢歌而来,带着满满的希望与勃勃生机。愿小虎鲸Scratch资源站激发您编程之路的无限灵感,让每一天都充满探索与创造的喜悦。在这吉祥如意的年份里,愿您的每一份耕耘都换来丰收的喜悦,每一个梦想都渐渐成为现实。愿您的心灵如同翱翔天际的龙,自由自在,无惧挑战。愿您的生活绚......
  • Java并发编程-CompletableFuture(上)
    大家好,我是小高先生,这篇文章我将和大家一起学习Java并发编程中很重要的一个类-CompletableFuture。 在Java的并发编程领域,Future接口一直扮演着关键的角色,它定义了一组与异步任务执行相关的方法,包括获取异步任务的结果、取消任务执行以及检查任务是否已完成等。然而,随着业务场......
  • Java并发编程-CompletableFuture(下)
    大家好,我是小高先生,书接上文,我们继续来学习CompletableFuture。上文我们讲了基础装Future是如何升级为神装CompletableFuture以及如何购买CompletableFuture,接下来我们一起来学习如何在战斗中使用CompletableFuture。CompletableFuture的基本使用CompletableFuture的实战案例C......
  • A030 《花样摩天轮》编程 源码
    一、课程介绍本节课将复习函数的相关知识,结合while、动画实现一个转动的摩天轮。二、单词卡park[pɑːrk]公园box[bɑːks]箱子draw[drɔː]画三、小试牛刀3.1源码操作编写代码,画出一棵松树。importturtlep=turtle.Pen()turtle.bgpic('trunk.gif')deftree(x,......
  • 新年恭喜发财-scratch编程作品
    程序说明:《新年-恭喜发财》是一个基于Scratch平台制作的动画贺卡项目。该项目通过编程和艺术设计,展现了浓厚的中国新年(2024年为龙年)氛围,以及传统的恭喜发财祝福。动画中包含有喜庆的一家人、鞭炮、福字、灯笼等春节元素,以及寓意吉祥和财富的动画效果。此项目不仅可用于学习编程,还......
  • 滑块解锁-scratch编程作品
    程序说明:《滑块解锁》是一款基于Scratch平台制作的益智类小游戏。游戏中存在多个黄色滑块阻挡红色滑块通往出口的路径。玩家需要通过逻辑思考和精确操作,滑动黄色滑块以开辟道路,使红色滑块顺利从出口脱出。随着游戏关卡的递进,难度逐渐增加,为玩家带来更大的挑战。滑块解锁源码免......
  • Umov移动方块-scratch编程作品
    程序说明:《Umov移动方块》是一款基于Scratch平台制作的小游戏。在这个游戏中,玩家将面对一个3×3的圆圈棋盘,并通过鼠标控制蓝色方块在这些圆圈中灵活移动。游戏的挑战在于,舞台的四周边缘会不断生成白色小球,它们会向对向移动。玩家的目标是尽量让蓝色方块避免与这些移动的小球发生......
  • 学编程千万别上培训机构:费用、通用性和实战经验都不行
    学编程是一项极富挑战性的任务,而不是一件能够轻松完成的事情。很多人在学习编程的时候都会考虑去培训机构学习,然而,在现实中,并不是每个人都能从培训机构中获得真正的技术提升,相反,有许多学习编程的人,尤其是想从事IT行业的人,其实更适合采用其他的学习方式。以下是一些理有据的观点,用来......
  • 编程新手必学:Java运算符详解
    编程新手必学:Java运算符详解编程,这种强大的艺术形式,给我们带来了无穷的可能性。就像数学中的加减乘除,程序设计中也有一种类似的工具:运算符。作为一种编程语言,Java提供了一系列的运算符来执行各种基础和复杂的操作。在本文中,我将尝试解释Java中的各种运算符,并提供一些代码示例来说......