學(xué)建模競賽實戰(zhàn):從需求預(yù)測到聯(lián)合優(yōu)化,拆解自動定價與補貨決策)
1. 項目概述從一篇論文到一套方法論每年數(shù)學(xué)建模競賽結(jié)束后總有一批“神作”在圈內(nèi)流傳2023年C題的優(yōu)秀論文就是其中之一。我花了將近一周時間把能找到的高分論文都捋了一遍不是為了膜拜而是想搞清楚一件事在題目看似常規(guī)的“蔬菜類商品自動定價與補貨決策”背后這些頂尖隊伍到底做對了什么才讓他們的論文從海量作品中脫穎而出這不僅僅是看他們用了什么模型更是要拆解他們構(gòu)建問題、分析數(shù)據(jù)、設(shè)計方案的完整邏輯鏈條。對于準(zhǔn)備參賽的同學(xué)或者任何需要處理復(fù)雜優(yōu)化決策問題的人來說這種“逆向工程”式的分析價值遠(yuǎn)超單純學(xué)習(xí)一個算法。它關(guān)乎如何將模糊的實際問題轉(zhuǎn)化為清晰、可解、且能打動評委的數(shù)學(xué)模型。簡單來說2023年C題要求參賽者為一個生鮮超市的蔬菜品類設(shè)計自動化的定價與補貨策略。題目給出了過去四年多個蔬菜品類的銷售數(shù)據(jù)包括成本、售價、銷量、損耗等。核心目標(biāo)就兩個第一基于歷史數(shù)據(jù)建立定價模型實現(xiàn)利潤最大化第二設(shè)計補貨決策模型在滿足需求的同時最小化損耗。聽起來像是經(jīng)典的“報童問題”升級版但實際做起來坑多得能絆倒一個排。很多隊伍折戟沉沙要么是模型過于理想化脫離實際要么是求解復(fù)雜到算不出來要么是論文寫得像實驗報告缺乏洞察。而我分析的這些優(yōu)秀論文它們共同的成功秘訣在于沒有把題目當(dāng)成一道數(shù)學(xué)題而是當(dāng)成一個真實的商業(yè)決策模擬。它們深入挖掘了數(shù)據(jù)背后的故事比如蔬菜銷售的強季節(jié)性、不同品類間的關(guān)聯(lián)性、損耗的非線性特征并將這些洞察巧妙地融入了模型假設(shè)和約束條件中。接下來我就把自己從這些“學(xué)霸筆記”里提煉出的核心思路、關(guān)鍵技術(shù)選型、實操細(xì)節(jié)以及那些容易踩坑的地方系統(tǒng)地分享給你。無論你是備戰(zhàn)下一次數(shù)模競賽還是在工作中面臨類似的資源優(yōu)化問題相信這些來自實戰(zhàn)頂端的經(jīng)驗都能給你帶來實實在在的啟發(fā)。2. 核心思路拆解優(yōu)秀論文的四大共性特征看完幾十篇論文后我發(fā)現(xiàn)高分作品在思路上有明顯的共性。它們沒有追求算法的炫技而是在問題理解的深度、模型結(jié)合的巧度、以及方案表述的清晰度上做到了極致。下面我把它拆解為四個關(guān)鍵特征。2.1 特征一問題重構(gòu)與多階段建模題目直接問“定價”和“補貨”但高手絕不會直接套用現(xiàn)成的定價模型或庫存公式。他們首先做的是問題重構(gòu)。他們會問定價和補貨真的是兩個獨立問題嗎顯然不是。補貨量取決于對需求的預(yù)測而需求又受價格直接影響。因此這本質(zhì)上是一個聯(lián)合決策優(yōu)化問題。大部分優(yōu)秀論文都采用了多階段建模的框架數(shù)據(jù)預(yù)處理與特征工程階段這不是簡單清洗而是深度挖掘。例如除了常規(guī)的日期、銷量、成本他們會構(gòu)建衍生特征周銷量增長率、品類間銷量相關(guān)系數(shù)、歷史損耗率與銷售量的比值等。有一篇論文特別指出葉菜類如菠菜的損耗對前一日剩余庫存量極為敏感而非簡單的線性關(guān)系這個洞察直接影響了后續(xù)損耗模型的建立。需求預(yù)測階段這是整個模型的基石。幾乎所有高分論文都摒棄了單一的預(yù)測模型而是采用了集成或分層的預(yù)測思路。對于整體趨勢如年度、季度可能使用時間序列模型如SARIMA對于節(jié)假日、周末等季節(jié)性因素采用季節(jié)性分解或LightGBM/XGBoost這類樹模型對于新品或數(shù)據(jù)稀疏的品類則采用類似品類的遷移學(xué)習(xí)或貝葉斯平滑方法。關(guān)鍵點在于他們不僅預(yù)測了“點估計”平均銷量更預(yù)測了“概率分布”或“置信區(qū)間”為后續(xù)的魯棒優(yōu)化打下了基礎(chǔ)。聯(lián)合優(yōu)化階段在此階段將預(yù)測的需求作為隨機變量或帶參數(shù)的分布嵌入到一個優(yōu)化模型中。目標(biāo)函數(shù)通常是最大化期望利潤而決策變量就是價格和補貨量。約束條件則復(fù)雜得多包括庫存容量約束、資金約束、最小展示量約束超市貨架不能空、以及最重要的——損耗與庫存和時間的動態(tài)關(guān)系約束。很多論文在這里引入了條件風(fēng)險價值CVaR的概念不再只追求平均利潤最高而是要求“在95%的情況下利潤不低于某個值”這更符合企業(yè)穩(wěn)健經(jīng)營的需求。策略輸出與模擬驗證階段優(yōu)化模型求解出的可能是一組復(fù)雜的函數(shù)或規(guī)則。優(yōu)秀論文會將其轉(zhuǎn)化為可執(zhí)行的“策略表”或“決策樹”。例如“當(dāng)A蔬菜昨日剩余庫存大于X且預(yù)測明日氣溫高于Y度時采取降價Z%的策略并補貨W公斤”。最后他們一定會用歷史數(shù)據(jù)或模擬數(shù)據(jù)對策略進行回測并與簡單的基準(zhǔn)策略如固定價格、按昨日銷量補貨對比用清晰的圖表展示利潤提升、損耗降低的具體幅度。注意切忌將多階段建模做成流水賬。每個階段之間的邏輯傳遞必須清晰。例如需求預(yù)測階段的輸出誤差如何在優(yōu)化階段被考慮是通過隨機規(guī)劃還是在目標(biāo)函數(shù)中加入懲罰項這一點必須在論文中明確闡述這是評委考察建模連貫性的重點。2.2 特征二成本與損耗模型的精細(xì)化處理這是區(qū)分普通論文和優(yōu)秀論文的最大分水嶺。很多隊伍對損耗的處理過于粗糙簡單地用“銷量*固定損耗率”來計算這完全不符合生鮮零售的現(xiàn)實。高分論文普遍將損耗分為兩大類自然損耗隨時間推移必然發(fā)生的腐敗、脫水。這部分通常建模為關(guān)于庫存時間Age的函數(shù)例如指數(shù)衰減模型損耗量 初始庫存 * (1 - exp(-k * t))其中k是腐敗速率系數(shù)不同蔬菜葉菜vs根莖的k值差異巨大。機會損耗因未能及時售出而被迫丟棄的部分。這部分與需求不確定性和定價策略強相關(guān)。如果定價過高導(dǎo)致銷量低于預(yù)期剩余庫存就會轉(zhuǎn)化為機會損耗。更精彩的在于對成本的分解。除了顯性的進貨成本優(yōu)秀論文還考慮了損耗成本不僅是貨物成本還包括處理損耗的人工、垃圾清運等隱形成本。缺貨成本貨架空空導(dǎo)致的客戶滿意度下降和潛在銷售損失。這部分難以量化但有的論文巧妙地用“歷史同期同類產(chǎn)品銷量”作為機會成本的參照。資金占用成本庫存占用的資金本可以用于其他投資這部分成本在長期運營中不可忽視。有一篇讓我印象深刻的論文它甚至為不同的蔬菜品類賦予了不同的“新鮮度價值衰減曲線”。例如西蘭花一旦花蕾變黃價值急劇下跌適合采用“階梯式折扣”定價策略而土豆的貶值曲線則平緩得多可以采用“緩慢降價”策略。這種基于商品特性的差異化建模極大地提升了模型的現(xiàn)實解釋力。2.3 特征三算法選型與求解的務(wù)實性面對這樣一個包含隨機變量、非線性約束的優(yōu)化問題算法求解是另一大挑戰(zhàn)。我觀察到頂尖隊伍在算法選型上非常務(wù)實遵循“能用簡單的不用復(fù)雜的能結(jié)合使用的不單一依賴”的原則。預(yù)測算法如前所述融合模型是主流。具體工具上Python的statsmodels庫用于傳統(tǒng)時間序列scikit-learn和LightGBM用于機器學(xué)習(xí)回歸。他們通常會做特征重要性分析來驗證構(gòu)建的特征是否有效比如發(fā)現(xiàn)“前一周平均銷量”比“上月同期銷量”預(yù)測力更強這本身就是一個有價值的發(fā)現(xiàn)。優(yōu)化算法對于簡化后的確定性模型如將需求取為預(yù)測均值線性規(guī)劃LP或混合整數(shù)線性規(guī)劃MILP可以通過PuLP、Gurobi等求解器高效解決。這是很多論文的起點。對于考慮不確定性的隨機規(guī)劃或魯棒優(yōu)化模型直接求解可能非常困難。常用的方法是樣本平均近似SAA從需求預(yù)測的概率分布中抽取大量場景例如1000個將隨機優(yōu)化問題轉(zhuǎn)化為一個大規(guī)模但確定性的優(yōu)化問題再用求解器處理。雖然計算量大但借助云計算平臺或高效求解器是可實現(xiàn)的。對于模型過于復(fù)雜、無法用傳統(tǒng)優(yōu)化方法求解的情況不少論文轉(zhuǎn)向了啟發(fā)式算法如遺傳算法GA、模擬退火SA。這里的關(guān)鍵不是證明算法全局最優(yōu)而是證明該算法找到的解顯著且穩(wěn)定地優(yōu)于人工經(jīng)驗策略或其他基準(zhǔn)算法。論文中需要展示算法參數(shù)的調(diào)優(yōu)過程如交叉率、變異率和收斂曲線。仿真驗證無論用什么優(yōu)化算法得到策略都必須通過仿真來評估。他們會編寫一個模擬器模擬長達數(shù)月的每日運營隨機生成符合歷史規(guī)律的需求應(yīng)用自己的定價補貨策略計算每日利潤和損耗。這個過程通常重復(fù)成千上萬次蒙特卡洛模擬以得到策略性能的統(tǒng)計分布平均利潤、利潤方差、最大回撤等。這種“用仿真檢驗優(yōu)化”的思路極大地增加了論文結(jié)論的可信度。2.4 特征四論文表述與可視化呈現(xiàn)再好的模型如果表達不清也難獲高分。優(yōu)秀論文在寫作和呈現(xiàn)上堪稱范本。摘要采用“問題-方法-結(jié)果-結(jié)論”的黃金結(jié)構(gòu)。開門見山指出研究問題簡述核心方法如“我們建立了基于隨機規(guī)劃的多階段聯(lián)合決策模型”用數(shù)據(jù)說話展示核心結(jié)果如“相比基準(zhǔn)策略平均利潤提升15.2%損耗降低22.7%”最后總結(jié)模型優(yōu)點。模型假設(shè)假設(shè)不是隨便寫的。每一條假設(shè)都有其目的要么是為了簡化問題如“忽略運輸時間”要么是基于數(shù)據(jù)分析的結(jié)論如“假設(shè)單個品類的需求相互獨立因為相關(guān)系數(shù)分析顯示大部分品類間相關(guān)性小于0.3”。后者顯示了從數(shù)據(jù)到模型的推導(dǎo)過程。圖表摒棄了軟件默認(rèn)的丑陋圖表。所有圖表都精心設(shè)計顏色簡潔、標(biāo)注清晰。典型的高分圖表包括?;鶊D展示資金流、貨物流采購、銷售、損耗的走向和比例。熱力圖展示不同蔬菜品類在不同季節(jié)的利潤率或損耗率。時間序列對比圖將模型推薦的補貨量、定價與實際歷史數(shù)據(jù)、基準(zhǔn)策略進行多曲線對比一目了然。參數(shù)敏感性分析圖展示關(guān)鍵參數(shù)如損耗率系數(shù)、需求波動率在±20%范圍內(nèi)變動時對總利潤的影響。這證明了模型的魯棒性。代碼與附錄雖然正文不展示代碼但他們會提及核心算法的實現(xiàn)工具如PythonPandasPuLP并在附錄中給出關(guān)鍵的算法流程圖或偽代碼。清晰的流程圖能讓評委快速理解你的求解邏輯。3. 從零到一的實操要點與避坑指南分析了這么多優(yōu)秀特征我們來看看如果自己動手該如何一步步實現(xiàn)以及過程中有哪些“坑”需要提前避開。3.1 數(shù)據(jù)預(yù)處理不僅僅是清洗題目給的數(shù)據(jù)通?!芭K”且包含信息。預(yù)處理的目標(biāo)是將其轉(zhuǎn)化為適合建模的“干凈”特征同時盡可能保留和增強有用信息。異常值處理不要武斷地刪除。先分析異常值產(chǎn)生的原因。例如銷量為0的日子是門店關(guān)門節(jié)假日、還是缺貨如果是節(jié)假日這本身就是一個重要的特征應(yīng)該用“是否節(jié)假日”的啞變量來標(biāo)記而不是刪除。對于明顯是錄入錯誤的極端值如成本為負(fù)才用箱線圖或3σ原則進行剔除或修正。缺失值填補時間序列的缺失值不宜用整體均值填補。應(yīng)采用前向填充、線性插值或者基于同類產(chǎn)品同期數(shù)據(jù)進行填補。例如菠菜某天數(shù)據(jù)缺失可以用同期的油菜、生菜的數(shù)據(jù)趨勢來估算。特征工程這是拉開差距的地方。除了從日期衍生出年、月、日、周幾、是否節(jié)假日、是否周末等還可以構(gòu)建滯后特征前1天、前7天、前30天的銷量、價格。滾動統(tǒng)計特征過去7天的平均銷量、銷量標(biāo)準(zhǔn)差、平均價格。交互特征自身價格與競品替代品平均價格的比值。外部特征如果允許雖然題目沒給但可以合理推斷并作為模型假設(shè)。例如可以引入公開的天氣數(shù)據(jù)溫度、濕度作為預(yù)測特征并在論文中說明其合理性。數(shù)據(jù)標(biāo)準(zhǔn)化/歸一化對于涉及距離計算的聚類或神經(jīng)網(wǎng)絡(luò)模型是必須的。對于樹模型如LightGBM則不一定需要。但價格和銷量單位差異大進行適當(dāng)?shù)目s放如Min-Max縮放有助于優(yōu)化求解時的數(shù)值穩(wěn)定性。實操心得建立一個可復(fù)現(xiàn)的數(shù)據(jù)預(yù)處理流水線Pipeline。使用Python的sklearn.pipeline或自定義函數(shù)確保從原始數(shù)據(jù)到建模數(shù)據(jù)的每一步都是透明的。這不僅能保證一致性在調(diào)整模型時也能快速重新生成特征。3.2 需求預(yù)測模型構(gòu)建實戰(zhàn)我們以構(gòu)建一個融合模型為例演示具體步驟。步驟1數(shù)據(jù)劃分不要隨機劃分時間序列數(shù)據(jù)必須按時間順序劃分。例如用前3年的數(shù)據(jù)作為訓(xùn)練集最后1年的數(shù)據(jù)作為測試集來模擬“用歷史預(yù)測未來”的真實場景。步驟2基準(zhǔn)模型建立先建立幾個簡單的基準(zhǔn)模型用于后續(xù)對比樸素模型預(yù)測值等于前一天的值。季節(jié)性樸素模型預(yù)測值等于上一周同一天的值。簡單移動平均過去7天的平均值。 計算這些基準(zhǔn)模型在測試集上的均方根誤差RMSE和平均絕對百分比誤差MAPE。步驟3高級模型構(gòu)建與融合模型1SARIMA。使用statsmodels庫通過ACF/PACF圖確定參數(shù)范圍用網(wǎng)格搜索尋找最優(yōu)的(p,d,q)(P,D,Q,s)參數(shù)組合。SARIMA能很好地捕捉固定趨勢和季節(jié)模式。模型2LightGBM。將上一步構(gòu)建的所有特征滯后、滾動、日期特征等作為輸入。需要注意防止過擬合合理設(shè)置num_leaves,learning_rate, 并啟用早停法early_stopping。模型融合簡單有效的融合方法是加權(quán)平均。權(quán)重如何確定可以在測試集或單獨劃出一個驗證集上以最小化預(yù)測誤差為目標(biāo)求解最優(yōu)權(quán)重。更高級的方法可以用線性回歸以各模型預(yù)測值為特征真實值為目標(biāo)來學(xué)習(xí)融合權(quán)重。步驟4不確定性量化對于優(yōu)化而言點預(yù)測不夠我們需要知道預(yù)測的分布。有兩種常用方法分位數(shù)回歸使用LightGBM的objectivequantile分別訓(xùn)練多個分位數(shù)如0.05, 0.5, 0.95的模型從而得到預(yù)測區(qū)間。Bootstrap法對訓(xùn)練數(shù)據(jù)進行有放回抽樣構(gòu)建多個不同的預(yù)測模型用這些模型的預(yù)測結(jié)果集合來近似分布。# 示例使用LightGBM進行分位數(shù)回歸預(yù)測核心代碼片段 import lightgbm as lgb # 準(zhǔn)備數(shù)據(jù) train_data lgb.Dataset(X_train, labely_train) # 訓(xùn)練中位數(shù)回歸模型0.5分位數(shù) params { objective: quantile, alpha: 0.5, # 分位數(shù) metric: quantile, boosting_type: gbdt, num_leaves: 31, learning_rate: 0.05, feature_fraction: 0.9 } model_median lgb.train(params, train_data) # 訓(xùn)練上界回歸模型0.95分位數(shù) params[alpha] 0.95 model_upper lgb.train(params, train_data) # 訓(xùn)練下界回歸模型0.05分位數(shù) params[alpha] 0.05 model_lower lgb.train(params, train_data) # 預(yù)測 pred_median model_median.predict(X_test) pred_upper model_upper.predict(X_test) pred_lower model_lower.predict(X_test) # 此時對于每個預(yù)測點我們得到了一個區(qū)間 [pred_lower, pred_upper]3.3 聯(lián)合優(yōu)化模型建模與求解假設(shè)我們采用樣本平均近似SAA方法處理不確定性。模型建立設(shè)決策變量為每日對每個品類i的補貨量 (Q_i)定價 (P_i)。 目標(biāo)最大化期望利潤。 約束庫存平衡約束、容量約束、非負(fù)約束等。由于需求 (D_i) 不確定我們采用SAA。假設(shè)我們從預(yù)測分布中抽取了N個需求場景 (D_i^1, D_i^2, ..., D_i^N)。則確定性等價模型可以寫成 最大化( \frac{1}{N} \sum_{n1}^{N} \sum_{i} [ P_i * min(Q_i I_{i,prev}, D_i^n) - C_i*Q_i - h * I_i^n - v * L_i^n ] ) 其中(I_{i,prev}) 是上日庫存。(min(Q_i I_{i,prev}, D_i^n)) 表示在場景n下的實際銷售量不能超過需求。(C_i) 是進貨成本。(h) 是單位庫存持有成本。(I_i^n) 是場景n下的期末庫存。(v) 是單位損耗成本。(L_i^n) 是場景n下的損耗量這里可以建模為 (L_i^n \theta * I_i^n)簡化線性損耗或更復(fù)雜的函數(shù)。還需要加上庫存平衡方程(I_i^n max(Q_i I_{i,prev} - D_i^n, 0))。模型求解這是一個大規(guī)模的線性/非線性規(guī)劃問題取決于損耗函數(shù)的形式??梢允褂脤I(yè)的優(yōu)化求解器如Gurobi、CPLEX學(xué)術(shù)免費或開源的PuLP調(diào)用CBC求解器來求解。# 示例使用PuLP定義和求解一個簡化的確定性補貨模型單品類需求已知 import pulp # 創(chuàng)建問題 prob pulp.LpProblem(Single_Product_Inventory, pulp.LpMaximize) # 參數(shù) demand 100 # 預(yù)測需求 cost 2 # 單位進貨成本 price 5 # 售價 holding_cost 0.1 # 單位持有成本 initial_inventory 20 # 決策變量 order_qty pulp.LpVariable(OrderQuantity, lowBound0, catContinuous) sales pulp.LpVariable(Sales, lowBound0, catContinuous) ending_inventory pulp.LpVariable(EndingInventory, lowBound0, catContinuous) # 目標(biāo)函數(shù)利潤 銷售收入 - 進貨成本 - 持有成本 prob price * sales - cost * order_qty - holding_cost * ending_inventory # 約束條件 prob sales demand, SalesCannotExceedDemand prob sales initial_inventory order_qty, SalesCannotExceedAvailable prob ending_inventory initial_inventory order_qty - sales, InventoryBalance # 求解 prob.solve(pulp.PULP_CBC_CMD(msgFalse)) print(f狀態(tài): {pulp.LpStatus[prob.status]}) print(f最優(yōu)補貨量: {order_qty.varValue:.2f}) print(f預(yù)期利潤: {pulp.value(prob.objective):.2f})對于多品類、多場景的復(fù)雜模型決策變量和約束會呈指數(shù)級增長需要仔細(xì)設(shè)計模型結(jié)構(gòu)并可能需要借助更強大的求解器或分解算法。4. 常見問題、調(diào)試技巧與進階思考在實際操作中你會遇到各種各樣的問題。下面是我總結(jié)的一些典型問題及其解決思路。4.1 模型求解速度慢或無法求解這是最常遇到的問題。問題根源模型規(guī)模太大場景太多、品類太多、非線性約束導(dǎo)致非凸、整數(shù)變量導(dǎo)致組合爆炸。排查與解決簡化模型先從最簡化的版本開始。例如先考慮單品類、需求為確定值、損耗為線性函數(shù)的模型。確保這個簡單模型能快速求解。減少場景數(shù)SAA中場景數(shù)N不需要極大??梢酝ㄟ^場景縮減技術(shù)用少量具有代表性的場景如通過聚類生成來近似原分布。線性化/凸化嘗試將非線性約束如包含max/min的損耗函數(shù)用線性約束和大M法進行等價轉(zhuǎn)換。如果目標(biāo)函數(shù)或約束是非凸的求解會非常困難需要考慮凸近似或改用啟發(fā)式算法。松弛整數(shù)變量如果補貨量被建模為整數(shù)變量箱/包可以先松弛為連續(xù)變量求解得到最優(yōu)解后再對結(jié)果進行取整并評估取整帶來的性能損失。如果損失可接受則可行。使用啟發(fā)式算法當(dāng)精確算法失效時轉(zhuǎn)向遺傳算法、模擬退火等。雖然不能保證全局最優(yōu)但一個好的啟發(fā)式算法通常能找到高質(zhì)量的解。關(guān)鍵是要設(shè)計好的編碼方式、適應(yīng)度函數(shù)和鄰域搜索操作。4.2 模型結(jié)果不理想或違反常識優(yōu)化結(jié)果出來了但補貨量是負(fù)數(shù)或者定價高得離譜這顯然是模型或數(shù)據(jù)有問題。問題根源約束條件不完整或錯誤目標(biāo)函數(shù)權(quán)重設(shè)置不合理輸入數(shù)據(jù)存在量綱不一致或異常值。排查與解決檢查約束逐條檢查約束條件是否反映了現(xiàn)實限制。例如是否遺漏了“補貨量非負(fù)”、“價格不低于成本”這樣的基本約束庫存平衡約束的符號是否正確分析對偶變量/影子價格在LP/MILP求解后求解器會給出每個約束的影子價格。它表示該約束右邊常數(shù)每增加一個單位目標(biāo)函數(shù)值的變化量。如果某個約束的影子價格非常高說明該約束是“緊”的是當(dāng)前利潤的主要瓶頸。這能幫你理解模型的限制在哪里。進行敏感性分析系統(tǒng)地改變關(guān)鍵參數(shù)如需求預(yù)測的均值、損耗率系數(shù)觀察最優(yōu)解如何變化。如果最優(yōu)解對某個參數(shù)極其敏感那么你需要花更多精力去校準(zhǔn)這個參數(shù)或者說明你的策略在該參數(shù)不確定時風(fēng)險很高。回溯到預(yù)測階段檢查輸入給優(yōu)化模型的需求預(yù)測值是否合理。用歷史數(shù)據(jù)對比看預(yù)測是否存在系統(tǒng)性偏差。4.3 論文寫作與呈現(xiàn)中的痛點痛點一模型描述過于晦澀。技巧用“比喻公式文字”三重描述。例如在介紹庫存平衡約束時可以寫“這就像是一個水池庫存每天有進水補貨也有出水銷售剩下的就是池子里的水期末庫存。用公式表示就是期末庫存 期初庫存 補貨量 - 銷售量。”痛點二結(jié)果分析流于表面。技巧不要只說“模型提升了利潤”。要深入分析為什么提升了。是減少了特定品類在特定季節(jié)的損耗還是通過動態(tài)定價在需求高時多賺了錢結(jié)合具體的圖表數(shù)據(jù)給出有因果關(guān)系的解釋。例如“如圖5所示我們的模型在夏季對綠葉蔬菜采用了更激進的降價策略相比基準(zhǔn)策略平均低8%這雖然降低了單價但使得銷量提升了25%最終該品類在夏季的總利潤提升了15%同時損耗降低了30%?!蓖袋c三代碼、模型、論文脫節(jié)。技巧建立一條清晰的“數(shù)據(jù)流水線”。從原始數(shù)據(jù)到最終結(jié)果的每一個關(guān)鍵步驟都用腳本自動化。確保論文中的每一個數(shù)字、每一張圖都能由你的代碼重新生成。這不僅能避免低級錯誤在回答評委質(zhì)疑時也更有底氣。4.4 從優(yōu)秀到卓越可以深入的進階方向如果你已經(jīng)掌握了上述基本框架還想讓論文更出彩可以考慮以下進階方向考慮競爭因素題目假設(shè)是單家超市。但在現(xiàn)實中定價會受到周邊競爭對手的影響??梢砸氩┺恼摰乃枷爰僭O(shè)競爭對手也采用類似策略建立動態(tài)定價博弈模型。引入消費者行為模型需求不僅僅是價格的函數(shù)還可能受到促銷、陳列方式的影響??梢試L試引入基礎(chǔ)的消費者選擇模型如Logit模型讓需求預(yù)測更精細(xì)。多目標(biāo)優(yōu)化除了利潤企業(yè)可能還關(guān)心客戶滿意度缺貨率低、供應(yīng)鏈穩(wěn)定性補貨量波動小??梢詫栴}建模為多目標(biāo)優(yōu)化使用帕累托前沿來展示不同目標(biāo)之間的權(quán)衡。強化學(xué)習(xí)這是一個非常前沿的嘗試。將定價和補貨決策視為一個序列決策問題超市是智能體利潤是獎勵使用深度強化學(xué)習(xí)算法來學(xué)習(xí)最優(yōu)策略。這種方法對數(shù)據(jù)量和算力要求高但一旦實現(xiàn)會非常亮眼。在論文中你需要詳細(xì)說明狀態(tài)空間、動作空間、獎勵函數(shù)的設(shè)計以及訓(xùn)練過程。最后我想強調(diào)的是數(shù)學(xué)建模競賽和解決真實商業(yè)問題的核心是相通的理解問題本質(zhì)做出合理假設(shè)利用數(shù)學(xué)工具構(gòu)建簡化但有效的模型并用數(shù)據(jù)驅(qū)動決策。2023年C題的這些優(yōu)秀論文正是這一理念的完美體現(xiàn)。它們的故事告訴我們成功不在于用了多么高深的算法而在于是否構(gòu)建了一個自洽、合理、且能產(chǎn)生實際價值的解決方案閉環(huán)。當(dāng)你下次面對一個復(fù)雜問題時不妨也試試這種“先拆解、再建模、后驗證”的思路或許會有意想不到的收獲。