學(xué)建模競賽72小時(shí)實(shí)戰(zhàn)指南:從選題到論文的完整策略)
1. 賽題分析與破題思路從“看題”到“定題”的關(guān)鍵一步每年一到數(shù)學(xué)建模競賽季很多同學(xué)拿到賽題的第一反應(yīng)就是“懵”。面對(duì)A、B、C、D四道風(fēng)格迥異的題目感覺每個(gè)都似懂非懂每個(gè)都好像能做但又不知道從何下手。這種“選擇困難癥”和“開局迷茫癥”幾乎是所有參賽隊(duì)伍的必經(jīng)階段。2021年的MathorCup賽題也不例外它涵蓋了優(yōu)化、評(píng)價(jià)、預(yù)測、數(shù)據(jù)挖掘等多個(gè)方向?qū)①愓叩闹R(shí)廣度、思維深度和工具應(yīng)用能力提出了綜合挑戰(zhàn)。我參加過也指導(dǎo)過多次建模比賽深知在寶貴的72小時(shí)里第一步“讀題與選題”往往決定了最終能走多遠(yuǎn)。這一步不是簡單地看一遍題目描述而是一個(gè)系統(tǒng)的分析、評(píng)估和決策過程。首先我們要建立一個(gè)基本的認(rèn)知沒有“最好”的題只有“最適合”你的題。所謂“適合”取決于三個(gè)核心要素知識(shí)儲(chǔ)備、數(shù)據(jù)敏感度和編程實(shí)現(xiàn)能力。一個(gè)理想的選題應(yīng)該是這三者的交集最大化。很多隊(duì)伍會(huì)犯一個(gè)錯(cuò)誤就是被題目表面描述的“高大上”所吸引比如看到“人工智能”、“大數(shù)據(jù)”就熱血沸騰卻忽略了自身是否具備處理相關(guān)數(shù)據(jù)、理解相關(guān)算法、編寫相應(yīng)代碼的基礎(chǔ)。結(jié)果往往是開局雄心萬丈中期舉步維艱后期草草收場。那么具體到2021年的四道題我們該如何進(jìn)行這第一步的“診斷”呢我的建議是拿出至少2-3個(gè)小時(shí)全隊(duì)一起進(jìn)行“三輪精讀”。第一輪獨(dú)立通讀每位隊(duì)員在不交流的情況下仔細(xì)閱讀四道題的全部文字、附件和數(shù)據(jù)。目標(biāo)不是理解細(xì)節(jié)而是完成兩件事1) 用一句話概括每道題的核心要求要我們干什么2) 在每道題旁邊快速寫下自己的第一感覺熟悉、有點(diǎn)印象、完全陌生。同時(shí)圈出所有不認(rèn)識(shí)的術(shù)語、看不懂的圖表。第二輪交叉討論針對(duì)第一輪圈出的疑點(diǎn)大家一起查閱資料、討論。這個(gè)階段的目標(biāo)是“祛魅”把那些看起來嚇人的專業(yè)術(shù)語比如某道題可能涉及的“組合拍賣”、“魯棒優(yōu)化”、“卷積神經(jīng)網(wǎng)絡(luò)”等搞清楚其基本概念和應(yīng)用場景。同時(shí)初步評(píng)估每道題的數(shù)據(jù)量、數(shù)據(jù)格式Excel、TXT、圖像和清晰度。數(shù)據(jù)是否干凈是否需要大量預(yù)處理這直接關(guān)系到編程工作量。第三輪能力匹配這是最關(guān)鍵的一輪。我們需要一張簡單的評(píng)估表。將隊(duì)伍的三項(xiàng)核心能力數(shù)學(xué)知識(shí)、建模思維、編程/軟件作為行四道賽題作為列。然后基于前兩輪的了解為每個(gè)格子打分例如1-5分。同時(shí)列出每道題可能需要的關(guān)鍵技能棧。例如A題通常是優(yōu)化類或運(yùn)籌類可能需要線性/非線性規(guī)劃、整數(shù)規(guī)劃、動(dòng)態(tài)規(guī)劃、啟發(fā)式算法遺傳算法、模擬退火等知識(shí)軟件常用MATLAB的優(yōu)化工具箱、Lingo或Python的PuLP、SciPy。B題通常是評(píng)價(jià)、預(yù)測或數(shù)據(jù)分析類可能需要統(tǒng)計(jì)分析、回歸分析、時(shí)間序列預(yù)測、機(jī)器學(xué)習(xí)分類、聚類、評(píng)價(jià)方法AHP、TOPSIS、熵權(quán)法等軟件常用SPSS、MATLAB、PythonPandas, Scikit-learn。C題通常是數(shù)據(jù)挖掘或更開放的應(yīng)用類可能偏向機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、圖像處理、自然語言處理等對(duì)編程能力要求較高常用PythonTensorFlow/PyTorch, OpenCV。D題通常是離散、圖論或創(chuàng)新性較強(qiáng)的題目可能涉及圖論算法、博弈論、仿真模擬等需要較強(qiáng)的邏輯建模能力和算法實(shí)現(xiàn)能力。通過這個(gè)匹配過程哪道題是你們的“舒適區(qū)邊緣”即大部分技能匹配有一小部分需要挑戰(zhàn)學(xué)習(xí)通常就是最佳選擇。切忌選擇完全在舒適區(qū)內(nèi)的題提升小難出彩更忌選擇完全在舒適區(qū)外的題風(fēng)險(xiǎn)極高。注意選題時(shí)一定要下載并打開所有附件數(shù)據(jù)有些題目描述看起來簡單但附件數(shù)據(jù)可能非常復(fù)雜、混亂或龐大反之亦然。數(shù)據(jù)決定了你模型的“輸入”其質(zhì)量直接影響了整個(gè)建模工作的難度和可行性。1.1 核心需求解析撥開描述迷霧抓住問題本質(zhì)讀題最忌浮于表面。題目描述中往往有背景鋪墊、問題引出、具體任務(wù)、數(shù)據(jù)說明等多個(gè)部分。我們需要像偵探一樣從中提煉出最核心、最不可回避的“剛性需求”。這通常體現(xiàn)在題目的“問題”或“任務(wù)”部分并且經(jīng)常是分點(diǎn)列舉的。以一道典型的優(yōu)化調(diào)度題為例題目可能用很長的篇幅描述一個(gè)物流配送中心的運(yùn)作背景但核心需求可能最終歸結(jié)為建立數(shù)學(xué)模型在滿足所有客戶點(diǎn)需求和時(shí)間窗約束下使配送總路徑最短??紤]車輛載重約束和不同車型成本優(yōu)化車輛使用方案。當(dāng)某個(gè)配送點(diǎn)需求發(fā)生波動(dòng)時(shí)附件給出多組情景分析你模型的穩(wěn)定性??吹竭@里你必須立刻反應(yīng)過來第一問是標(biāo)準(zhǔn)的帶時(shí)間窗的車輛路徑問題VRPTW第二問是帶異質(zhì)車隊(duì)HF的VRP問題第三問是魯棒性Robustness或靈敏度分析Sensitivity Analysis。這就是“透過現(xiàn)象看本質(zhì)”的能力。如果你不能快速將生活化、業(yè)務(wù)化的描述映射到某個(gè)已知的數(shù)學(xué)模型或科學(xué)問題上后續(xù)工作將非常困難。對(duì)于評(píng)價(jià)類問題核心需求通常是“請建立一套評(píng)價(jià)指標(biāo)體系對(duì)XX進(jìn)行綜合評(píng)價(jià)/排序/分級(jí)”。這里的關(guān)鍵是題目是否給出了指標(biāo)如果給了你的工作是賦權(quán)和合成如果沒給你的首要任務(wù)就是通過文獻(xiàn)或數(shù)據(jù)驅(qū)動(dòng)如主成分分析來構(gòu)建指標(biāo)。對(duì)于預(yù)測類問題核心需求是“基于歷史數(shù)據(jù)預(yù)測未來某段時(shí)間的XX值”。這里要關(guān)注的是數(shù)據(jù)特征時(shí)間序列截面數(shù)據(jù)、預(yù)測周期短期、長期和精度要求是否提供明確的誤差衡量標(biāo)準(zhǔn)。抓住本質(zhì)后要立即進(jìn)行“需求拆解”輸入是什么明確給出哪些數(shù)據(jù)格式如何如附件1給出了2016-2020年每日的A、B、C三類數(shù)據(jù)附件2給出了站點(diǎn)地理信息表輸出是什么要求提交什么形式的答案如給出未來30天的預(yù)測值表格給出前10名的最優(yōu)方案及其目標(biāo)函數(shù)值給出評(píng)價(jià)得分與排名約束條件有哪些哪些是必須遵守的硬約束如每輛車載重不超過10噸每個(gè)客戶點(diǎn)必須被訪問一次且僅一次評(píng)價(jià)指標(biāo)權(quán)重之和為1優(yōu)化目標(biāo)是什么是單目標(biāo)還是多目標(biāo)目標(biāo)函數(shù)如何表述最小化總成本、最大化滿意度、最小化誤差平方和把這個(gè)拆解清單列出來題目就從一個(gè)模糊的整體變成了一個(gè)個(gè)清晰可執(zhí)行的任務(wù)模塊。這不僅能幫助理解更是后續(xù)分工的基礎(chǔ)。1.2 解題策略規(guī)劃時(shí)間、分工與風(fēng)險(xiǎn)管控定題之后切忌馬上埋頭開始建模或編程。72小時(shí)是一場馬拉松不是百米沖刺。一個(gè)清晰的作戰(zhàn)計(jì)劃至關(guān)重要。我通常建議將時(shí)間劃分為六個(gè)階段并預(yù)留充足的緩沖。第一階段深度定題與文獻(xiàn)速覽第1天上午約4小時(shí)選定題目后全隊(duì)需要再次精讀該題所有材料確保每個(gè)人對(duì)問題的理解完全一致。然后根據(jù)1.1中的需求拆解開始快速搜集相關(guān)文獻(xiàn)。這不是讓你寫畢業(yè)論文而是“站在巨人肩膀上”。比如做VRP問題就去搜索“Vehicle Routing Problem with Time Windows heuristic algorithm”做評(píng)價(jià)模型就搜索“AHP TOPSIS combination”。目標(biāo)是確認(rèn)模型方向看看學(xué)術(shù)界和工業(yè)界常用哪些模型解決類似問題是精確算法還是啟發(fā)式算法是傳統(tǒng)統(tǒng)計(jì)模型還是機(jī)器學(xué)習(xí)模型尋找可復(fù)用的代碼/工具包在GitHub、MATLAB Central、CSDN等平臺(tái)搜索關(guān)鍵算法如“遺傳算法解決VRP Python”的現(xiàn)成實(shí)現(xiàn)。找到能理解、能修改的代碼框架能節(jié)省大量時(shí)間。積累專業(yè)術(shù)語和表述學(xué)習(xí)相關(guān)論文中如何描述問題、定義變量、解釋結(jié)果這對(duì)后續(xù)論文寫作幫助巨大。第二階段模型初步構(gòu)建與數(shù)據(jù)預(yù)處理第1天下午晚上約8-10小時(shí)這是正式開工的階段通常雙線并行數(shù)據(jù)線由負(fù)責(zé)編程的同學(xué)主導(dǎo)開始清洗、整合、探索附件數(shù)據(jù)。處理缺失值、異常值進(jìn)行描述性統(tǒng)計(jì)繪制初步圖表分布圖、趨勢圖、熱力圖等。數(shù)據(jù)預(yù)處理的結(jié)果要及時(shí)分享給隊(duì)友因?yàn)閿?shù)據(jù)特征可能直接影響模型假設(shè)。模型線由負(fù)責(zé)建模的同學(xué)主導(dǎo)開始定義變量、參數(shù)書寫目標(biāo)函數(shù)和約束條件繪制模型框架圖。此時(shí)模型可能是理想化的暫不考慮計(jì)算復(fù)雜性。第三階段模型求解、實(shí)現(xiàn)與調(diào)試第2天全天最關(guān)鍵的12-16小時(shí)將數(shù)學(xué)模型轉(zhuǎn)化為計(jì)算機(jī)可執(zhí)行的代碼或軟件配置。這是最燒腦也最容易出問題的階段。如果使用現(xiàn)成算法代碼需要根據(jù)本題數(shù)據(jù)結(jié)構(gòu)和約束進(jìn)行大幅修改和適配。如果自己編寫建議從簡單版本開始例如先不考慮時(shí)間窗約束只求解最短路徑逐步增加復(fù)雜度。必須邊寫邊測試用一個(gè)小規(guī)模數(shù)據(jù)集或簡化版問題驗(yàn)證代碼邏輯是否正確。永遠(yuǎn)不要寫完所有代碼再一次性運(yùn)行那將是災(zāi)難。第四階段結(jié)果分析、可視化與模型優(yōu)化第3天上午約6小時(shí)得到初步結(jié)果后要立即分析其合理性和優(yōu)劣。合理性結(jié)果是否符合常識(shí)配送路線有沒有交叉重疊預(yù)測曲線是否平滑評(píng)價(jià)得分差異是否過大敏感性分析改變某個(gè)關(guān)鍵參數(shù)如遺傳算法的種群大小、交叉概率結(jié)果變化大嗎模型是否穩(wěn)定優(yōu)化如果結(jié)果不理想或模型運(yùn)行太慢需要回頭調(diào)整模型參數(shù)、嘗試其他算法或簡化模型假設(shè)??梢暬瘜⒑诵慕Y(jié)果用清晰的圖表呈現(xiàn)出來。一圖勝千言好的圖表能為論文增色不少。第五階段論文撰寫與整合第3天下午前半夜約10-12小時(shí)這是將三天工作固化的過程。強(qiáng)烈建議從第一天晚上就開始寫論文的“問題重述”、“模型假設(shè)”、“符號(hào)說明”等基礎(chǔ)部分不要把所有寫作壓力都堆在最后一天。最后一天主要是整合模型、結(jié)果、分析撰寫“模型檢驗(yàn)與推廣”以及反復(fù)修改摘要。摘要一定要留出至少2小時(shí)精心打磨它是評(píng)委第一眼看到的內(nèi)容決定了對(duì)你論文的第一印象。第六階段最終檢查與提交最后3-4小時(shí)檢查論文格式、圖表編號(hào)、參考文獻(xiàn)引用、錯(cuò)別字。將論文、代碼、結(jié)果文件按要求打包。提前至少1小時(shí)提交以防網(wǎng)絡(luò)擁堵。關(guān)于分工經(jīng)典的三角色分工是建模主攻模型構(gòu)建、論文寫作、編程主攻算法實(shí)現(xiàn)、數(shù)據(jù)處理、寫作主攻論文撰寫、圖表繪制。但實(shí)際中界限很模糊需要緊密協(xié)作。我的經(jīng)驗(yàn)是每個(gè)人都要對(duì)全局有了解但各有側(cè)重。隊(duì)長通常是建模者需要負(fù)責(zé)進(jìn)度把控和決策。實(shí)操心得一定要設(shè)置“里程碑檢查點(diǎn)”。例如第一天晚上睡覺前必須完成數(shù)據(jù)預(yù)處理和模型初步框架第二天中午必須跑出第一個(gè)可運(yùn)行的程序版本第二天晚上必須得到初步結(jié)果并開始分析。一旦某個(gè)節(jié)點(diǎn)嚴(yán)重滯后必須立刻開會(huì)調(diào)整策略甚至考慮簡化模型目標(biāo)確保有完整成果可提交。2. 模型構(gòu)建與求解方法詳解模型是數(shù)學(xué)建模競賽的靈魂。構(gòu)建一個(gè)既貼合題意、又具備可解性、同時(shí)還有一定創(chuàng)新性的模型是獲獎(jiǎng)的關(guān)鍵。下面我結(jié)合常見題型拆解模型構(gòu)建的核心邏輯和求解的實(shí)戰(zhàn)技巧。2.1 優(yōu)化類模型對(duì)應(yīng)常見A題的構(gòu)建心法優(yōu)化類問題通常有明確的目標(biāo)最大或最小化某個(gè)指標(biāo)和一系列限制條件約束。其核心是定義決策變量、構(gòu)建目標(biāo)函數(shù)、列出約束條件。決策變量這是模型的“方向盤”是你希望通過模型求出的未知量。定義時(shí)要清晰、完整。例如在配送問題中常用的決策變量是0-1變量X_{ijk} 1表示車輛k從點(diǎn)i行駛到點(diǎn)j否則為0。定義好變量后所有后續(xù)表達(dá)式都要基于這些變量。目標(biāo)函數(shù)這是模型的“目的地”是你要優(yōu)化最小化或最大化的數(shù)學(xué)表達(dá)式。它必須能夠用決策變量明確表示出來。例如最小化總成本 各路段行駛成本之和 各車輛固定使用成本之和。成本系數(shù)需要從題目數(shù)據(jù)中提取或合理假設(shè)。約束條件這是模型的“交通規(guī)則”是所有可行解必須滿足的條件。書寫約束時(shí)要確保其數(shù)學(xué)嚴(yán)謹(jǐn)性并逐一檢查是否覆蓋了題目所有限制。常見約束包括資源約束如每輛車載重不超過其容量。邏輯約束如每個(gè)客戶點(diǎn)必須被服務(wù)一次且僅一次。流量平衡約束如車輛進(jìn)入一個(gè)點(diǎn)也必須離開該點(diǎn)對(duì)于路徑問題。時(shí)間窗約束如服務(wù)必須在客戶要求的時(shí)間范圍內(nèi)開始。模型求解策略精確算法如線性規(guī)劃LP、整數(shù)規(guī)劃IP、動(dòng)態(tài)規(guī)劃DP。適用于問題規(guī)模較小、結(jié)構(gòu)特殊的情況??梢杂肕ATLAB的linprog,intlinprog或Python的PuLP、ortools庫來求解。優(yōu)點(diǎn)是能得到最優(yōu)解缺點(diǎn)是規(guī)模稍大就可能“算到天荒地老”。啟發(fā)式算法當(dāng)問題規(guī)模大NP-Hard問題時(shí)精確算法失效必須使用啟發(fā)式算法求滿意解。這是數(shù)學(xué)建模競賽中最常用的方法。遺傳算法GA模仿生物進(jìn)化。適用于各種連續(xù)和離散優(yōu)化。關(guān)鍵參數(shù)種群大小一般50-200、交叉概率0.6-0.9、變異概率0.001-0.1。需要設(shè)計(jì)合適的編碼方式二進(jìn)制編碼、實(shí)數(shù)編碼、序列編碼和適應(yīng)度函數(shù)。模擬退火算法SA模仿固體退火過程。適用于局部搜索特別是組合優(yōu)化。關(guān)鍵參數(shù)初始溫度要高如1000、降溫系數(shù)0.8-0.99、終止溫度。核心是設(shè)計(jì)“鄰域結(jié)構(gòu)”即如何從當(dāng)前解產(chǎn)生一個(gè)新解。蟻群算法ACO模仿螞蟻覓食。特別適用于路徑規(guī)劃問題如TSP, VRP。關(guān)鍵參數(shù)信息素重要程度、啟發(fā)式信息重要程度、信息素?fù)]發(fā)系數(shù)。粒子群算法PSO模仿鳥群覓食。適用于連續(xù)空間優(yōu)化。參數(shù)少收斂快。注意事項(xiàng)不要盲目追求算法復(fù)雜度。對(duì)于競賽而言清晰、正確地實(shí)現(xiàn)一個(gè)經(jīng)典啟發(fā)式算法如遺傳算法遠(yuǎn)比嘗試一個(gè)自己都一知半解的復(fù)雜混合算法要可靠。在論文中你需要詳細(xì)說明算法步驟、參數(shù)設(shè)置理由并展示迭代收斂圖以證明算法的有效性。2.2 評(píng)價(jià)與預(yù)測類模型對(duì)應(yīng)常見B題的核心要點(diǎn)評(píng)價(jià)模型的核心是指標(biāo)體系的構(gòu)建和權(quán)重的確定。指標(biāo)體系構(gòu)建如果題目未給指標(biāo)你需要通過文獻(xiàn)綜述或數(shù)據(jù)分析如主成分分析-PCA、聚類分析來提煉。指標(biāo)間應(yīng)盡可能獨(dú)立并覆蓋評(píng)價(jià)對(duì)象的各個(gè)方面如經(jīng)濟(jì)、社會(huì)、環(huán)境。權(quán)重確定方法主觀賦權(quán)法如層次分析法AHP。通過構(gòu)造判斷矩陣計(jì)算指標(biāo)權(quán)重。優(yōu)點(diǎn)是能融入專家經(jīng)驗(yàn)缺點(diǎn)是主觀性強(qiáng)。使用時(shí)必須進(jìn)行一致性檢驗(yàn)CR0.1否則判斷矩陣無效??陀^賦權(quán)法如熵權(quán)法、CRITIC法、主成分分析法。完全基于數(shù)據(jù)波動(dòng)或相關(guān)性計(jì)算權(quán)重。優(yōu)點(diǎn)是客觀缺點(diǎn)是可能違背常識(shí)例如某個(gè)重要指標(biāo)數(shù)據(jù)差異小權(quán)重反而低。組合賦權(quán)法將主客觀權(quán)重以某種方式如乘法集成、線性加權(quán)結(jié)合兼顧兩者優(yōu)點(diǎn)是競賽中體現(xiàn)模型完善性的常用技巧。評(píng)價(jià)合成常用TOPSIS法逼近理想解排序法或模糊綜合評(píng)價(jià)法。TOPSIS原理直觀計(jì)算簡便即計(jì)算每個(gè)方案與正理想解、負(fù)理想解的距離根據(jù)相對(duì)貼近度排序。預(yù)測模型的選擇極度依賴于數(shù)據(jù)特征。時(shí)間序列預(yù)測如果數(shù)據(jù)是按時(shí)間順序排列的且未來值主要依賴于過去值則用時(shí)間序列模型。經(jīng)典方法有ARIMA模型適用于平穩(wěn)或可差分平穩(wěn)的非季節(jié)性序列。需要識(shí)別參數(shù)p, d, q??梢杂胹tatsmodels庫的ARIMA函數(shù)。指數(shù)平滑法如Holt-Winters三參數(shù)指數(shù)平滑能處理趨勢和季節(jié)性。簡單有效。ProphetFacebook開源的預(yù)測工具對(duì)缺失值、異常值和季節(jié)性變化魯棒性強(qiáng)非常適合競賽快速上手?;貧w分析預(yù)測如果結(jié)果變量與多個(gè)因素相關(guān)可用回歸模型。線性回歸基礎(chǔ)但重要先做散點(diǎn)圖看線性趨勢。多元非線性回歸可通過變量變換如取對(duì)數(shù)轉(zhuǎn)化為線性。機(jī)器學(xué)習(xí)預(yù)測當(dāng)數(shù)據(jù)關(guān)系復(fù)雜傳統(tǒng)統(tǒng)計(jì)方法效果不佳時(shí)使用。樹模型如隨機(jī)森林Random Forest、梯度提升樹如XGBoost, LightGBM。對(duì)非線性關(guān)系、特征交互捕捉能力強(qiáng)且能給出特征重要性排序。神經(jīng)網(wǎng)絡(luò)如LSTM長短期記憶網(wǎng)絡(luò)特別適合處理長時(shí)間序列中的長期依賴關(guān)系。但需要較多數(shù)據(jù)且調(diào)參復(fù)雜。實(shí)操心得對(duì)于預(yù)測題千萬不要只用一個(gè)模型一定要構(gòu)建一個(gè)“模型組合”或“對(duì)比分析”的框架。例如先用ARIMA、指數(shù)平滑、Prophet三個(gè)傳統(tǒng)模型做一遍再用XGBoost或LSTM做一遍。然后比較它們的預(yù)測誤差如MAE, RMSE, MAPE選擇最優(yōu)的或者甚至將不同模型的預(yù)測結(jié)果進(jìn)行加權(quán)平均集成學(xué)習(xí)。這個(gè)過程本身就能寫滿論文的分析部分顯得工作非常扎實(shí)。2.3 數(shù)據(jù)挖掘與復(fù)雜問題建模對(duì)應(yīng)C/D題的創(chuàng)新思路這類題目往往更開放數(shù)據(jù)可能更復(fù)雜文本、圖像、網(wǎng)絡(luò)數(shù)據(jù)問題定義也可能更模糊。解題的關(guān)鍵在于問題轉(zhuǎn)化和特征工程。問題轉(zhuǎn)化將一個(gè)看似新穎的問題轉(zhuǎn)化為已知的數(shù)學(xué)模型。例如一個(gè)“社交網(wǎng)絡(luò)影響力分析”問題可以轉(zhuǎn)化為復(fù)雜網(wǎng)絡(luò)分析計(jì)算節(jié)點(diǎn)的度中心性、介數(shù)中心性、接近中心性、特征向量中心性等指標(biāo)或者使用PageRank算法。一個(gè)“圖像信息識(shí)別與分類”問題可以轉(zhuǎn)化為圖像處理濾波、分割加機(jī)器學(xué)習(xí)分類SVM、CNN問題。一個(gè)“基于評(píng)論的情感分析與產(chǎn)品推薦”問題可以轉(zhuǎn)化為自然語言處理情感詞典、文本向量化加協(xié)同過濾推薦問題。特征工程這是從原始數(shù)據(jù)中提煉出對(duì)模型有用的信息的過程往往是決定模型上限的關(guān)鍵。對(duì)于數(shù)值數(shù)據(jù)可以創(chuàng)建統(tǒng)計(jì)特征均值、方差、分位數(shù)、交互特征加減乘除、多項(xiàng)式特征、分組聚合特征等。對(duì)于文本數(shù)據(jù)需要分詞、去除停用詞然后使用詞袋模型Bag-of-Words、TF-IDF、或詞嵌入Word2Vec, BERT將其轉(zhuǎn)化為數(shù)值向量。對(duì)于圖像數(shù)據(jù)除了使用原始像素更常用的是提取深度特征例如使用預(yù)訓(xùn)練的CNN模型如ResNet, VGG的某一層輸出作為特征向量。對(duì)于時(shí)間序列數(shù)據(jù)可以創(chuàng)建滯后特征lag features、滑動(dòng)窗口統(tǒng)計(jì)特征如過去7天的均值、標(biāo)準(zhǔn)差、時(shí)間特征小時(shí)、星期幾、是否節(jié)假日等。在求解方法上這類問題通常需要混合策略。例如先用聚類算法如K-Means, DBSCAN對(duì)數(shù)據(jù)進(jìn)行分群發(fā)現(xiàn)內(nèi)在結(jié)構(gòu)再對(duì)不同群體分別建立預(yù)測或評(píng)價(jià)模型。或者將優(yōu)化算法與仿真模擬結(jié)合用優(yōu)化算法生成策略用仿真模型評(píng)估策略效果。注意事項(xiàng)處理復(fù)雜數(shù)據(jù)時(shí)務(wù)必從最簡單的基準(zhǔn)模型Baseline開始。例如對(duì)于分類問題先跑一個(gè)邏輯回歸或簡單的決策樹得到一個(gè)基準(zhǔn)準(zhǔn)確率。然后再嘗試更復(fù)雜的模型如隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)。這樣有兩個(gè)好處1確保你的數(shù)據(jù)預(yù)處理和特征工程流程是通的2可以量化更復(fù)雜模型帶來的性能提升這在論文中是非常有說服力的論據(jù)。3. 論文寫作與結(jié)果呈現(xiàn)的黃金法則數(shù)學(xué)建模競賽本質(zhì)上是一場“基于數(shù)學(xué)的寫作競賽”。評(píng)委在有限時(shí)間內(nèi)評(píng)審大量論文一篇邏輯清晰、表達(dá)專業(yè)、圖表精美的論文能極大提升獲獎(jiǎng)概率。論文不是事后記錄而應(yīng)是貫穿始終的設(shè)計(jì)。3.1 論文結(jié)構(gòu)框架與寫作要點(diǎn)一篇標(biāo)準(zhǔn)的數(shù)模論文應(yīng)包含以下部分每一部分都有其固定功能和寫作要點(diǎn)摘要重中之重篇幅控制在半頁到一頁之間。內(nèi)容必須獨(dú)立成篇高度濃縮全文精華。采用“總-分-總”結(jié)構(gòu)。開頭總述用1-2句話概括研究了什么問題采用了什么總體方法。分述工作針對(duì)題目中提出的每一個(gè)問題簡要說明你用什么模型、怎么做的、得到了什么關(guān)鍵結(jié)果給出具體數(shù)值。例如“針對(duì)問題一我們建立了基于整數(shù)規(guī)劃的排班模型采用Lingo軟件求解得出最小化人力成本為12,850元/天?!笨偨Y(jié)與亮點(diǎn)用1-2句話總結(jié)全文結(jié)論并點(diǎn)出模型的優(yōu)點(diǎn)如魯棒性強(qiáng)、創(chuàng)新性高、實(shí)用性好。禁忌摘要里不要出現(xiàn)公式、圖表引用、自我評(píng)價(jià)如“我們成功地...”只說客觀事實(shí)。問題重述不要照抄原題要用自己的語言更簡潔、更結(jié)構(gòu)化地復(fù)述問題背景、條件和待解決的任務(wù)??梢苑贮c(diǎn)列出。模型假設(shè)這是使問題可解、模型簡化的關(guān)鍵步驟。假設(shè)要合理、必要通常4-6條為宜。好的假設(shè)1) 忽略次要因素如“忽略運(yùn)輸過程中的微小損耗”2) 明確邊界條件如“假設(shè)預(yù)測期內(nèi)無重大政策變動(dòng)”3) 簡化復(fù)雜關(guān)系如“假設(shè)客戶需求服從正態(tài)分布”。每一條假設(shè)最好能簡要說明理由。符號(hào)說明建議使用三線表形式列出文中主要變量、參數(shù)、符號(hào)及其含義、單位。按出現(xiàn)順序或類別排列確保全文符號(hào)統(tǒng)一。模型建立與求解這是論文的主體。建議按題目自然劃分小節(jié)如5.1 問題一模型5.2 問題二模型。每一節(jié)內(nèi)部遵循“問題分析 - 模型構(gòu)建 - 模型求解”的邏輯。問題分析用文字或流程圖闡述你對(duì)本問題的理解、解決思路和步驟。模型構(gòu)建給出完整的數(shù)學(xué)模型。包括決策變量定義、目標(biāo)函數(shù)、約束條件。公式要編號(hào)并做解釋。模型求解說明你用什么算法、什么軟件工具來求解這個(gè)模型。如果是啟發(fā)式算法需要描述算法步驟最好配流程圖并說明參數(shù)設(shè)置的理由。模型結(jié)果與分析展示核心計(jì)算結(jié)果并配以精美的圖表。圖表應(yīng)有自明性即標(biāo)題、坐標(biāo)軸、圖例清晰完整不看正文也能理解其大意。對(duì)結(jié)果進(jìn)行必要的分析和解釋。例如“從圖3可以看出成本隨車輛數(shù)量增加先減少后增加在車輛數(shù)為8時(shí)達(dá)到最優(yōu)這與經(jīng)濟(jì)學(xué)中的規(guī)模效應(yīng)理論相符?!边M(jìn)行靈敏度分析改變模型中的某個(gè)關(guān)鍵參數(shù)如需求波動(dòng)范圍、時(shí)間窗寬度觀察結(jié)果的變化情況。這能體現(xiàn)你對(duì)模型性能的深入理解是加分項(xiàng)。模型評(píng)價(jià)與推廣優(yōu)點(diǎn)客觀總結(jié)模型的創(chuàng)新點(diǎn)、實(shí)用性、穩(wěn)定性等2-3條即可不要過度吹噓。缺點(diǎn)誠懇地指出模型的局限性例如“本文模型假設(shè)需求固定未來可研究動(dòng)態(tài)需求下的調(diào)度策略”。指出缺點(diǎn)并給出改進(jìn)方向顯得思考全面。推廣簡要說明模型稍作修改后還可應(yīng)用于哪些其他領(lǐng)域。參考文獻(xiàn)文中引用的每篇文獻(xiàn)都必須在此列出。格式要規(guī)范如GB/T 7714。附錄放置核心代碼不宜過長關(guān)鍵部分即可、大型圖表或中間結(jié)果。3.2 圖表可視化與結(jié)果表達(dá)技巧“一圖勝千言”在數(shù)模論文中尤其如此。圖表設(shè)計(jì)原則清晰至上避免花里胡哨的3D效果、復(fù)雜的背景。使用清晰的線條、高對(duì)比度的顏色。信息完整每個(gè)圖表必須有編號(hào)和標(biāo)題如“圖1 不同算法收斂曲線對(duì)比”。坐標(biāo)軸要有明確的標(biāo)簽和單位。類型合適趨勢對(duì)比用折線圖。成分占比用餅圖或堆疊柱狀圖。分布情況用直方圖、箱線圖或散點(diǎn)圖。地理信息用地圖可用Python的geopandas或folium庫。路徑規(guī)劃結(jié)果一定要畫路徑圖直觀展示車輛行駛路線。熱力圖適合展示相關(guān)性矩陣或密度分布。結(jié)果表達(dá)技巧數(shù)據(jù)表格不要直接粘貼軟件輸出的原始表格。應(yīng)整理成簡潔明了的三線表突出關(guān)鍵數(shù)據(jù)。對(duì)于大量數(shù)據(jù)只展示匯總統(tǒng)計(jì)量如均值、標(biāo)準(zhǔn)差或前N條關(guān)鍵記錄。核心指標(biāo)如最優(yōu)值、誤差率、準(zhǔn)確率等要用加粗或突出顯示。對(duì)比展示如果比較了多種模型或方案使用組合圖如將不同模型的預(yù)測曲線畫在同一張圖上或?qū)Ρ缺砀駜?yōu)劣一目了然。動(dòng)態(tài)展示如果條件允許且必要可以生成GIF動(dòng)圖來展示迭代優(yōu)化過程如蟻群算法中信息素的變化、遺傳算法中種群的進(jìn)化這非常出彩但需控制文件大小。實(shí)操心得在論文寫作的中后期可以專門安排一個(gè)人負(fù)責(zé)“圖表美化”。使用Python的matplotlib或seaborn庫時(shí)通過調(diào)整figsize,dpi,fontsize,color palette等參數(shù)可以輕松制作出出版級(jí)質(zhì)量的圖表。記住評(píng)委看你的圖表可能只有十幾秒必須讓他一眼抓住重點(diǎn)。4. 團(tuán)隊(duì)協(xié)作、工具鏈與實(shí)戰(zhàn)避坑指南數(shù)學(xué)建模是團(tuán)隊(duì)作戰(zhàn)高效的協(xié)作和順手的工具能讓你事半功倍。同時(shí)比賽中充滿了“坑”提前了解能避免臨陣慌亂。4.1 高效協(xié)作與版本管理協(xié)作平臺(tái)Overleaf在線LaTeX編輯器支持多人實(shí)時(shí)協(xié)作。對(duì)于需要復(fù)雜數(shù)學(xué)公式排版的數(shù)模論文來說LaTeX幾乎是首選它能產(chǎn)生極其專業(yè)、美觀的排版效果。Overleaf省去了本地配置LaTeX環(huán)境的麻煩且自動(dòng)保存歷史版本。騰訊文檔/金山文檔用于在線共同撰寫模型思路、分工計(jì)劃、問題記錄等非正式文檔方便隨時(shí)同步。GitHub/Gitee用于管理代碼和論文的版本。雖然學(xué)習(xí)曲線稍陡但強(qiáng)烈建議使用??梢詣?chuàng)建倉庫將論文TeX文件、代碼、數(shù)據(jù)都放進(jìn)去。每次重大修改前commit一次如果改亂了可以輕松回退。分工與溝通每日站會(huì)每天早中晚固定時(shí)間如9點(diǎn)、14點(diǎn)、21點(diǎn)快速同步進(jìn)度。每人回答三個(gè)問題我昨天/上午做了什么今天/下午計(jì)劃做什么遇到了什么困難共享工作日志建立一個(gè)在線文檔記錄每天的關(guān)鍵決策、遇到的問題、嘗試的解決方案無論成功與否。這不僅是過程記錄更是寫論文“模型建立”部分時(shí)寶貴的素材。明確接口建模者與編程者之間要有清晰的“接口”定義。例如建模者需要明確告訴編程者輸入數(shù)據(jù)的格式、決策變量的維度、目標(biāo)函數(shù)和約束的數(shù)學(xué)表達(dá)式。編程者則需要反饋數(shù)據(jù)讀入是否有問題、模型求解的規(guī)模限制、初步結(jié)果是否合理。4.2 軟件工具鏈推薦與速成技巧論文撰寫首選LaTeX (Overleaf)。模板可以直接搜索“數(shù)學(xué)建模 LaTeX 模板”有很多現(xiàn)成的國賽、美賽模板。學(xué)習(xí)重點(diǎn)章節(jié)結(jié)構(gòu)、插入公式用$$...$$或equation環(huán)境、插入圖表figure環(huán)境、引用\ref{}, \cite{}。一天內(nèi)即可上手基本寫作。備選Word。如果對(duì)LaTeX實(shí)在恐懼用Word也行。但務(wù)必使用樣式功能來管理標(biāo)題用公式編輯器或Mathtype輸入公式用題注功能管理圖表編號(hào)。否則后期調(diào)整格式會(huì)非常痛苦。編程與求解Python萬能首選。生態(tài)豐富幾乎涵蓋所有建模需求。數(shù)據(jù)處理與分析Pandas,NumPy科學(xué)計(jì)算與優(yōu)化SciPy(有優(yōu)化模塊),PuLP(線性規(guī)劃),ortools(谷歌運(yùn)籌學(xué)工具包VRP等問題神器)機(jī)器學(xué)習(xí)/數(shù)據(jù)挖掘Scikit-learn,XGBoost/LightGBM,TensorFlow/PyTorch時(shí)間序列statsmodels,Prophet繪圖可視化Matplotlib,Seaborn,PlotlyMATLAB在優(yōu)化、仿真、控制系統(tǒng)等領(lǐng)域依然強(qiáng)大語法對(duì)于矩陣運(yùn)算非常友好。優(yōu)化工具箱、全局優(yōu)化工具箱、統(tǒng)計(jì)與機(jī)器學(xué)習(xí)工具箱都很實(shí)用。對(duì)于習(xí)慣矩陣思維的同學(xué)是不錯(cuò)的選擇。SPSS/Stata如果題目以統(tǒng)計(jì)分析為主這些專業(yè)統(tǒng)計(jì)軟件操作更圖形化易于快速完成回歸、檢驗(yàn)等分析。繪圖與示意圖Visio繪制流程圖、模型框架圖、示意圖的標(biāo)桿。Draw.io免費(fèi)的在線替代品功能強(qiáng)大可直接集成到Overleaf中。PPT/Keynote如果只是畫簡單的結(jié)構(gòu)圖用它們也可以導(dǎo)出高清圖片即可。速成技巧不要在比賽期間從頭學(xué)習(xí)一個(gè)新軟件或一個(gè)新算法賽前1-2周隊(duì)伍就應(yīng)該確定主要使用的工具棧如PythonOverleaf然后針對(duì)性地進(jìn)行練習(xí)。找一道往年賽題用這套工具完整做一遍熟悉從數(shù)據(jù)讀取、處理、建模、求解到論文撰寫的全流程。這比看十篇教程都管用。4.3 常見“巨坑”與臨場應(yīng)對(duì)策略即便準(zhǔn)備再充分比賽中也會(huì)遇到意想不到的問題。以下是一些典型“坑”及應(yīng)對(duì)策略坑1程序跑不出結(jié)果或運(yùn)行極慢預(yù)防賽前用類似規(guī)模的數(shù)據(jù)測試代碼性能。對(duì)于啟發(fā)式算法設(shè)置合理的迭代次數(shù)或時(shí)間限制。應(yīng)對(duì)簡化問題先用一個(gè)極小規(guī)模的數(shù)據(jù)集比如只有5個(gè)點(diǎn)測試確保算法邏輯正確。檢查死循環(huán)在循環(huán)內(nèi)添加打印語句輸出關(guān)鍵變量看是否卡住。降低精度/規(guī)模如果求解精確模型可以適當(dāng)放寬整數(shù)約束或降低求解精度如果數(shù)據(jù)太大考慮是否可以先抽樣。準(zhǔn)備備選方案如果最優(yōu)模型實(shí)在無法求解要有降級(jí)方案。例如用貪婪算法Greedy Algorithm快速求一個(gè)可行解雖然不優(yōu)但能保證有結(jié)果然后在此基礎(chǔ)上分析???結(jié)果明顯不合理預(yù)防建模時(shí)就要有量綱意識(shí)和常識(shí)判斷。例如成本不可能為負(fù)路徑長度不可能比直線距離還短。應(yīng)對(duì)數(shù)據(jù)檢查重新檢查數(shù)據(jù)預(yù)處理步驟是否有異常值未處理單位是否統(tǒng)一模型檢查回顧約束條件是否漏掉了關(guān)鍵約束目標(biāo)函數(shù)是否寫反了該求最小卻求了最大分步調(diào)試將復(fù)雜模型分解先驗(yàn)證單個(gè)模塊。例如在優(yōu)化模型中先固定其他變量手動(dòng)計(jì)算一個(gè)簡單情況看模型輸出是否與手動(dòng)計(jì)算一致???論文寫不完預(yù)防嚴(yán)格執(zhí)行時(shí)間規(guī)劃從第一天晚上就開始寫論文的“靜態(tài)”部分問題重述、假設(shè)、符號(hào)說明、文獻(xiàn)綜述。應(yīng)對(duì)保結(jié)構(gòu)完整即使內(nèi)容不完美也要確保論文各個(gè)部分齊全特別是摘要、模型、結(jié)果、結(jié)論。先完成再完美先搭起骨架把核心模型、算法、結(jié)果填進(jìn)去。圖表可以先放草圖后面再替換。不要在格式調(diào)整上花費(fèi)過多時(shí)間。分工救援如果寫手進(jìn)度嚴(yán)重滯后建模和編程的同學(xué)應(yīng)暫停手頭工作協(xié)助撰寫他們最熟悉的部分如算法步驟、結(jié)果分析???隊(duì)伍發(fā)生分歧預(yù)防賽前明確隊(duì)長和決策機(jī)制。隊(duì)長在聽取意見后有權(quán)做出最終決定。應(yīng)對(duì)當(dāng)在模型選擇、求解路徑上出現(xiàn)分歧時(shí)最有效的方法是“用數(shù)據(jù)說話”。如果時(shí)間允許可以分頭快速實(shí)現(xiàn)一個(gè)簡化版比較初步結(jié)果。如果時(shí)間緊張則遵循“穩(wěn)健優(yōu)先”原則選擇大家理解最透徹、把握最大的方案而不是最新穎、最冒險(xiǎn)的方案。最后保持心態(tài)平穩(wěn)至關(guān)重要。72小時(shí)的高強(qiáng)度工作疲憊和焦慮是正常的。合理安排休息保證睡眠哪怕只是趴著睡半小時(shí)也能極大提升效率。記住數(shù)學(xué)建模競賽考察的不僅僅是數(shù)學(xué)和編程能力更是團(tuán)隊(duì)在壓力下解決問題、溝通協(xié)作和呈現(xiàn)成果的綜合能力。享受這個(gè)燒腦又充滿挑戰(zhàn)的過程本身就是最大的收獲。祝大家在比賽中思路清晰代碼無bug論文一氣呵成取得理想的成績