學(xué)建模競(jìng)賽實(shí)戰(zhàn):從問(wèn)題拆解到模型構(gòu)建的完整流程解析)
1. 從“開(kāi)盲盒”到“建模型”一次典型美賽的完整復(fù)盤(pán)又到了每年一月初全球數(shù)萬(wàn)支隊(duì)伍盯著屏幕等待那個(gè)被稱為“美賽”的數(shù)學(xué)建模競(jìng)賽題目揭曉的時(shí)刻。2020年的第二周我作為隊(duì)長(zhǎng)帶著兩位隊(duì)友完整地經(jīng)歷了從題目發(fā)布到論文提交的96小時(shí)?,F(xiàn)在回想起來(lái)那不僅僅是一次比賽更像是一次高強(qiáng)度、高壓力的項(xiàng)目實(shí)戰(zhàn)演練。整個(gè)過(guò)程充滿了不確定性、團(tuán)隊(duì)協(xié)作的磨合以及無(wú)數(shù)次在“好像有思路了”和“這路走不通”之間的反復(fù)橫跳。如果你也對(duì)數(shù)學(xué)建模、團(tuán)隊(duì)協(xié)作或者單純對(duì)如何在高壓下完成一個(gè)復(fù)雜任務(wù)感興趣那么我這次“踩坑”與“爬坑”的經(jīng)歷或許能給你一些不一樣的視角。美賽的魅力就在于它把一個(gè)開(kāi)放的、現(xiàn)實(shí)世界的問(wèn)題壓縮進(jìn)四天四夜里逼著你去學(xué)習(xí)、去溝通、去創(chuàng)造最后產(chǎn)出一份邏輯自洽的“解決方案”。這篇復(fù)盤(pán)我就來(lái)拆解一下這96小時(shí)里我們到底經(jīng)歷了什么以及那些比獲獎(jiǎng)技巧更重要的東西。2. 賽前準(zhǔn)備你以為的準(zhǔn)備和實(shí)際需要的準(zhǔn)備很多人覺(jué)得美賽就是數(shù)學(xué)好、編程強(qiáng)的人的游戲。但以我的經(jīng)驗(yàn)來(lái)看這可能是最大的誤解。賽前準(zhǔn)備遠(yuǎn)不止于復(fù)習(xí)數(shù)學(xué)模型和編程語(yǔ)言。2.1 團(tuán)隊(duì)組建與角色定位不是找三個(gè)“大神”我們隊(duì)伍的組合很典型我隊(duì)長(zhǎng)負(fù)責(zé)統(tǒng)籌、寫(xiě)作和部分建模一位編程主力負(fù)責(zé)算法實(shí)現(xiàn)、數(shù)據(jù)清洗和可視化一位建模與算法主力負(fù)責(zé)核心模型推導(dǎo)、算法選型。賽前我們花了大量時(shí)間磨合的不是技術(shù)而是工作流和溝通習(xí)慣。我們約定了幾件事統(tǒng)一工具鏈Overleaf寫(xiě)論文避免版本混亂GitHub托管代碼和數(shù)據(jù)雖然最后提交時(shí)網(wǎng)絡(luò)是個(gè)坑釘釘/微信用于即時(shí)溝通但每天固定三個(gè)會(huì)議時(shí)間早、中、晚用騰訊會(huì)議同步進(jìn)度、討論卡點(diǎn)。避免碎片化信息刷屏確保關(guān)鍵決策是集體討論的結(jié)果。明確輸出物標(biāo)準(zhǔn)論文用什么模板圖表必須什么格式矢量圖優(yōu)先代碼注釋和變量命名有什么規(guī)范這些瑣事在高壓下如果沒(méi)共識(shí)會(huì)極大消耗團(tuán)隊(duì)精力。我們提前找了一篇O獎(jiǎng)?wù)撐牟鸾饬怂慕Y(jié)構(gòu)和圖表呈現(xiàn)方式作為我們的“風(fēng)格指南”。心態(tài)建設(shè)我們達(dá)成的共識(shí)是目標(biāo)是完成一篇“我們自己能說(shuō)服自己”的論文而不是追求某個(gè)特定的獎(jiǎng)項(xiàng)。這降低了過(guò)程中的焦慮感讓我們更專注于問(wèn)題本身。注意很多隊(duì)伍敗在“三個(gè)諸葛亮頂個(gè)臭皮匠”。每個(gè)人都想主導(dǎo)或者關(guān)鍵時(shí)刻找不到人。明確的角色和決策機(jī)制我們約定技術(shù)路線爭(zhēng)議時(shí)建模手有更大話語(yǔ)權(quán)論文結(jié)構(gòu)爭(zhēng)議時(shí)隊(duì)長(zhǎng)決定至關(guān)重要。2.2 知識(shí)儲(chǔ)備建立你的“武器庫(kù)”而不是“書(shū)柜”我們并沒(méi)有去啃一本本厚厚的數(shù)學(xué)模型書(shū)。相反我們做了兩件更有效的事往屆真題精讀選了最近三年MCM/ICM的O獎(jiǎng)?wù)撐牟皇强唇Y(jié)果而是反向拆解。看他們面對(duì)一個(gè)模糊問(wèn)題是如何一步步將問(wèn)題具體化、分解的。比如如何從“可持續(xù)發(fā)展”這樣的大詞定義出可量化的指標(biāo)這鍛煉的是問(wèn)題翻譯能力。工具技能速成確認(rèn)每個(gè)人除了主技能外都有一個(gè)“備份技能”。編程手也學(xué)了點(diǎn)LaTeX排版以防萬(wàn)一我寫(xiě)作位也簡(jiǎn)單了解了機(jī)器學(xué)習(xí)的基本流程和術(shù)語(yǔ)以便能準(zhǔn)確描述隊(duì)友的工作。我們共同突擊了數(shù)據(jù)可視化工具如Python的Matplotlib/Seaborn, Tableau Public因?yàn)楹每吹膱D表能極大提升論文第一印象。3. 題目發(fā)布與選題關(guān)鍵的第一個(gè)24小時(shí)2020年的題目出來(lái)時(shí)我記得有一道是關(guān)于沙堡設(shè)計(jì)的MCM B題一道是關(guān)于全球海洋塑料垃圾治理的ICM D題。我們隊(duì)伍事先約定偏向ICM交叉學(xué)科建模因?yàn)橛X(jué)得更開(kāi)放更能發(fā)揮寫(xiě)作和邏輯梳理的優(yōu)勢(shì)。3.1 第一輪頭腦風(fēng)暴拒絕“拍腦袋”拿到題目后我們沒(méi)有立刻決定選哪道。而是花了3個(gè)小時(shí)對(duì)兩個(gè)潛在選題進(jìn)行了“快速掃描”資料可及性立即搜索關(guān)鍵詞評(píng)估中英文文獻(xiàn)、數(shù)據(jù)集的豐富程度。塑料垃圾問(wèn)題聯(lián)合國(guó)環(huán)境署、世界銀行等機(jī)構(gòu)有大量報(bào)告和數(shù)據(jù)這點(diǎn)很有利。問(wèn)題可拆解性題目要求“建立模型評(píng)估現(xiàn)有策略并提出新策略”。我們初步討論能否拆解為“污染現(xiàn)狀評(píng)估模型”、“策略效果模擬模型”和“成本效益優(yōu)化模型”三個(gè)子模塊感覺(jué)路徑比較清晰。團(tuán)隊(duì)技術(shù)匹配度這個(gè)問(wèn)題涉及地理空間分析垃圾分布、系統(tǒng)動(dòng)力學(xué)政策傳導(dǎo)、可能還有博弈論國(guó)際協(xié)作。我們的技能樹(shù)大致能覆蓋。相比之下沙堡題目更物理、更具體但對(duì)特定知識(shí)的深度要求可能更高?;凇霸谟邢迺r(shí)間內(nèi)更可能完成一個(gè)邏輯閉環(huán)”的判斷我們選擇了塑料垃圾治理題。3.2 定義問(wèn)題邊界最重要也最易錯(cuò)的一步這是建模的生死線。題目很大比如“全球海洋塑料垃圾”。你不能真的去建一個(gè)全球模型。我們必須劃定邊界空間邊界我們聚焦于東南亞地區(qū)的河流輸入塑料垃圾問(wèn)題。理由是多項(xiàng)研究指出全球大部分海洋塑料來(lái)自少數(shù)幾條河流且多位于東南亞區(qū)域問(wèn)題數(shù)據(jù)相對(duì)好獲取便于我們后續(xù)設(shè)計(jì)區(qū)域治理策略。時(shí)間邊界分析未來(lái)10年2020-2030。太短看不出政策效果太長(zhǎng)不確定性太大。對(duì)象邊界我們主要關(guān)注塑料垃圾總量暫不細(xì)分塑料類型如PET、PE但區(qū)分“陸地輸入”和“海上丟棄”兩個(gè)主要來(lái)源。策略邊界我們?cè)u(píng)估三類策略源頭減量如限塑令、攔截回收如河流攔截裝置、以及國(guó)際資金援助機(jī)制。把這個(gè)邊界明確寫(xiě)下來(lái)貼在團(tuán)隊(duì)協(xié)作區(qū)的醒目位置。后續(xù)所有工作都不得隨意越過(guò)此邊界否則極易陷入“范圍蔓延”的泥潭。4. 模型構(gòu)建與求解理想與現(xiàn)實(shí)的拉鋸戰(zhàn)這是我們耗時(shí)最長(zhǎng)的階段大約占去了兩天半的時(shí)間。整個(gè)過(guò)程充滿了迭代和妥協(xié)。4.1 核心模型一基于源-匯路徑的污染評(píng)估模型我們想首先量化現(xiàn)狀。思路是將東南亞主要河流流域視為“源”其沿岸海域視為“匯”模擬塑料垃圾從源到匯的輸運(yùn)。為什么選這個(gè)思路因?yàn)樗锢硪饬x相對(duì)清晰且有水文模型的相關(guān)研究可借鑒。我們不需要從零發(fā)明一個(gè)東西。數(shù)據(jù)難題河流塑料垃圾入海量數(shù)據(jù)極其匱乏。我們的解決方案是采用代理變量文獻(xiàn)標(biāo)定法。我們用流域人口密度、人均塑料消費(fèi)量、廢物管理指數(shù)等公開(kāi)數(shù)據(jù)構(gòu)建一個(gè)“塑料垃圾產(chǎn)生潛力指數(shù)”。然后找到一篇權(quán)威文獻(xiàn)中關(guān)于某條河流如湄公河的實(shí)測(cè)入海塑料垃圾估算值用這個(gè)值來(lái)標(biāo)定我們的模型參數(shù)從而估算其他河流的數(shù)據(jù)。這本質(zhì)上是一個(gè)參數(shù)估計(jì)過(guò)程。模型實(shí)現(xiàn)編程手用Python的Pandas和NumPy處理數(shù)據(jù)用NetworkX庫(kù)構(gòu)建了一個(gè)簡(jiǎn)單的河流網(wǎng)絡(luò)圖模擬垃圾隨水流向下游的轉(zhuǎn)移設(shè)定了簡(jiǎn)單的衰減系數(shù)代表自然降解、中途沉積等??梢暬糠钟肎eoPandas和Matplotlib畫(huà)出了東南亞地區(qū)塑料垃圾入海通量的空間分布熱力圖。實(shí)操心得在這個(gè)階段不要追求模型的復(fù)雜性而要追求邏輯的牢固性。我們最初想加入復(fù)雜的水動(dòng)力方程但很快發(fā)現(xiàn)數(shù)據(jù)支撐不了時(shí)間也不夠。于是退而求其次采用了一個(gè)概念清晰、參數(shù)可解釋的簡(jiǎn)化模型并在論文中坦誠(chéng)說(shuō)明了模型的局限性。評(píng)委更看重你如何聰明地利用有限資源解決問(wèn)題而不是你用了多高深的數(shù)學(xué)。4.2 核心模型二系統(tǒng)動(dòng)力學(xué)模型評(píng)估政策評(píng)估政策效果我們選擇了系統(tǒng)動(dòng)力學(xué)System Dynamics, SD使用Vensim軟件。為什么是SD適合處理動(dòng)態(tài)復(fù)雜問(wèn)題塑料垃圾治理涉及人口、經(jīng)濟(jì)、政策、環(huán)境多個(gè)子系統(tǒng)相互反饋存在延遲政策出臺(tái)到見(jiàn)效需要時(shí)間。SD擅長(zhǎng)刻畫(huà)這種非線性關(guān)系和反饋回路。便于政策模擬我們可以輕松地通過(guò)調(diào)整模型中的“政策杠桿”如回收率提高速度、塑料消費(fèi)增長(zhǎng)率變化模擬不同情景下的垃圾存量變化。可視化直觀SD的存量-流量圖本身就是論文中解釋模型結(jié)構(gòu)的優(yōu)秀圖表。建模過(guò)程劃定系統(tǒng)邊界塑料生產(chǎn)、消費(fèi)、廢棄、收集、處理、泄漏到環(huán)境等關(guān)鍵環(huán)節(jié)。繪制因果回路圖識(shí)別正反饋如經(jīng)濟(jì)越發(fā)展塑料消費(fèi)越多、負(fù)反饋如污染越嚴(yán)重治理投入越大。轉(zhuǎn)化為存量流量圖并定義方程。數(shù)據(jù)來(lái)源主要是各國(guó)的統(tǒng)計(jì)年鑒、世界銀行數(shù)據(jù)庫(kù)以及學(xué)術(shù)文獻(xiàn)中的經(jīng)驗(yàn)參數(shù)如塑料包裝的平均使用壽命。設(shè)置基準(zhǔn)情景BAU, Business As Usual和三種政策干預(yù)情景模擬到2030年。遇到的坑模型運(yùn)行后發(fā)現(xiàn)某些情景下海洋塑料垃圾總量會(huì)出現(xiàn)違反直覺(jué)的“先升后降”或波動(dòng)。我們花了大量時(shí)間排查最終發(fā)現(xiàn)是某個(gè)反饋回路的延遲時(shí)間設(shè)置不合理導(dǎo)致系統(tǒng)響應(yīng)“過(guò)沖”。調(diào)整后曲線變得平滑合理。這個(gè)排查過(guò)程后來(lái)被我們寫(xiě)進(jìn)了論文的“靈敏度分析”部分變成了一個(gè)亮點(diǎn)——它展示了我們對(duì)模型行為的深刻理解而不僅僅是把模型當(dāng)黑箱。4.3 核心模型三成本效益優(yōu)化與策略推薦有了政策效果我們還需要知道“劃不劃算”。我們建立了一個(gè)簡(jiǎn)單的多目標(biāo)優(yōu)化模型框架。目標(biāo)最小化總治理成本最大化塑料垃圾減少量。決策變量分配給源頭減量、攔截回收、國(guó)際援助三種策略的資金比例。約束總預(yù)算約束我們假設(shè)了一個(gè)基于地區(qū)GDP的合理范圍、每種策略的效果函數(shù)從SD模型的結(jié)果中擬合得出。求解由于時(shí)間關(guān)系我們沒(méi)有用復(fù)雜的優(yōu)化算法去求精確解。而是采用了情景分析法。我們?cè)O(shè)定了高、中、低三檔預(yù)算然后在每檔預(yù)算下手動(dòng)調(diào)整資金分配組合計(jì)算對(duì)應(yīng)的效果和成本最終在論文中給出了一個(gè)帕累托前沿的示意圖并推薦了一組在“成本”和“效果”之間取得平衡的分配方案。技巧分享在美賽中“近似解”“有說(shuō)服力的分析”遠(yuǎn)勝于“求不出的精確解”。我們誠(chéng)實(shí)地告訴評(píng)委這是一個(gè)框架并詳細(xì)分析了資金從一種策略轉(zhuǎn)移到另一種策略時(shí)邊際效益如何變化。這種經(jīng)濟(jì)學(xué)的思維方式比硬套一個(gè)遺傳算法代碼但解釋不清要加分得多。5. 論文寫(xiě)作與整合最后一公里的沖刺最后一天是寫(xiě)作、整合、排版和檢查。這是將前三天的思考轉(zhuǎn)化為最終產(chǎn)品的關(guān)鍵環(huán)節(jié)。5.1 寫(xiě)作不是翻譯是再創(chuàng)造我的角色從“協(xié)調(diào)者”轉(zhuǎn)變?yōu)椤爸鞴P”。寫(xiě)作不是簡(jiǎn)單地把隊(duì)友的結(jié)果羅列上去。講一個(gè)好故事我們從摘要開(kāi)始就構(gòu)思了一個(gè)清晰的敘事線“問(wèn)題很嚴(yán)重現(xiàn)狀評(píng)估→ 現(xiàn)有辦法可能不夠模型模擬BAU情景→ 我們?cè)嚵瞬煌k法政策模擬→ 但我們資源有限優(yōu)化分析→ 所以我們建議這樣花錢策略推薦”。全文都圍繞這個(gè)邏輯展開(kāi)。圖表驅(qū)動(dòng)我們堅(jiān)持“一圖勝千言”。每個(gè)核心結(jié)論都盡量配上一張精心設(shè)計(jì)的圖表。圖表標(biāo)題不是“Figure 1: Results”而是“Figure 1: Projected marine plastic flux from major Southeast Asian rivers under BAU scenario (2020-2030)”。坐標(biāo)軸、圖例、單位務(wù)必清晰準(zhǔn)確。突出亮點(diǎn)與誠(chéng)實(shí)交代局限性在模型描述部分我們特意用一個(gè)小節(jié)叫“Model Insights and Sensitivity Analysis”展示那個(gè)排查反饋回路延遲的案例說(shuō)明我們對(duì)模型行為有掌控。同時(shí)專門(mén)用一節(jié)“Assumptions and Limitations”坦誠(chéng)說(shuō)明我們數(shù)據(jù)的不足、模型的簡(jiǎn)化之處并討論了這些局限性會(huì)如何影響結(jié)論以及未來(lái)如何改進(jìn)。這體現(xiàn)了科學(xué)的嚴(yán)謹(jǐn)性。5.2 整合與排版的魔鬼細(xì)節(jié)這是最緊張也最容易出錯(cuò)的時(shí)候。版本控制Overleaf雖然好但在最后幾小時(shí)多人同時(shí)編輯時(shí)偶爾會(huì)有沖突。我們約定最后兩小時(shí)由我一人負(fù)責(zé)最終版本的微調(diào)其他隊(duì)友只讀審查。交叉檢查我們進(jìn)行了三輪交叉檢查一輪查數(shù)學(xué)符號(hào)、公式、引用是否統(tǒng)一一輪查圖表編號(hào)、數(shù)據(jù)是否與正文描述一致最后一輪純讀文字檢查語(yǔ)法、流暢度和邏輯漏洞。檢查時(shí)一定要把論文打印出來(lái)或PDF全屏通讀在屏幕上很容易跳過(guò)錯(cuò)誤。附錄管理核心代碼、大的數(shù)據(jù)表、額外的靈敏度分析結(jié)果我們都放進(jìn)了附錄。并在正文中明確說(shuō)明“詳見(jiàn)附錄X”。確保正文簡(jiǎn)潔流暢同時(shí)信息完整可復(fù)現(xiàn)。6. 那些比獎(jiǎng)狀更重要的收獲四天時(shí)間提交完論文的那一刻疲憊感瞬間涌上但隨之而來(lái)的是巨大的充實(shí)感?;剡^(guò)頭看美賽帶給我的遠(yuǎn)不止于建模技術(shù)本身的提升。首先是對(duì)“解決問(wèn)題”流程的深刻體驗(yàn)。從一個(gè)模糊的、宏大的現(xiàn)實(shí)問(wèn)題開(kāi)始如何通過(guò)定義邊界將其轉(zhuǎn)化為一個(gè)可研究的、具體的問(wèn)題如何為了回答這個(gè)問(wèn)題去快速學(xué)習(xí)新知識(shí)比如系統(tǒng)動(dòng)力學(xué)如何利用有限的、不完美的數(shù)據(jù)去構(gòu)建一個(gè)“足夠好”的模型如何在模型結(jié)果與直覺(jué)不符時(shí)去調(diào)試、去理解而不是強(qiáng)行解釋最后如何將整個(gè)思考過(guò)程清晰、有說(shuō)服力地傳達(dá)給別人。這套流程在任何行業(yè)的項(xiàng)目研發(fā)、咨詢分析中都是通用的。其次是團(tuán)隊(duì)協(xié)作的實(shí)戰(zhàn)課。如何在高壓力、高不確定性下保持有效溝通如何在意見(jiàn)分歧時(shí)快速做出決策而不是陷入無(wú)休止的爭(zhēng)論如何信任隊(duì)友并在自己負(fù)責(zé)的環(huán)節(jié)不掉鏈子我們經(jīng)歷了最初的興奮、中期的迷茫和爭(zhēng)吵、后期的疲憊與協(xié)同沖刺。這個(gè)過(guò)程讓我們真正理解了“團(tuán)隊(duì)”的含義——不是簡(jiǎn)單的分工疊加而是能力的互補(bǔ)與責(zé)任的共擔(dān)。最后是時(shí)間管理與心態(tài)調(diào)整。96小時(shí)睡眠時(shí)間被極度壓縮。我們學(xué)會(huì)了“模塊化”推進(jìn)設(shè)定明確的里程碑如第一天結(jié)束必須確定模型框架第三天中午必須完成所有計(jì)算。也學(xué)會(huì)了在“此路不通”時(shí)果斷放棄尋找替代方案而不是在死胡同里耗盡時(shí)間。更重要的是學(xué)會(huì)了接受不完美。我們的模型有很多假設(shè)我們的數(shù)據(jù)也不完美但在給定的時(shí)間和資源下我們交出了一份邏輯自洽、盡力而為的作品。這種“在約束條件下交付”的能力是日后工作中無(wú)比珍貴的。那次比賽我們最終拿到了一個(gè)還算不錯(cuò)的獎(jiǎng)項(xiàng)。但對(duì)我來(lái)說(shuō)獎(jiǎng)狀本身已經(jīng)不那么重要了。那96小時(shí)里和隊(duì)友一起為一個(gè)共同目標(biāo)絞盡腦汁、并肩作戰(zhàn)的經(jīng)歷以及從中學(xué)到的這一整套“定義問(wèn)題-拆解問(wèn)題-解決問(wèn)題-呈現(xiàn)方案”的思維模式和項(xiàng)目執(zhí)行能力才是真正讓我受益至今的財(cái)富。如果你也打算參加類似的競(jìng)賽或挑戰(zhàn)我的建議是別只盯著獎(jiǎng)沉浸到這個(gè)過(guò)程里去你會(huì)收獲更多。