今天对美国大学生数学建模大赛(MCM/ICM)进行了广泛的资料搜索与学习,参考了多份前辈经验总结(包括MIT特等奖经历、评委意见、多篇金奖/一等奖经验谈),整理出以下核心要点:
- "文献为王":阅读文献的数量很大程度上决定论文质量,建议下载相关领域近10年论文并分类整理
- 研读O奖论文:每天阅读一篇特等奖论文,尝试复现其模型和代码
- 算法代码库:准备好常用算法(神经网络、模拟退火、遗传算法等)的代码包,比赛时直接调用
- 排版工具:熟悉LaTeX强烈推荐;不熟则用Word+MathType
- 环境测试:确保能访问Google Scholar、COMAP官网,准备备用网络
- 生活保障:备好食物、洗漱用品、躺椅/睡袋
| 角色 | 职责 |
|---|---|
| 建模手 | 将实际问题转化为数学模型,跨学科思维 |
| 编程手 | 算法实现、数据处理、灵敏度分析 |
| 写作手 | 论文撰写(二次创作),第一天就规划框架 |
经验:意见不统一时学会妥协,或尝试多种方案在论文中对比
| 时间 | 任务 |
|---|---|
| Day 1 | 选题、查文献、明确问题、建立初步框架 |
| Day 2 | 建模、编程求解、初步结果;开始写非核心部分 |
| Day 3 | 模型改进、灵敏度分析、模型检验;核心写作 |
| Day 4 | 全力写摘要! 检查格式、图表、润色 |
睡眠管理:前两天保证6-7小时睡眠,最后一天可冲刺
- 评委第一轮只看摘要(约5分钟/篇),写不好直接SP
- 必须包含:用什么方法、解决什么问题、主要结果(带数值)、创新点
- 可读性(Skimmability):多用列表、清晰标题层级、图表
- 图表:一张好图胜过千言万语,用流程图展示思路
- 多用被动语态,避免口语化表达
- 可先写中文再翻译,确保逻辑通顺
| 轮次 | 淘汰比例 | 评审时间 | 关键点 |
|---|---|---|---|
| 第一轮 | 25%被刷 | 10-15分钟 | 只看摘要 |
| 第二轮 | 35%被刷 | - | 细致筛选 |
| 终评 | 前18%争奖 | 30-45分钟 | 逐一评审 |
O奖秘密:评委更看重假设合理性、建模创造性、文字清晰度,而非结果一致性
- Select & Define:选择并明确定义问题
- Variables & Optimization:定义变量和优化目标
- Influences:理解所有影响因素
- Assumptions:关键! 让问题变得可解
- Constraints:明确约束条件
- Brainstorming:头脑风暴可能方法
- Select Model:辩论并选定模型
- Reorganize:中场检查(可行性、最简性)
- Prototype:建立基础模型(Base Case)
- Simulation:代入参数求解
- Sensitivity Testing:必做! 灵敏度测试
- Evaluate & Revise:评估、修改、迭代
- Formal Write-up:正式撰写论文
- 优化类:模拟退火、遗传算法、神经网络
- 图论类:Dijkstra、Floyd、最小生成树、匈牙利算法
- 评价类:层次分析法(AHP)、模糊综合评判
- 预测类:时间序列(ARMA)、灰色理论、回归分析
- 通用:蒙特卡罗算法
- 利用找到论文的Keywords进行二次搜索
- 使用Google Scholar、IEEE、ScienceDirect
- 查看参考文献列表找源头
- 查看Cited by找最新改进
- Google图片搜索:关键词 + "chart" 或 "data"
| 维度 | 国赛(CUMCM) | 美赛(MCM) |
|---|---|---|
| 导向 | 求"稳",注重结果正确性 | 求"活",注重创造性和合理性 |
| 评判 | 接近标准答案 | 自圆其说即可 |
| 优势 | 理论推导 | 计算机模拟、可视化 |
- Research = Search and Search Again:建模是不断尝试、追求完美的过程
- 展示过程比结果更重要:清晰的图表和步骤解释
- 作息同步:坚决不通宵,三人一起吃、一起睡、一起醒
- 创新点(Novelty):基于理解的建模 > 套用现成算法
我是一名准备参加美国大学生数学建模大赛的学生,现在我们小组在赛前准备的时候发现我们不能正确地去想到思路,如何去选题,以及如何去查找文献,将题目翻译为数学语言,以及如何去进行建模。
现在,我希望你先帮我翻译题目(不要添加额外内容,只翻译),然后讲解题目,分析有什么思路,以及帮我分析O奖论文为什么能有这么好的成果,他们在哪些方面比较突出,我应该怎么去学习他们,并且讲解一下他们的工作流程,一整套工作流程对我很重要。
这道题是一道正向过程逆向思考的题目
正向:人流 + 时间 + 材料 → 物理磨损
逆向:观察到的磨损反推 → 人流模式 + 使用时间 + 行进习惯
-
难点拆解:
数据获取的限制:题目明确要求“非破坏性”、“低成本”、“少工具”。这意味着你不能把楼梯切开做实验,也不能用昂贵的工业CT。你只能依赖照片、简单的测量(如尺子)、或者便携式3D扫描(现在手机LiDAR很普及,符合低成本定义)。
多解性:一个深的磨损坑,可能是因为“1000年里每天10个人走”,也可能是“10年里每天1000个人走”。如何区分这两者是建模的核心难点。
细节特征:题目问到了“方向”和“是否并排”。这需要你从磨损的形状(不仅仅是深度)入手。例如,上楼和下楼时的脚部着力点不同;单人走在中间,双人走在两侧。 -
建模思路
1.物理模型(核心):
Archard磨损定律:这是磨损领域最经典的公式,$V = k \frac{F \cdot s}{H}$ (磨损体积与正压力、滑动距离成正比,与硬度成反比)。几乎所有优秀论文都会基于此进行改进。
力学分布:建立脚踩在台阶上的压力分布模型(通常假设为高斯分布)。上楼时脚尖受力大,下楼时脚跟或全脚掌受力大,这会导致磨损形状的前后不对称。
2.统计/概率模型:
高斯混合模型 (GMM):用于分析“多人并行”问题。如果台阶横截面的磨损曲线有一个波峰,说明是单人走;如果有两个波峰,说明是双人并排。
蒙特卡洛模拟:模拟几百万次踩踏过程,生成磨损图像,然后与实际观测对比。
3.数据处理(计算机视觉):既然只能“看”,那么如何从照片中提取磨损深度?利用SfM (Structure from Motion) 或 单目深度估计 技术,从照片生成点云数据,这是体现“现代化工具”加分项的地方。 -
亮点:
对于一些优秀的组别,他们在数学公式之上对于“低成本获取数据这个”点进行了思考,用了点云图那些技术来进行了一些数据的构造并且模拟。我的思考:在读题的时候明确需求,任何一个需求都可以进行开展。
还有的组通过分析受力点不同,成功解释了如何区分“上楼”和“下楼”的磨损特征。并且用了一些高级的东西去模拟整一个磨损过程。我的思考:也许我们做题的时候如果有需要可以先进行一个过程上随时间的模拟。同时找论文的时候可以去找有关这一整个过程模拟实验的文章。 -
对于现实中找不到数据的题目或者数据集的解决方法:
查找对应正向过程的资料,自己建模进行模拟,然后套用反向推断模型进行建模,最后进行验证。
如果你现在手里有一张通过算法(如Monocular Depth Estimation)生成的楼梯点云图,不管它准不准,你都可以这样写论文:
数据获取 (Data Acquisition):“由于无法实地破坏取样,我们采用计算机视觉技术从照片重建了其3D点云表面$S_{obs}$ 。”
模型校准 (Calibration):“考虑到视觉重建的尺度是不确定的(Scale Ambiguity),我们利用楼梯的标准高度(通常为15-18cm)作为基准,对点云的Z轴进行了缩放校准。” —— 这一步体现了你的严谨性。
拟合与优化 (Optimization):“我们定义损失函数$L(\theta) = || S_{sim}(\theta) - S_{obs} ||^2$ ,其中$\theta$ 是我们要反推的历史参数。通过粒子群算法 (PSO) 寻找最优$\theta$ 。”
自我验证 (Self-Validation):“为了验证该反演算法的可靠性,我们生成了100组已知参数的合成数据。结果显示,该算法在噪声水平低于15%时,参数反演误差小于5%(如图X所示)。”
这一题的核心是多目标优化和平衡
题目含有正面反馈的负面反馈:
正面反馈:游客多 → 收入高 → 就业好
负面反馈:游客多 → 环境差 → 吸引力下降 → 游客少
-
建模思路
1.需求模型(Demand Model):预测在不同政策(如加税、限流)下,会有多少游客来?可以使用回归分析(Regression)或价格弹性模型(Price Elasticity),参考 O 奖论文中提到的 Nguyen 的研究。
2.经济模型(Economic Model):计算总收入 = 游客数$\times$ 人均消费 + 税收。计算成本 = 运营成本 + 维护成本。
3.环境/社会模型(Impact Model):量化隐性成本: 如何将“环境破坏”或“居民不满”转化为模型可用的数值?思路 1: 建立评价指标体系(Index System),如环境退化指数(0-1)。思路 2: 货币化(CVM 方法),将环境破坏折算成美元成本(如碳排放税)。
4.优化模型(Optimization Core):目标函数: Max (经济收益), Min (环境破坏), Max (居民满意度)。决策变量: 每日游客上限 ($N_{cap}$ )、酒店税率 ($Tax_{hotel}$ )、游客费 ($Fee_{visitor}$ )。约束条件: 基础设施承载力、最低收入要求、环境底线。
5.反馈机制(Feedback Loop):这是题目明确要求的。你赚的钱(额外税收)怎么花?花在环保$\rightarrow$ 减缓冰川消退。花在基建$\rightarrow$ 提高居民满意度。 -
学习点: 多目标太难处理时,尝试找到一个转化系数(如碳税价格),将非金钱因素货币化。
如果题目让你制定一个“计划(Plan)”,考虑引入时间变量$t$ ,使用微分方程或动态规划。
遇到“可持续发展”、“长期政策影响”、“反馈”类题目,系统动力学是首选工具。 -
优秀的思路: 对于经济环境和社会,这三种东西是互相竞争的,所以只能达到一个平衡,此时使用多目标规划,建立三个独立的函数:
$f_1(x)$ 是钱,$f_2(x)$ 是环境破坏,$f_3(x)$ 是居民不满。
还有题目不是静态的,应当是一个随着时间动态的,认为题目考察的是时间维度上的因果链条(队伍 2503268 甚至脑洞大开,使用了Lotka-Volterra 模型(捕食者-猎物模型)。把“游客”看作捕食者,把“自然资源”看作猎物。这种仿生学的类比非常吸睛,因为它生动地解释了为什么游客太多资源会崩溃,而资源崩溃后游客也会消失。)
AI总结:
1.先定性(Define the Narrative):拿到题目先讨论:我们是要做一个“平衡者”(多目标),还是要描述一个“循环系统”(系统动力学),还是要做一个“精算师”(全部货币化)?选定一个逻辑基调,不要混用。
2.找抓手(Quantify the Abstract):题目里的“居民满意度”、“冰川消退”都很虚。学习 O 奖: 找替代指标(Proxy)。满意度$\approx$ 1 / (当地人口密度 + 房价)。冰川消退$\approx$ f(当地气温, 游客碳排放)。不要直接用文字变量,一定要转化为可计算的公式。
3.闭环路(Close the Loop):千万不要是一个线性的过程(输入$\rightarrow$ 输出)。学习 O 奖: 你的输出(钱/环境)必须通过某种方式回到输入端,影响下一轮的计算。这才是题目要求的“可持续(Sustainable)”。
好困——20260115 0:28
- 分析问什么:从题目中找出因变量和自变量,因变量应当是我们要去研究的终极目的,比如经济收益时我们要去找是否有规律的要素。自变量应当是自然变化的要素,比如游客数量以及人流量,这取决于人的意愿。
- 简化假设,把影响不大的事情暂时先不纳入考虑。
- 模型结构,视频中推荐了一个总-分结构
总:$y$ =$f_1(x_1) + f_2(x_2)$
分:$f_1(x_1)$ =$g_1(x_{11}) + g_2(x_{12})$
$f_2(x_2)$ =$h_1(x_{21}) + h_2(x_{22})$ - 建立好模型后,有以下两种常见优化方式:
(1)改进(迭代升级):在原有模型上增加变量,静态$\leftrightarrow$ 动态, 单层$\leftrightarrow$ 多层,线性$\leftrightarrow$ 非线性
改进的一个本质是简单的转复杂,复杂的转简单
(2)拼接:把多个模型拼接在一起,形成一个更大的模型。 本质上是把对单的和对群的结合,比如视频中提到的模拟退火+遗传算法。
-
题目理解:直接用AI翻译了原文。
题目主要涉及了保险公司的工作原理,对于参保这件事,用了极端天气灾难作为一个例子,去进行探究。
以及题目要求:- 保险承保模型: 保险公司应在什么条件下承保?何时应选择承担风险?财产所有者可以做些什么来影响这一决策?为保险公司开发一个模型,决定是否在极端天气事件频发的地区承保 。利用两个位于不同大洲、经历极端天气的地区进行模型演示 。
- 建筑选址与韧性: 随着保险格局变化,未来的房地产决策必须确保建筑更具韧性且是有意为之。你的保险模型如何调整,以评估在特定地点何处建、如何建以及是否建?
- 保护与保存模型: 可能会有社区被建议停止承保,这会导致领导者在具有文化或社区意义的建筑上面临艰难抉择 。作为社区领导者,你如何识别应因其文化、历史、经济或社区重要性而受到保护的建筑?开发一个保护模型,确定应采取何种程度的保护措施 。
- 案例应用与建议信: 选择一个经历极端天气的历史地标(非哈特拉斯角灯塔),应用上述模型评估其价值 。撰写一封一页纸的社区信函,建议其未来的计划、时间表和成本提案 。
-
对此,我们今天挑选了“保险公司应在什么条件下承保?”这个问题进行讨论,以此梳理逻辑链。
-
对于模型,我们搜寻了保险公司的承保条件,本人的搜索关键词是“承保条件”以及“极端气候”,搜索到了三篇不错的论文。经过讨论,我们建立出了一个初步的模型:
$保费 > 赔付 + 成本 + 风险$ -
询问了AI:这些是关于这道题的O奖论文,请帮我阅读后分析:1.他们的建模思路是什么2.他们怎么解决是否承保的这个问题3.他们有把题目的四个要求全部达到吗,怎么做到的
AI的回答是:-
他们的建模思路是什么?
这些 O 奖论文的建模思路具有高度的一致性,通常遵循**“风险量化 -> 经济博弈 -> 综合评价”**的链条,但各篇在具体数学工具的选择上各有千秋:- 多尺度空间分析(2413552): 使用了 MGWR(多尺度地理加权回归),重点在于捕捉灾害在不同地理位置的非平稳性。
- 精算与破产理论(2407414 / 2410889): 使用了 POT(超阈值)模型来模拟极端损失的“厚尾”特征,并结合**Ruin Theory(破产理论)**来计算保险公司的破产概率(POR)。
- 均衡模型(2401102): 引入了需求曲线,建立“供给-需求平衡模型”(DBMI),认为可持续性不仅取决于保险公司赔得起,还取决于保费是否在业主的可负担范围内。
- 信息扩散理论(2410578): 采用信息扩散模型处理小样本下的极端灾害频率估计,这在气象数据不足时非常具有创新性。
-
他们怎么解决“是否承保”的这个问题?
O 奖论文没有简单地给出一个“是或否”,而是通过多准则边界来划定承保区间:- 指标 1:盈利平衡点(Profitability Index)。 计算 的概率。例如 2410889 篇通过蒙特卡洛模拟了 100 种场景,计算盈利概率,如果概率低于阈值(如 50%)则拒绝承保。
- 指标 2:破产概率(Ruin Probability)。 2407414 篇设定了破产概率上限。如果承保该区域会导致公司整体破产风险超过 5%(或其他预设值),则不予承保。
- 指标 3:可负担性(Affordability)。 2400860 篇引入了 CAPM(资本资产定价模型)的变体,评估保费占家庭收入的比重。如果保费高到业主买不起,那么即便保险公司想保,市场也会失效。
- 互动因素: 所有论文都强调了“风险缓解措施”对决策的影响。即如果业主安装了防洪闸或加固了屋顶,模型中的风险权重下降,原本“不可保”的地区会转变为“可保”。
-
他们有把题目的四个要求全部达到吗?是怎么做到的?
是的,O 奖论文的标配是全任务覆盖,以下是他们的执行路径:- 任务 1(承保模型):
- 做法: 建立基于精算学的决策函数,并选取两个差异巨大的地点(如:孟买 vs 凯恩斯,或 广东 vs 佛罗里达)进行横向对比。
- 任务 2(房地产决策/何处建):
- 做法: 将任务 1 的模型进行“反向求解”。通过改变地理坐标和建筑韧性参数,绘制风险地图。如果某地在未来 20 年的预测中保费过高或不可保,则输出结论为“不建议在该地建设”。
- 任务 3(遗产保护模型):
- 做法: 采用 MCDM(多准则决策分析)。他们建立了一套评价体系,指标包括:历史价值、文化影响力、经济关联度、修复成本。2401102 篇特别细化了经济、历史、文化和社区四个维度来评估“受保护的必要性”。
- 任务 4(案例应用与建议信):
- 做法: 选取具体目标(如 2410889 选了北京故宫,2401102 选了越南文庙)。他们不仅应用了模型,还给出了非常具体的预算表和时间轴。
- 亮点: 建议信部分通常排版精美(像真实的官方公函),包含具体的成本估算(如具体的美元/本币金额)和短期/长期的行动路线图。
-
总结给你的启示:
- 量化“软”指标: 别只谈钱,要给文化价值评分。
- 空间对比: 必须选两个地理特性截然不同的地区(如一个靠海防飓风,一个靠内陆防干旱)。
- 动态视角: O 奖论文基本都考虑了未来 20-50 年的气候趋势(常用时间序列模型如 ARIMA 或 趋势外推)。
- 可视化: 大量使用风险热力图、决策流程图和精美的建议信插图。
-
-
但是此时,我们似乎陷入了一个循环,我们一直在对一个子问题一直往下搜索文献,发现我们一直像递归一样没有个底。 对此,AI在总结了O奖论文后给出建议:
- O 奖论文是“逐步进化”还是“起步即顶配”?
答案是:绝大多数 O 奖论文采用的是“剥洋葱”式的逐步进化模型。虽然你在最终论文中看到的是一个逻辑严密的整体,但在建模过程中,他们通常遵循以下逻辑:- Step 1:建立 Baseline(基准模型)。 就是你之前提到的“保费 > 赔付 + 成本 + 风险”。这是一个普适的框架。
- Step 2:局部深化(子模型)。 针对公式里的“赔付”,引入极值理论(EVT)或文献里的泊松过程;针对“风险”,引入破产概率或资本成本。
- Step 3:优化与整合(创新点)。 加入气候变化的时间变量(2040年趋势)或业主的博弈反馈。
- O 奖论文的优势不在于模型有多么复杂到不可理解,而在于:
- 逻辑链条完整: 从气象预测到损失评估,再到保险决策,每一步都有据可依。
- 模块化设计: 每一个子模型(如任务 3 的遗产评估)都是独立的,但又服务于总目标。
- 如果一开始模型很“粗糙”,怎么带入数据?
这正是建模的精髓:“数据决定参数,参数校准模型”。即使模型起初很简单,你也可以通过以下步骤带入数据:- 第一步:寻找“核心锚点”数据赛题中给出了关键线索:
- 30-year average: 这告诉你要找过去 30 年的历史灾害赔付数据。
- 30-60% increase by 2040: 这是你模型中“气候变化增长因子”的基准。
- 57% protection gap: 这是你计算社会风险或市场潜力的参数。
- 第二步:参数估计(Parameter Estimation)
假设你的模型是$Premium = (1+\alpha) \times E[Loss]$ 。- 你可以从文献中找到
$\alpha$ (风险倍数)的典型值(如你刚才看的那篇文献提到的 2.33-2.69)。 - 利用你搜集到的特定地区(如孟买或佛罗里达)的灾害损失记录计算
$E[Loss]$ 。 - 即使模型粗糙,只要这几个关键数字带进去,你的结论就有了一层现实的底色。
- 你可以从文献中找到
- 第三步:灵敏度分析(Sensitivity Analysis)—— 这是补救“模型粗糙”的神器
如果你的模型一开始比较理想化(比如假设成本是固定的),你一定要做灵敏度分析。- 做法: 波动你的参数(比如让极端天气的频率增加 10%),观察承保决策是否会从“承保”变成“不承保”。
- 意义: O 奖评委非常看重这一点。它证明了虽然你的模型有简化,但你清楚地知道简化带来的影响。
- 第一步:寻找“核心锚点”数据赛题中给出了关键线索:
- 给你们小组的行动建议:
- 立刻打破“文献循环”停止搜索,开始定义变量: 拿出一张白纸,写下你们目前公认的“总公式”,然后把公式里的每一个字母(变量)标出来。
- 填坑式搜索: 现在的搜索应该是针对性的。例如:“我们需要一个描述飓风损失分布的参数”,搜到了就立刻带入,没搜到就给出一个合理的假设(Assumption),然后往下走。
- 分工并行:一人负责把“粗糙模型”写成 LaTeX 代码或文档。一人负责找具体的地点数据(地点 A 和地点 B)。一人负责编写求解这个“粗糙模型”的代码。
- 先跑通,再雕琢: 先用简单的线性增长代替复杂的气候预测。等程序能跑出结果,论文写了一半,你们再回来把那个“线性增长”升级成“非线性动力学模型”。
- 记住: 建模比赛比的是**“在规定时间内给出一个完整、合理且有洞察力的解决方案”**,而不是比谁搜到的文献更接近诺贝尔奖论文。
- O 奖论文是“逐步进化”还是“起步即顶配”?
-
但是对于是否承保,显然我们考虑少了东西。正常来说,我们不能只考虑盈利,还要考虑有没有人买,以及公司有没有能力承担:
- 盈利约束 (Profitability):
$Premium > E(Loss) + Expenses + Risk,Margin$ - 偿付能力约束 (Solvency): 破产概率
$P(Ruin) < \epsilon$ ($\epsilon$ 通常设为 1% 或 0.5%)。 - 市场约束 (Marketability):
$Premium < Affordability,Limit$ (业主买得起)。 - 为了能让模型工作起来,需要对上述公式中的每一个变量做“降维打击”式的假设。(也就是要开始进行一点数据模拟(编造))
- 盈利约束 (Profitability):
-
然后对于不等式如何建模这一格问题,纠结了一会,以下是一个例子:
第一步:定义决策变量与状态变量
在论文中,首先要明确你的符号系统,这会让模型显得非常专业:
-
决策变量:
$D \in {0, 1}$ (1表示承保,0表示拒绝) -
状态变量:
-
$P$ :总保费收入 (Total Premium) -
$L$ :期望赔付损失 (Expected Loss),通常$L = \sum (Frequency \times Severity)$ -
$E$ :运营与管理成本 (Operating Expenses) -
$R$ :风险边际/资本成本 (Risk Margin),用于应对极端波动的"缓冲资金" -
$A$ :可负担性上限 (Affordability Limit),即当地居民能承受的最高保费
-
第二步:构建"三重判别"不等式组
你的核心模型可以表达为:只有当以下三个不等式同时成立时,$D=1$。
-
盈利性判定 (Profitability Constraint)
$$P > (1 + r) \cdot E[L] + E + R$$ -
建模细节: 这里的
$(1+r)$ 是你加入的气候变化调节因子。你可以假设$r$ 随年份$t$ 增长(如参考赛题中 2040 年增长 30-60% 的数据)。 - 意义: 保证每一张保单在数学期望上是不亏钱的。
-
建模细节: 这里的
-
偿付能力/破产概率判定 (Solvency Constraint)
这是 O 奖论文拉开差距的地方。参考你阅读的《Basic Ratemaking》和破产理论:
$$Pr(\text{Capital} + P - L_{actual} < 0) < \epsilon$$ -
建模细节: 假设实际损失
$L_{actual}$ 服从一个厚尾分布(如 Generalized Pareto Distribution)。 - 意义: 保险公司不能只看"平均赔多少",还要看万一发生"百年一遇"的大灾,公司会不会赔到倒闭。$\epsilon$ 是你设定的容忍度(如 0.01)。
-
建模细节: 假设实际损失
-
市场可获得性判定 (Affordability Constraint)
$$P \leq \text{Income} \times \phi$$ -
建模细节:
$\text{Income}$ 是当地平均收入,$\phi$ 是保费占收入的最大比例(如 5%-10%)。 -
意义: 如果风险太高导致算出来的保费
$P$ 超过了$A$ ,即使保险公司想保,业主也买不起,此时承保也是不可持续的。
-
建模细节:
第三步:引入"业主行为"的修正系数(创新点)
为了回答题目中"所有者能做什么",你需要在模型里加入一个韧性调整系数
$\eta$ :$$L_{adjusted} = L_{base} \cdot \exp(-\gamma \cdot \text{Resilience})$$ -
变量含义:
$\text{Resilience}$ 代表业主对建筑加固的投入,$\gamma$ 是敏感度常数。 -
模型互动: 当业主提升韧性时,$L$ 下降
$\rightarrow$ $P$ 下降$\rightarrow$ 满足了"可负担性"和"盈利性"不等式,原本不被承保的房子现在变得"可承保"。
第四步:模型求解步骤(带入数据)
当你把这些不等式摆在论文里后,按照以下逻辑运行:
- 参数化: 利用搜集到的两地(地点A、B)的气象数据,拟合损失分布的参数(均值、方差、尾部系数)。
- 模拟: 使用蒙特卡洛模拟 (Monte Carlo Simulation)。模拟 10,000 次灾害发生的情况,计算在当前保费水平下,破产概率和盈利概率。
-
敏感性分析: 改变气候变化系数
$r$ ,观察不等式在什么时候失效(即$D$ 从 1 变成 0 的临界点)。
-
决策变量:
-
那么我们这些变量应该从哪里获取呢?
1. 期望赔付
$E[L]$ :历史灾害与损失数据这是最核心的数据。你需要找到过去 30 年某地区的受灾次数和经济损失。
-
官方/权威数据库:
- EM-DAT (The International Disaster Database):全球最著名的灾害数据库,包含灾害类型、死亡人数和经济损失(非常好用,需注册)。
- NOAA (National Centers for Environmental Information):如果你们选美国(如佛罗里达),这里有详细的"十亿美元级天气灾害"数据。
- UNISDR (联合国减灾署):提供各国灾害风险概况。
-
搜索技巧:直接搜索
[地区名] historical natural disaster loss data CSV或Florida hurricane insurance claims 1990-2023。 - 替代方案(如果没有具体金额):查找该地区的"灾害频率"(Frequency),损失金额(Severity)可以根据题目给出的"2022年增加115%"和"1万亿美元总损失"进行全量级估算。
2. 气候变化调节因子
$r$ :未来趋势数据用于模拟 2040 年风险增加 30-60% 的动态过程。
-
数据来源:
- IPCC (政府间气候变化专门委员会) 报告:查找 RCP 4.5 或 RCP 8.5 情景下的极端天气预测。
- World Bank Climate Change Knowledge Portal:提供全球各地的气温、降水预测曲线。
-
直接带入法:赛题已经给了"到 2040 年增加 30-60%",这是一个非常强的信号。你可以直接假设风险按年复合增长率(CAGR)增加:
$$(1+r)^{2040-2024} = 1.6$$ 从而反推出每年的$r$ 。
3. 可负担性上限
$A$ :经济背景数据用于判定保费是否超过了居民的承受能力。
-
数据来源:
- World Bank Open Data / IMF:获取各国的 GDP 或人均国民总收入(GNI)。
- Census.gov (美国人口普查局):如果选美国,可以精确到县(County)级的家庭收入中位数。
- 假设定值:参考精算文献,通常保费占收入的 5% - 8% 被认为是负担能力的红线。
4. 风险边际
$R$ 与破产概率$\epsilon$ :精算参数这部分通常不需要真实数据,而是需要文献支撑的定值。
-
获取方式:
-
从你手头的文献中拿:比如你之前阅读的《Catastrophe Risk Pricing》,里面提到倍数是 2.33。这就可以直接作为你的
$R$ 的计算依据。 -
行业标准:破产概率
$\epsilon$ 通常设为 0.5% 或 1%(遵循偿付能力监管标准如 Solvency II)。
-
从你手头的文献中拿:比如你之前阅读的《Catastrophe Risk Pricing》,里面提到倍数是 2.33。这就可以直接作为你的
5. 地标保护数据(针对任务 3 和 4)
这部分数据比较"软",需要搜集地标的属性。
-
数据来源:
- UNESCO World Heritage List (教科文组织):查看地标的描述,获取其历史和文化价值的定性评价。
- TripAdvisor / Google Maps 评论数:这是一个创新的数据获取点,用评论数来量化地标的"社区重要性"或"经济吸引力"。
- 维基百科(Wikipedia):获取地标的占地面积、建筑材料(用于评估修复成本)。
实战操作:如何快速拿到数据?(三步法)
-
确定两个具体的案例地点:
- 例如:美国佛罗里达州(高收入、高飓风风险、保险退出严重)和 孟加拉国/印度孟买(低收入、高洪涝风险、保护缺口大)。
-
利用 AI 辅助搜索具体的数字:
- 你可以问:"What is the average annual property insurance loss from hurricanes in Florida between 1990 and 2020?"
- 或者 "What is the average household income in Miami-Dade County?"
-
整理成 Excel:
- 即使只有 5-10 个年份的离散数据,你也可以用插值法或线性回归将其补全为连续序列。
-
官方/权威数据库:
-
那么现在来到最后一点,从建模到计算成果这一整个过程要如何执行:
第一步:将不等式转化为"平衡方程"
不等式
$P > (1+r)E[L] + E + R$ 告诉我们的是底线。为了运算,我们要找到那个临界保费($P_{critical}$),即:$$P_{critical} = (1+r) \cdot E[L] + E + R$$ 这就是保险公司为了不亏本、不倒闭,必须收取的最低保费。-
运算逻辑:
-
输入:你的历史灾害数据(算
$E[L]$ )、文献中的风险倍数(算$R$ )、运营比例(算$E$ )。 -
计算:算出当前和未来(2040年)的
$P_{critical}$ 。
-
输入:你的历史灾害数据(算
第二步:进行"可行域"交叉运算
现在你有了
$P_{critical}$ ,你需要拿它去碰撞另外两个限制条件。这才是运算的核心逻辑:-
负担能力碰撞:
- 计算:$P_{max} = \text{家庭收入} \times \phi$
-
判定:如果
$P_{critical} > P_{max}$ ,说明这个地方不可持续(业主买不起,保险公司保不起),模型输出"拒绝承保"。
-
破产概率碰撞(蒙特卡洛模拟):
- 这是最能拿高分的运算。由于极端天气是随机的,你不能只算平均值。
- 具体做法:在 Python 或 Matlab 中生成 10,000 个随机数,模拟未来一年的受灾情况。
- 计算:在这 10,000 次模拟中,有多少次"实际损失 > 保险公司储备金"。
-
判定:如果这个次数占比超过了
$\epsilon$ (如 1%),模型输出"拒绝承保"。
第三步:运算流程建议(以 Python 为例)
如果你不知道怎么写代码,可以参考这个逻辑结构:
- 数据读取:读入两个地点(如佛罗里达和上海)的 GDP、人均收入、近 30 年灾害损失。
-
参数拟合:用
scipy.stats拟合损失分布(比如 GPD 分布),得到损失的形状参数。 -
循环计算:
# 伪代码思路 for year in range(2024, 2041): # 1. 根据气候增长因子更新期望损失 E[L] EL_future = EL_today * (1 + r)**(year - 2024) # 2. 计算临界保费 P_crit = EL_future * (1 + risk_margin) + overhead # 3. 检查负担能力 Affordability = Income_future * phi # 4. 判断逻辑 if P_crit < Affordability: Status = "承保" else: Status = "撤出市场"
- 绘图输出:画出随时间推移,保费曲线和负担能力红线的交点。那个交点就是保险行业在该地区崩溃的时间点。
总结:你的运算目标是什么?
你的运算不是为了算出一个确定的"保费是多少钱",而是为了回答题目要求的三个核心结论:
- 临界点:在什么条件下(风险增加到多少、业主收入跌到多少),保险公司会停止承保?
-
空间差异:为什么 A 地区可以继续保,而 B 地区不行?(对比
$P_{crit}$ 和$P_{max}$ 的缺口) -
敏感性:如果业主加固了房子(降低了
$E[L]$ ),这个崩溃的时间点能往后推迟多少年?
-
运算逻辑:
总的来说比上一次进度多很多了。——20260116 3:09
这是一道大数据题目,目的是预测每个国家的奖牌数(包括金牌数和奖牌总数)。该模型应能传达预测的准确性,并说明预测的不确定性
它的难点在于数据的稀疏性(很多国家奖牌很少)、时间序列的短周期性(4年一次,样本少)以及因果推断(教练效应)。
这道题是典型的网络流与多目标优化问题。核心在于构建一个能够反映巴尔的摩交通现状的数学模型(通常是图论模型),并利用该模型评估突发事件(桥梁倒塌)和规划项目(公交/行人优化、新项目推荐)的影响。
至于什么是图论模型……还没学到
题目提供了车辆计数数据,需要结合开源地图数据(如OpenStreetMap)来构建网络。
- "交通网络"
$\rightarrow$ 图论 (Graph Theory):- 将路口、公交站点抽象为节点 (Nodes,
$V$ )。 - 将道路、公交线路抽象为边 (Edges,
$E$ )。 - 边的权重 (Weights) 可以是:距离、通行时间、通行能力(Capacity)、车流量(AADT)。
- 将路口、公交站点抽象为节点 (Nodes,
- "利益相关者"
$\rightarrow$ 目标函数与约束 (Objective Functions & Constraints):- 通勤者:追求最小化通行时间 (
$\min \sum t_{ij}$ ). - 政府:追求最大化网络效率或最小化建设成本。
- 居民:追求公共交通覆盖率(Coverage Rate)或可达性(Accessibility)。
- 通勤者:追求最小化通行时间 (
- "桥梁倒塌的影响"
$\rightarrow$ 网络拓扑结构的改变与流量重分配:- 移除图中的某条边
$e_{bridge}$ 。 - 使用最短路径算法 (Dijkstra) 或 交通流分配模型 (User Equilibrium / Wardrop原理) 重新计算流量分布,观察拥堵指数(Congestion Index)的变化。
- 移除图中的某条边
1. 地图可视化: 所有O奖论文都不仅仅是画抽象的图,而是结合了真实的地理信息系统 (GIS)。例如 Team 2507692 和 Team 2504188 都使用了ArcGIS或Python的OSMnx库,将巴尔的摩的真实路网画了出来。评委看到真实的地图,第一印象分极高。
2. 多层网络 (Multi-layer Network): Team 2519935 和 Team 2516219 没有只把交通看作一层,而是建立了“汽车层”、“公交层”、“步行层”的复合网络。这非常符合现代交通建模的趋势。
- 0-6h:三人一起读题,讨论选D题的可行性。D题通常需要大量数据,确认是否能找到OpenStreetMap数据或题目附件数据是否够用。
- 6-12h:查文献 (Literature Review)。
- 怎么查? 使用Google Scholar搜索关键词:Urban transportation network modeling, Bridge collapse traffic impact, Bus network optimization, Multi-layer transport network.
- 查什么? 找一篇类似的学术论文,模仿它的模型框架。
- 12-24h:数据预处理。编程手开始清洗数据(去重、补全缺失值),并将数据转化为图的邻接矩阵。建模手确定Task 1的数学模型(如建立评价指标体系)。
- Task 1 (桥梁影响):必须在第二天中午前完成。建立网络模型,跑出"倒塌前"和"倒塌后"的两组数据,生成对比热力图。
- Task 2 (具体项目):开始做公交/行人模型。可以利用Task 1的网络基础,增加"公交层"。
- 写作跟进:写作手开始写Introduction, Data Processing, 和 Task 1的草稿。不要等模型全做完再写!
- Task 3 (综合项目):这是拉分项。设计一个有创意的项目(如:新建一条地铁线、智能潮汐车道等)。建立优化模型(目标函数+约束条件),用算法求解。
- 灵敏度分析 (Sensitivity Analysis):必做!改变参数(如车流增长率、建设成本),看结果是否稳定。O奖论文必备。
- 可视化美化:把Matlab/Python出的丑图,用Visio或AI (Illustrator) 修饰一下,或者直接用代码调出出版级插图。
- Memo (备忘录):写给市长的信。语言要由学术转为行政风格,通俗易懂,强调结果和建议,不要堆砌公式。
- 摘要 (Summary):最重要的一页!三人一起打磨。包含:解决了什么问题、用了什么模型、得出了什么量化结论、有什么创新点。
- 排版检查:检查公式编号、图表引用、字体统一。确保符合25页限制。
- AI报告:如果用了ChatGPT润色或写代码,按要求生成AI使用报告。
- 非线性规划模型与求解策略:
$y = f_1(x_1) + f_2(x_2)$ 其中$f_1(x_1) = g(x)$ 是非线性函数。 - 正数规划:又叫0-1规划,变量只能取0或1。常见于选址问题、路径选择问题等。
- 多目标规划:帕累托最优与权重法。假设我们有
$y_1, y_2$ 我们希望有$min,y_1$ 以及$max,y_2$ ,帕累托法就是在图表中给出不同选择,例如最低收益最低收益,资金收益成正比,以及收益最高点。权重法可以视为$min,(\alpha y_1 - \beta y_2)$ ,其中$\alpha, \beta$ 是权重。
某资产管理公司需要在2023年构建一个多元化的投资组合,面临如何在控制风险的同时最大化收益的决策难题 (这里的风险和收益就是多目标中的
核心思想:当目标函数或约束条件中包含非线性项(如
标准形式:
常见求解方法:
-
梯度下降法:沿负梯度方向迭代
$x_{k+1} = x_k - \alpha \nabla f(x_k)$ - 牛顿法:利用二阶导数加速收敛
- 序列二次规划 (SQP):将问题转化为一系列二次规划子问题
- 内点法:处理约束条件的有效方法
应用场景:投资组合优化(风险是收益的二次函数)、曲线拟合、化工过程优化
核心思想:决策变量必须取整数值,0-1规划是其特例(变量只能取0或1)。
标准形式:
常见求解方法:
- 分支定界法 (Branch and Bound):通过树结构枚举可行解
- 割平面法 (Cutting Plane):逐步添加线性约束逼近整数解
- 启发式算法:模拟退火、遗传算法处理大规模问题
应用场景:
| 场景 | 变量含义 |
|---|---|
| 选址问题 |
|
| 投资决策 |
|
| 排班问题 |
|
| 背包问题 |
|
核心思想:同时优化多个可能冲突的目标。
标准形式:
常见求解方法:
| 方法 | 思路 | 公式 |
|---|---|---|
| 加权法 | 将多目标转为单目标 | |
| 保留一个目标,其他变约束 | ||
| 帕累托最优 | 找出所有非支配解 | 使用 NSGA-II 等进化算法 |
| 目标规划法 | 设定目标值,最小化偏差 |
帕累托最优 (Pareto Optimality):
- 定义:解
$x^*$ 是帕累托最优的,当且仅当不存在另一个可行解使某个目标更好而其他目标不变差 - 解集称为 帕累托前沿 (Pareto Front)
- 选择最终方案时需要决策者根据偏好权衡
应用场景:资产配置(收益vs风险)、供应链设计(成本vs服务水平)、工程设计(性能vs成本)
开始 → 目标函数/约束是否含非线性项?
↓是 ↓否
非线性规划 变量是否必须取整数?
↓是 ↓否
整数规划 线性规划
↓
只能取0或1?
↓是 ↓否
0-1规划 一般整数规划
同时考虑:有多个目标?→ 多目标规划
在 modelCode/models/optimization/ 目录下提供了完整的实现:
advanced_nonlinear_programming.py:完整的非线性规划工具箱advanced_integer_programming.py:整数规划与0-1规划工具箱advanced_multi_objective.py:多目标规划与帕累托分析工具箱
使用流程:数据预处理 → 模型构建与求解 → 结果可视化
- 遗传算法 (Genetic Algorithm, GA):一开始生成n个个体(解),然后通过选择、交叉、变异生成新一代个体,迭代直到收敛。
- 模拟自然选择与遗传机制,适用于复杂优化问题。
- 关键步骤:选择 (Selection)、交叉 (Crossover)、变异 (Mutation)。
- 应用场景:组合优化、路径规划、参数调优。
- 粒子群算法 (Particle Swarm Optimization, PSO):体现在自我进行进化,创建n个个体,遍历每个个体,并且进行梯度下降,每次迭代后更新个体位置,直到收敛。
- 模拟鸟群觅食行为,适用于连续优化问题。
- 关键参数:惯性权重 (Inertia Weight)、认知系数 (Cognitive Coefficient)、社会系数 (Social Coefficient)。
- 应用场景:函数优化、神经网络训练、控制系统设计。
- 模拟退火算法 (Simulated Annealing, SA):对于一个个体进行更新的算法,对于这个个体的
$x$ 进行微小扰动,计算新的个体的目标函数值,如果更优则接受,否则有概率变得更差,以一定概率接受,直到收敛。- 模拟物理退火过程,适用于全局优化问题。
- 关键参数:初始温度 (Initial Temperature)、降温速率 (Cooling Rate)。
- 应用场景:组合优化、路径规划、调度问题。
- 蚁群算法 (Ant Colony Optimization, ACO):模拟蚂蚁觅食行为,通过信息素更新路径选择概率,迭代寻找最优解。
- 适用于离散优化问题,如路径规划和调度问题。
- 关键参数:信息素挥发率 (Pheromone Evaporation Rate)、启发函数权重 (Heuristic Weight)。
- 应用场景:旅行商问题 (TSP)、车辆路径问题 (VRP)、网络路由。
TSP问题要求找到访问所有城市并反会七点的最短路径,是NP-hard问题的典型代表。我们使用一个包含20个城市的实例,城市坐标随机生成在100*100的平面内。通过遗传算法、粒子群算法和模拟退火算法分别求解该问题,并比较它们的求解质量,收敛速度和稳定性。
核心思想:模拟达尔文进化论的"适者生存",通过种群进化逐步逼近最优解。
数学表达:
- 个体编码:$\mathbf{x} = [x_1, x_2, ..., x_n]$(可为实数或二进制)
- 适应度函数:$f(\mathbf{x})$(待优化的目标函数)
- 选择概率:$P(x_i) = \frac{f(x_i)}{\sum_{j=1}^{N} f(x_j)}$(轮盘赌选择)
关键操作:
| 操作 | 公式/方法 | 参数建议 |
|---|---|---|
| 选择 | 轮盘赌、锦标赛选择 | 锦标赛size=3-5 |
| 交叉 | ||
| 变异 |
优缺点:
- ✅ 全局搜索能力强,不依赖梯度信息
- ✅ 适应性好,适用于离散/连续问题
- ❌ 收敛速度相对较慢
- ❌ 参数选择对结果影响较大
核心思想:模拟鸟群觅食,每个粒子根据自身经验和群体经验调整飞行方向。
数学表达:
- 速度更新:$v_i^{t+1} = w \cdot v_i^t + c_1 r_1 (p_{best,i} - x_i^t) + c_2 r_2 (g_{best} - x_i^t)$
- 位置更新:$x_i^{t+1} = x_i^t + v_i^{t+1}$
其中:
-
$w$ :惯性权重(Inertia Weight),控制探索与开发的平衡 -
$c_1, c_2$ :认知与社会系数,通常$c_1 + c_2 \approx 4$ -
$p_{best}$ :个体历史最优位置 -
$g_{best}$ :全局最优位置
参数调优经验:
| 参数 | 范围 | 效果 |
|---|---|---|
| 0.4 ~ 0.9 | 大→全局搜索,小→局部收敛 | |
| 1.5 ~ 2.5 | 个体学习能力 | |
| 1.5 ~ 2.5 | 社会学习能力 |
自适应权重策略:$w(t) = w_{max} - \frac{(w_{max} - w_{min}) \cdot t}{T_{max}}$
核心思想:模拟金属退火过程,高温时接受劣解以跳出局部最优,低温时趋于稳定。
数学表达:
- Metropolis准则:新解接受概率 $P = \begin{cases} 1 & \text{if } \Delta f < 0 \ e^{-\Delta f / T} & \text{if } \Delta f \geq 0 \end{cases}$
- 降温策略:$T_{k+1} = \alpha \cdot T_k$(指数降温,$\alpha = 0.9 \sim 0.99$)
算法流程:
初始化:随机解 x₀,初始温度 T₀
While T > T_min:
生成邻域解 x' = x + δ
计算 Δf = f(x') - f(x)
if Δf < 0 or random() < exp(-Δf/T):
x = x' # 接受新解
T = α × T # 降温
关键参数:
| 参数 | 建议值 | 说明 |
|---|---|---|
| 问题相关 | 初始接受概率约0.8 | |
| 0.9 ~ 0.99 | 越大越慢但越精确 | |
| 终止温度 |
核心思想:模拟蚂蚁觅食的信息素机制,通过正反馈不断强化优质路径。
数学表达:
- 转移概率:$P_{ij}^k = \frac{[\tau_{ij}]^\alpha \cdot [\eta_{ij}]^\beta}{\sum_{l \in \text{allowed}} [\tau_{il}]^\alpha \cdot [\eta_{il}]^\beta}$
- 信息素更新:$\tau_{ij}(t+1) = (1-\rho) \cdot \tau_{ij}(t) + \sum_{k=1}^{m} \Delta\tau_{ij}^k$
- 信息素增量:$\Delta\tau_{ij}^k = \frac{Q}{L_k}$($L_k$为蚂蚁$k$的路径长度)
其中:
-
$\tau_{ij}$ :边$(i,j)$上的信息素浓度 -
$\eta_{ij} = 1/d_{ij}$ :启发式信息(距离倒数) -
$\alpha, \beta$ :信息素与启发式因子的相对重要性
参数调优经验:
| 参数 | 范围 | 说明 |
|---|---|---|
| 1 ~ 5 | 信息素重要性 | |
| 2 ~ 5 | 启发式因子重要性(通常 |
|
| 0.1 ~ 0.5 | 信息素挥发系数 | |
| 问题相关 | 信息素增量系数 |
| 维度 | GA | PSO | SA | ACO |
|---|---|---|---|---|
| 问题类型 | 通用 | 连续优化为主 | 通用 | 组合优化为主 |
| 收敛速度 | 中 | 快 | 慢 | 中 |
| 全局搜索 | 强 | 中 | 强 | 强 |
| 参数敏感性 | 高 | 中 | 低 | 中 |
| 并行性 | 高 | 高 | 低 | 高 |
| 典型应用 | 调度、组合 | 参数调优 | 路径、调度 | TSP、VRP |
选择建议:
- 连续优化问题(如函数寻优、参数标定)→ 优先 PSO
- 组合优化问题(如TSP、背包问题)→ 优先 ACO 或 GA
- 需要跳出局部最优(复杂多峰函数)→ 考虑 SA 或 GA+SA混合
- 问题规模大、需要并行→ GA 或 PSO
在 modelCode/models/optimization/optimization_toolkit.py 中提供了完整的实现:
ParticleSwarmOptimization:粒子群优化算法GeneticAlgorithm:遗传算法SimulatedAnnealing:模拟退火算法AntColonyOptimization:蚁群算法(TSP专用)OptimizationVisualizer:优化过程可视化AlgorithmComparator:算法对比分析
使用流程:问题定义 → 算法选择 → 参数设置 → 优化求解 → 结果可视化 → 算法对比
- 美赛中综合评价很重要:几乎所有需要"排名"、"选优"、"比较"的问题都需要综合评价
- 核心思路:建立评价指标体系,例如
$综合得分 = w_1 x_1 + w_2 x_2 + ... + w_n x_n$ - 关键问题:如何确定各指标的权重
$w_i$ ?—— 这就是各种赋权方法的核心
| 分类 | 方法 | 特点 | 适用场景 |
|---|---|---|---|
| 主观赋权 | 层次分析法(AHP) | 依赖专家经验 | 有专家资源、需要体现主观偏好 |
| 客观赋权 | 熵权法 | 基于数据离散程度 | 指标间相关性较低 |
| 客观赋权 | CRITIC法 | 考虑对比强度+冲突性 | 指标间存在较强相关性 |
| 综合赋权 | 组合赋权法 | 主观+客观结合 | 需要平衡专家意见和数据特征 |
核心思想:信息论中,熵表示系统的无序程度。指标变异程度越大(离散程度越高),熵值越小,信息量越大,权重越高。
数学公式:
Step 1: 数据标准化(极差法) $$x'{ij} = \frac{x{ij} - \min(x_j)}{\max(x_j) - \min(x_j)}$$
Step 2: 计算比例矩阵 $$p_{ij} = \frac{x'{ij}}{\sum{i=1}^{n} x'_{ij}}$$
Step 3: 计算熵值
Step 4: 计算权重
优缺点:
- ✅ 完全客观,无需人为干预
- ✅ 能反映数据的信息量
- ❌ 对异常值敏感
- ❌ 未考虑指标间的相关性
核心思想:综合考虑两个维度——对比强度(Contrast Intensity) 和 冲突性(Conflicting)。
- 对比强度:用标准差衡量,标准差越大,变异程度越高
- 冲突性:用相关系数衡量,与其他指标相关性越低,冲突性越大
数学公式:
Step 1: 计算标准差(对比强度)
Step 2: 计算相关系数矩阵 $$r_{jk} = \frac{\sum_{i=1}^{n}(x_{ij} - \bar{x}j)(x{ik} - \bar{x}k)}{\sqrt{\sum{i=1}^{n}(x_{ij} - \bar{x}j)^2 \cdot \sum{i=1}^{n}(x_{ik} - \bar{x}_k)^2}}$$
Step 3: 计算信息量(综合对比强度和冲突性)
Step 4: 计算权重
优缺点:
- ✅ 同时考虑数据变异性和指标间相关性
- ✅ 对冗余指标的权重会自动降低
- ❌ 计算相对复杂
- ❌ 对标准化方法敏感
熵权法 vs CRITIC法 选择指南:
| 场景 | 推荐方法 |
|---|---|
| 指标间独立性较强 | 熵权法 |
| 指标间存在明显相关性 | CRITIC法 |
| 需要快速赋权 | 熵权法 |
| 追求全面考虑 | CRITIC法 或 组合赋权 |
核心思想:通过计算比较序列与参考序列的"形状"相似程度来评价。曲线形状越接近,关联度越高。
数学公式:
Step 1: 数据标准化(均值化或初值化) $$x'{ij} = \frac{x{ij}}{\bar{x}_j}$$
Step 2: 确定参考序列(通常取每个指标的最优值)
Step 3: 计算差序列 $$\Delta_{ij} = |x'{0j} - x'{ij}|$$
Step 4: 计算关联系数
其中
Step 5: 计算关联度
应用场景:
- 适用于小样本、贫信息的系统分析
- 找出影响系统的主要因素
- 评价各方案与理想方案的接近程度
核心思想:将复杂问题分解为层次结构,通过两两比较构建判断矩阵,计算各层元素的权重。
1-9标度法:
| 标度 | 含义 |
|---|---|
| 1 | 同等重要 |
| 3 | 稍微重要 |
| 5 | 明显重要 |
| 7 | 强烈重要 |
| 9 | 极端重要 |
| 2,4,6,8 | 相邻判断的中间值 |
建模步骤:
Step 1: 构建层次结构
目标层
/ | \
准则1 准则2 准则3
/ \ / \ / \
方案A 方案B 方案C
Step 2: 构造判断矩阵 $$A = \begin{bmatrix} 1 & a_{12} & a_{13} \ 1/a_{12} & 1 & a_{23} \ 1/a_{13} & 1/a_{23} & 1 \end{bmatrix}$$
Step 3: 计算权重向量(特征值法)
Step 4: 一致性检验
其中 RI 为平均随机一致性指标(查表获得)
| n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| RI | 0 | 0 | 0.58 | 0.90 | 1.12 | 1.24 | 1.32 | 1.41 | 1.45 |
核心思想:找出所有方案中的"最优"和"最劣",计算各方案到两者的距离,距离最优近且距离最劣远的方案最好。
数学公式:
Step 1: 数据标准化(同熵权法)
Step 2: 加权标准化
Step 3: 确定理想解
Step 4: 计算距离
Step 5: 计算贴近度并排序
贴近度
┌─────────────────────────────────────────────────────────────────┐
│ 综合评价建模流程 │
├─────────────────────────────────────────────────────────────────┤
│ Step 1: 数据预处理 │
│ ├── 缺失值处理(均值/中值填充) │
│ ├── 异常值检测(IQR/3σ法则) │
│ └── 指标类型判断(正向/负向/适度型) │
├─────────────────────────────────────────────────────────────────┤
│ Step 2: 数据标准化 │
│ ├── 极差标准化(Min-Max归一化) │
│ ├── Z-score标准化 │
│ └── 负向指标转正向 │
├─────────────────────────────────────────────────────────────────┤
│ Step 3: 确定权重 │
│ ├── 客观法:熵权法 / CRITIC法 │
│ ├── 主观法:AHP层次分析法 │
│ └── 组合法:线性组合 w = α·w_主观 + (1-α)·w_客观 │
├─────────────────────────────────────────────────────────────────┤
│ Step 4: 综合评价 │
│ ├── TOPSIS排序 │
│ ├── 灰色关联分析 │
│ └── 加权求和法 │
├─────────────────────────────────────────────────────────────────┤
│ Step 5: 结果可视化 │
│ ├── 权重分布图(条形图/饼图) │
│ ├── 评价结果排序图 │
│ ├── 雷达图(多维度对比) │
│ └── 热力图(评价矩阵可视化) │
├─────────────────────────────────────────────────────────────────┤
│ Step 6: 灵敏度分析 │
│ └── 权重扰动分析(验证结论稳健性) │
└─────────────────────────────────────────────────────────────────┘
在 modelCode/models/evaluation/ 目录下提供了完整的实现:
evaluation_toolkit.py:熵权法 + TOPSIS + CRITIC法 + 可视化evaluation_methods.py:AHP + DEA + 模糊综合评价 + 灰色关联分析comprehensive_evaluation_tutorial.py:完整使用教程(数据预处理→模型→可视化的串联示例)
使用流程:数据加载 → 预处理 → 赋权(熵权/CRITIC/AHP) → 综合评价(TOPSIS/GRA) → 可视化 → 灵敏度分析
- 用模型去拟合显示的数据
- 要使用最小二乘法 (Least Squares Method) 去拟合数据
| 分类 | 方法 | 适用场景 |
|---|---|---|
| 时间序列分析 | ARIMA/SARIMA | 经济指标预测、销售量预测 |
| 灰色预测 | GM(1,1) | 小样本数据预测、系统行为预测 |
| 机器学习 | SVR、随机森林 | 复杂非线性关系预测、大数据预测 |
| 深度学习 | LSTM、GRU | 长序列依赖预测、语音识别 |
核心思想:通过最小化预测值与实际值之间的残差平方和来拟合模型。
数学表达: $$\min_{\beta} \sum_{i=1}^{n}(y_i - \hat{y}i)^2 = \min{\beta} \sum_{i=1}^{n}(y_i - X_i\beta)^2$$
正规方程求解:
应用:线性回归、多项式回归、曲线拟合
| 模型 | 数学表达 | 适用条件 | 优缺点 |
|---|---|---|---|
| AR(p) | 平稳序列 | 简单,但忽略外部冲击 | |
| MA(q) | 平稳序列 | 适合短期相关 | |
| ARMA(p,q) | AR + MA 组合 | 平稳序列 | 兼顾两者优点 |
| ARIMA(p,d,q) | 差分后的ARMA | 非平稳序列 | 最常用,d为差分阶数 |
| SARIMA | ARIMA + 季节项 | 有季节性的序列 | 处理周期性波动 |
ARIMA建模步骤:
1. 平稳性检验 → ADF检验(p<0.05则平稳)
2. 差分处理 → 若不平稳,进行d阶差分
3. 定阶(p,q) → 观察ACF/PACF图,或用AIC/BIC准则
4. 参数估计 → 最大似然估计
5. 模型诊断 → 残差白噪声检验(Ljung-Box检验)
6. 预测 → 滚动预测或一步预测
适用场景:数据量少(4-10个)、信息不完全的系统
核心步骤:
- 累加生成:$x^{(1)}(k) = \sum_{i=1}^{k}x^{(0)}(i)$
- 建立微分方程:$\frac{dx^{(1)}}{dt} + ax^{(1)} = b$
- 求解得时间响应函数:$\hat{x}^{(1)}(k+1) = \left(x^{(0)}(1) - \frac{b}{a}\right)e^{-ak} + \frac{b}{a}$
- 累减还原:$\hat{x}^{(0)}(k) = \hat{x}^{(1)}(k) - \hat{x}^{(1)}(k-1)$
模型检验:
| 指标 | 公式 | 精度等级 |
|---|---|---|
| 后验差比C | 好(<0.35)、合格(<0.5)、勉强(<0.65) | |
| 小误差概率P | 残差<0.6745$S_1$的比例 | 好(>0.95)、合格(>0.8)、勉强(>0.7) |
| 方法 | 公式 | 适用场景 |
|---|---|---|
| 一次指数平滑 | 无趋势、无季节性 | |
| 二次指数平滑(Holt) | 加入趋势项 |
有趋势、无季节性 |
| 三次指数平滑(Holt-Winters) | 加入季节项 |
有趋势、有季节性 |
参数选择:
-
$\alpha$ :水平平滑系数(0.1-0.3适合平稳数据,0.6-0.9适合波动数据) -
$\beta$ :趋势平滑系数 -
$\gamma$ :季节平滑系数
| 方法 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 随机森林 | 多棵决策树投票 | 防过拟合、可解释性 | 对时序数据支持有限 |
| XGBoost | 梯度提升树 | 精度高、速度快 | 需调参 |
| SVR | 支持向量回归 | 小样本效果好 | 大数据慢 |
| LSTM | 长短期记忆网络 | 捕捉长期依赖 | 需大量数据、调参复杂 |
┌────────────────────────────────────────────────────────────┐
│ 预测模型选择决策树 │
├────────────────────────────────────────────────────────────┤
│ │
│ 数据量多少? │
│ ├─ <10个数据点 → 灰色预测 GM(1,1) │
│ ├─ 10-100个 → 指数平滑 / ARIMA │
│ └─ >100个 → 机器学习 / 深度学习 │
│ │
│ 数据是否平稳? │
│ ├─ 平稳 → ARMA │
│ └─ 非平稳 → 差分后用ARIMA / 或直接用机器学习 │
│ │
│ 是否有季节性? │
│ ├─ 有明显周期 → SARIMA / Holt-Winters │
│ └─ 无周期 → ARIMA / 指数平滑 │
│ │
│ 是否有多个自变量? │
│ ├─ 单变量时间序列 → ARIMA / 指数平滑 │
│ └─ 多变量 → 回归分析 / 随机森林 / XGBoost │
│ │
└────────────────────────────────────────────────────────────┘
| 指标 | 公式 | 含义 | 特点 |
|---|---|---|---|
| MSE | 均方误差 | 对异常值敏感 | |
| RMSE | 均方根误差 | 与原数据同量纲 | |
| MAE | $\frac{1}{n}\sum | y-\hat{y} | $ |
| MAPE | $\frac{100%}{n}\sum | \frac{y-\hat{y}}{y} | $ |
| R² | 决定系数 | 越接近1越好 |
在 modelCode/models/prediction/ 目录下提供了完整的实现:
prediction_toolkit.py:移动平均、指数平滑、回归预测、可视化arma_prediction.py:ARIMA时间序列预测grey_prediction.py:GM(1,1)灰色预测模型xgboost_regression.py:XGBoost回归预测quadratic_exponential_smoothing.py:二次指数平滑comprehensive_prediction_tutorial.py:完整教程(推荐入口)
使用流程:数据加载 → 平稳性检验/预处理 → 模型选择与拟合 → 预测 → 评价指标计算 → 可视化
2024 ICM 问题 F:减少非法野生动物贸易
非法野生动物贸易对我们的环境产生负面影响,并威胁到全球生物多样性。据估计,该贸易每年涉及高达265亿美元,被认为是全球第四大非法贸易。
你们的任务是开发一个为期5年的数据驱动项目,旨在显著减少非法野生动物贸易。你们的目标是说服一位客户执行你们的项目。为此,你们必须选择一位客户,并为该客户选择一个合适的项目。
你们的工作应探讨以下子问题:
-
谁是你们的客户?该客户现实中能做什么?(即:该客户应拥有实施你所提议项目所需的权力、资源和兴趣。)
-
解释为什么你们开发的项目适合这个客户。支持选择该提议项目的研究(来自已发表文献及你们自己的分析)是什么?如何通过数据驱动的分析来说服客户承担这个项目?客户执行该项目还需要哪些额外的权力和资源?
-
如果项目得以实施,会发生什么?对非法野生动物贸易会产生哪些可衡量的影响?你们进行了什么分析来确定这一点?
-
项目达到预期目标的可能性有多大?基于情境化的灵敏度分析,是否存在可能不成比例地帮助或损害项目达成目标的条件或事件?
虽然你们可以将方法局限于非法野生动物贸易,但也可以将其视为一个更大型复杂系统的一部分。具体而言,可以考虑其他领域的全球努力如何与减少非法野生动物贸易相结合。
| 关键词 | 用途 |
|---|---|
| Illegal Wildlife Trade (IWT) statistics / trends | 非法野生动物贸易统计/趋势 |
| CITES trade database | 濒危野生动植物种国际贸易公约数据库——核心数据源 |
| Wildlife trafficking supply chain | 野生动物非法贩运供应链 |
| Financial volume of wildlife crime | 野生动物犯罪的经济规模 |
| 关键词 | 用途 |
|---|---|
| INTERPOL Wildlife Crime Working Group | 国际刑警组织野生动物犯罪工作组 |
| World Customs Organization (WCO) | 世界海关组织 |
| TRAFFIC (Wildlife Trade Monitoring Network) | 野生动物贸易监测网络(NGO) |
| UNODC | 联合国毒品和事务公约办公室 |
| 关键词 | 用途 |
|---|---|
| Nexus between wildlife trafficking and money laundering | 野生动物贩运与洗钱的关联 |
| Zoonotic diseases and illegal wildlife trade | 人畜共患病与非法贸易 |
| Convergence of illicit trade | 非法贸易的交汇(毒品、武器与野生动物走私的重合路径) |
初始困惑:我们最初不确定应该选择什么样的客户,是选海关、WWF还是政府机构?
讨论过程:
- 题目明确提到评委看重"创意性"
- 传统选项(各国海关、国家公园管理局、WWF等NGO)可能过于常规
解答:可以考虑创意选项:
- 科技巨头:开发AI算法监控社交媒体上的非法交易
- 大型物流公司(DHL/FedEx):改进供应链审查机制
- 国际金融监管机构:通过追踪"非法资金流"而非动物本身来打击犯罪
初始困惑:我们想让方案能带给需求侧的人多余野生动物贸易的利益,但不知道如何搜索资料。
讨论过程:需求侧切入应从**"风险规避"、"替代价值"和"身份溢价"**三个维度思考。
解答:搜索关键词指引
| 维度 | 搜索关键词 |
|---|---|
| 风险与安全 | Zoonotic disease risk and illegal wildlife consumption |
| Biosafety regulations in wildlife trade | |
| Legal risk of purchasing CITES-listed species | |
| 经济与替代利益 | Sustainability certifications for wildlife products |
| Traceability systems for legal wildlife trade | |
| Synthetics vs wild-sourced traditional medicine | |
| 社会心理与身份 | Social status and illegal wildlife consumption |
| Green consumption incentives | |
| Ethical consumerism in luxury goods |
初始困惑:我们不确定论文结构,客户选择应该放在哪里?
讨论过程:阅读了多篇2024年O奖论文(2426941, 2409949, 2413565, 2417340, 2422054)
解答:所有O奖论文都在摘要页就明确指出目标客户
| 论文编号 | 选择的客户 | 选择依据 |
|---|---|---|
| 2426941 | WWF(得分0.78) | 通过客户评估模型(CA) |
| 2409949 | WWF | 讨论后选为顶级选择 |
| 2413565 | LVMH(路威酩轩集团) | 创意选择,并列出评估得分 |
| 2417340 | 国际组织(INO) | 计算得分最高 |
| 2422054 | 坦桑尼亚政府 | 直接在标题中体现 |
学习要点:
- 摘要前两段就要出现"Our selected client is..."
- 量化结果:把客户的得分写出来,增加说服力
- 如果客户非常具体(如某个国家),可以直接放进论文标题里
初始困惑:我们决定以"国家级野生动物执法与森林保护机构"作为客户,但不知道如何收集数据。
讨论过程:
- 首先要确定样本范围(选哪些国家/机构)
- 样本应当具有梯度差异
解答:
样本选择建议(5-8个国家):
| 类型 | 国家/机构示例 | 特点 |
|---|---|---|
| 资源充沛型 | 美国USFWS、中国国家林草局 | 法律框架完善,数据透明 |
| 贸易热点型 | 越南森林保护局、南非SANParks | 中转地/消费地,正面临改革 |
| 资源匮乏型 | 坦桑尼亚TAWA | 资源有限但物种丰富 |
数据指标体系:
| 维度 | 指标 | 数据来源 |
|---|---|---|
| 权力(Power) | WGI治理指标(Rule of Law, Government Effectiveness) | World Bank |
| CITES国家立法评级(1/2/3类) | CITES官网 | |
| 资源(Resources) | GDP / 人均GDP | World Bank |
| 保护区覆盖率 | World Bank | |
| 全球创新指数 | globalinnovationindex.org | |
| 兴趣(Interest) | 受威胁物种数量 | IUCN Red List |
| 近5年非法没收记录 | CITES Trade Database |
核心数据网站:
- CITES Trade Database: trade.cites.org
- IUCN Red List: iucnredlist.org
- TRAFFIC Reports: traffic.org
- World Bank: data.worldbank.org
- WGI治理指数: info.worldbank.org/governance/wgi
初始困惑:知道要用熵权法,但不清楚具体计算步骤。
解答:熵权法六步计算流程
Step 1:构建原始矩阵
Step 2:数据标准化
- 正向指标:$y_{ij} = \frac{x_{ij} - \min(x_j)}{\max(x_j) - \min(x_j)}$
- 负向指标:$y_{ij} = \frac{\max(x_j) - x_{ij}}{\max(x_j) - \min(x_j)}$
Step 3:计算特征比重
Step 4:计算信息熵
Step 5:计算差异性系数
Step 6:确定权重
建模组合拳:先用熵权法(EWM)确定权重,再配合TOPSIS计算得分 → EWM-TOPSIS模型
目标:识别"哪里最危险",为地图上的每个节点打分
数据整合:
- 历史数据:从CITES提取近10年查获记录
- 环境指标:节点到最近水源的距离、植被覆盖率
- 社会指标:节点周边人均GDP、路网密度
数学模型:加权风险指数(WRI)或贝叶斯网络
论文呈现:必须画出一张彩色风险热力图
目标:解决"钱怎么花"——在预算约束下优化资源分配
数学模型:多目标线性规划(MOLP)
目标函数:
约束条件:
$\sum x_i \leq Total_Manpower$ $\sum c_i x_i \leq Budget$ -
$x_i \geq threshold$ (高风险节点最低覆盖率)
求解工具:Python的PuLP库或Matlab的linprog
目标:预测"罪犯怎么跑"——模拟犯罪分子的反馈
核心理论:最短路径迁移
- 走私者总是选择"综合成本最低"的路径
$Cost_{path} = Transport_Cost + Risk_Cost$
数学实现:
- 构建有向图
$G = (V, E)$ - 利用Dijkstra算法计算初始状态流向
- 动态模拟:增加执法强度 → 更新边权重 → 重新计算流向
情景分析:
| 情景 | 描述 | 可能后果 |
|---|---|---|
| A | 仅加强边境口岸 | 走私可能转向非正规小径 |
| B | 加强终端市场打击 | 黑市价格暴涨,刺激更疯狂的供应 |
| C | 5年综合方案 | 显示出最优的平衡点 |
| 阶段 | 时间 | 重点 | 对应模型 |
|---|---|---|---|
| 准备期 | 第1年 | 建立数据库,确立风险评分标准,升级监控硬件 | Step 1 |
| 执行期 | 第2-3年 | 在风险最高的20%节点部署80%的资源 | Step 2 |
| 调优期 | 第4-5年 | 观测迁移现象,利用模型重新分配资源 | Step 3 |
| 特点 | 说明 | 学习方法 |
|---|---|---|
| 逻辑自洽性 | 所有模型环环相扣,不孤立回答问题 | 建立模型链条,前一步的输出是后一步的输入 |
| 数据驱动 | 对数据库进行清洗、插值,可视化专业 | 不只是找几个数字,要有预处理和流程图 |
| 现实性平衡 | 承认模型局限性,进行灵敏度分析 | 深度挖掘文献,讨论特殊性而非空谈数学 |
┌─────────────────────────────────────────────────────────────┐
│ 第一阶段:选题与定义 (1-6小时) │
│ 1. 确定研究对象(如象牙、穿山甲,不要研究整个野生动物) │
│ 2. 建立指标体系(Power, Resource, Interest),跑TOPSIS │
│ 3. 明确目标函数(Min贸易额 / Max种群数) │
├─────────────────────────────────────────────────────────────┤
│ 第二阶段:文献与数据搜集 (并行进行) │
│ - 查数:CITES数据库、UNODC报告、World Bank │
│ - 查理:搜索"Wildlife trade dynamics"等 │
│ - 技巧:使用 filetype:pdf 搜学术论文 │
├─────────────────────────────────────────────────────────────┤
│ 第三阶段:建模与编程 (核心 24-48小时) │
│ 1. 建立Baseline:预测无项目时5年后情况 │
│ 2. 建立干预模型:推荐系统动力学(SD)或ABM │
│ 3. 灵敏度分析:必须做!证明项目在不同环境下都有效 │
├─────────────────────────────────────────────────────────────┤
│ 第四阶段:论文写作 (持续进行) │
│ - 摘要:方法、模型名称、核心结论(下降了百分之几) │
│ - 备忘录:语调要具说服力,而非纯学术 │
│ - 美化:LaTeX排版,确保公式美观,配图色彩统一 │
└─────────────────────────────────────────────────────────────┘
- 客户选择:O奖论文在摘要页就明确客户,并给出量化评分
- 需求侧切入:是差异化竞争点,可从"风险规避"、"替代价值"、"身份溢价"三维度思考
- 建模三步走:风险评分 → 资源配置 → 网络迁移,形成完整的决策支持系统
- 数据驱动:必须有数据预处理、专业可视化、灵敏度分析
- 动态性:5年项目不能是静态模型,要有时间轴和反馈调整机制
本次会议重点围绕Step 2资源配置的加分项、Step 3系统反应的详细建模、以及O奖论文的敏感性分析技巧进行了深入讨论。
初始困惑:我们的第二部分如果只写一个简单的"线性规划",是否足够拿高分?
讨论过程:
- O奖论文通常在资源配置(Decision Making)中加入动态性、博弈性或技术前瞻性
- 单纯的静态优化无法体现题目的"复杂系统"要求
解答:三大加分建模方法
| 方法 | 加分逻辑 | 核心做法 | 亮点 |
|---|---|---|---|
| 动态博弈模型(Stackelberg Game) | 执法机构与走私者不是静态的,而是"你动我也动" | 政府(Leader)先分配预算$x$,走私者(Follower)观测后选择期望利润最大的路径 | 体现决策考虑了对手的反应 |
| 演化博弈与社区激励 | 单纯"抓捕"成本极高,应建立执法-社区联动模型 | 研究居民在"参与偷猎"和"举报偷猎"之间的策略演化,使用复制动态方程(Replicator Dynamics) | 证明增加社区奖金能让社区自发形成保护屏障 |
| 稳健优化(Robust Optimization) | 现实中数据有噪声,最优配置可能因环境变化失效 | 引入不确定性集合(Uncertainty Set),假设风险评分有±20%波动,目标是最坏情况下的表现依然稳健 | 体现建模的"抗风险能力" |
进阶建议:Step 2的完整工作流
输入层:接收 Step 1 的风险图谱数据
↓
核心层(加分项):
├── 多准则评估:不只看查获量,还看"社会公平"和"经济可行性"
├── 随机模拟:蒙特卡洛模拟1000种可能的走私情境
└── 技术变量:加入"无人机巡逻系数"(便宜且范围广)
↓
输出层:
├── Pareto最优前沿图(决策权交给客户)
└── 边际曲线:随着投入资金增加,非法贸易量下降的边际效应
初始困惑:如果我们在Step 2就做了动态博弈,那Step 3的"系统反应"还怎么做?
讨论过程:
- Step 2是静态的、主动的:"我要怎么派人去抓人"
- Step 3是动态的、被动的:"罪犯发现我派了人,他会怎么变"
解答:两者的本质区别
| 维度 | Step 2(资源配置) | Step 3(系统反应) |
|---|---|---|
| 性质 | 主动决策 | 被动适应 |
| 视角 | 执法者视角 | 走私者视角 |
| 时间 | 决策时刻 | 决策后的反馈期 |
| 目标 | 最优资源部署 | 预测迁移并调整 |
Step 3的核心任务:承认并建模"迁移/替代",给出可执行的"自适应策略"
初始困惑:Step 3要怎么具体实现?迁移发生在什么层面?
讨论过程:迁移不是一种,而是三种
| 迁移类型 | 描述 | 示例 |
|---|---|---|
| (A) 路线迁移 Route displacement | 原来走A口岸被打击后改走B | 大通道→小路/水路 |
| (B) 产品迁移 Product substitution | 象牙查得严就改卖穿山甲 | 活体→制品/分拆零部件 |
| (C) 手段迁移 Modus operandi change | 整车运输→小包快递拆分 | 组织化团伙→分散化"蚂蚁搬家" |
解答:强队写法
- 选一个作为"主迁移机制"建模(最推荐路线迁移)
- 另外两种用情景假设+文字说明补足
初始困惑:Step 3不会凭空出现,它的输入是什么?
解答:Step 3的输入-输出关系
Step 1 输出 → Risk_u(风险评分:哪里危险)
↓
Step 2 输出 → x_u(执法投入:你在哪些地方加强)
↓
Step 3 核心 → Risk^(after) = f(Risk^(before), x_u)
核心公式:风险在加强执法后如何重新分布
- 不需要复杂数据
- 形式非常清晰
- 特别适合"情景模拟+敏感性分析"
Step 1:建立"地区网络"
把国家划成若干地区节点
- 邻接矩阵
$A$ :如果$u$ 和$v$ 相邻或交通可达,$A_{uv}=1$ - 没有路网数据也没关系:用行政区相邻关系就够了
Step 2:定义"执法冲击强度"
-
$E_u$ 越大,表示该地区"被打击得越严" -
$\eta$ 是尺度参数(如 0.3、0.5)
Step 3:计算风险转移概率
直觉解释:
- 走私者更倾向去"邻近且执法弱"的地方
- 如果
$v$ 执法强($E_v$ 大),就不愿去$v$ - 参数
$\theta$ 控制"对执法强度的敏感程度"
Step 4:更新后的风险分布(核心公式)
-
$\rho \in [0,1]$ :迁移比例 -
$\rho = 0.1$ :只有10%会转移(低迁移) -
$\rho = 0.5$ :一半会转移(高迁移)
关键洞察:这一步完全不需要真实电商/巨量数据,只需要:
- 地区相邻关系
- Step 2哪些地方加强了
- 一个迁移比例
$\rho$ 的情景设定
现实中执法加强会导致一部分放弃或被阻断,风险不是100%转移:
-
$\kappa$ 表示执法产生的"净减少效应" - 这样既有迁移,也有总体下降
| 情景 | 参数设置 | 描述 |
|---|---|---|
| S1:Low displacement | 走私者比较保守 | |
| S2:Medium | 中等迁移倾向 | |
| S3:High | 走私者高度组织化,一旦发现陆路被封立刻启用海路 |
- 用Step 2的
$x_u$ 算出$E_u$ - 算
$P_{u \rightarrow v}$ - 得到
$Risk^{after}$ - 看"新的热区Top-K"变成哪些地方
- 热区是否"外溢"(风险跑到邻区)
- 原来的资源配置是否需要调整(闭环)
Step 3不是为了炫公式,而是为了得到可执行政策:
- 如果
$\Delta_v > 0.3$ → 标记为"被挤压出来的热点"
闭环建议:每月滚动更新一次
Step 1 风险评分 → Step 2 资源优化 → Step 3 迁移模拟 → 修正下一轮部署
↑ ↓
←────────────────────────────────────←
这叫 Adaptive Enforcement Cycle,非常像真实政府项目
如果模拟发现风险会向边境某一侧转移,可以直接建议:
- 哪些邻国/边检单位必须协作
- 哪些路段要设临时联合检查
| 小节 | 内容 |
|---|---|
| 5.1 Why displacement matters | 解释犯罪适应性 |
| 5.2 Network representation | 地区节点与相邻关系 |
| 5.3 Displacement mechanism | 迁移矩阵/概率定义 |
| 5.4 Scenario simulation | 三档 |
| 5.5 Policy implications | 替代热点 + 自适应部署 |
讨论过程:O奖论文(2409949)没有把四个子问题当成孤立的简答题,而是通过**"闭环逻辑链"**串联
解答:四步击破法
| 问题 | O奖做法 | 核心工具 |
|---|---|---|
| Q1:谁是你的客户? | 建立客户评估系统,用熵权法(EWM)对政府/NGO/国际组织评分 | 多维度指标体系 |
| Q2:为什么项目适合客户? | 引入RBM(结果导向管理)和LFA(逻辑框架法),用SMART原则设计项目 | 5年甘特图 |
| Q3:会发生什么? | 建立对比模型:无干预曲线 vs 有项目干预曲线 | 种群动态模型 |
| Q4:成功可能性? | 灵敏度分析:参数扰动测试 + 情景模拟 | 概率分布/置信区间 |
学习要点:
- 不写"Answer to Question 1: ...",而是写一个**"项目建议书"**
- 每一章末尾都要有一句话总结该步骤对客户的价值
讨论过程:他们没有空泛说"项目很有可能成功",而是通过数学上的"压力测试"量化了韧性
解答:三步量化法
Step 1:将"可能性"转化为"参数的稳定性"
- 对核心变量(执法效率系数、公众参与度、资金转化率)进行 ±10% 到 ±50% 的扰动
- 结论:即使某些参数波动,老虎种群数量增长趋势依然保持正向
Step 2:识别"不成比例影响目标"的极端条件
| 类型 | 发现 | 结论 |
|---|---|---|
| 负面条件 | 当"政府合作效率"下降到临界值以下,老虎死亡率呈非线性(指数级)上升 | 地方政府配合度是"不成比例的损害因素" |
| 正面条件 | 将野生动物保护与打击洗钱结合,协同率超过20%时,效果远超两项措施单独施加的总和 | 存在**"1+1 > 2"的协同效应** |
Step 3:基于情境化的灵敏度分析
| 情境 | 描述 |
|---|---|
| 乐观情境 | 全球经济繁荣,保护资金溢出,民众环保意识觉醒 |
| 中性情境 | 按目前趋势发展 |
| 悲观情境 | 区域性经济衰退,偷猎者因贫困而增加 |
说服逻辑:"即便在最差的悲观情境下,我们的项目依然能减少15%的贸易额"
讨论过程:很多队伍能写出公式,但最后不知道该摆什么"结果图"
解答:可视化决策仪表盘
| 步骤 | 核心图表 | 作用 |
|---|---|---|
| Step 1 | Hotspot Map (热点图) | 识别敌人在哪 |
| Step 2 | Allocation Strategy (配置雷达图) | 决定钱怎么花 |
| Step 2 | Cost-Benefit Curve (效益曲线) | 证明钱花得值 |
| Step 3 | Network Displacement Plot (网络迁移图) | 预防罪犯逃跑 |
| Overall | 5-Year Impact Forecast (5年影响预测图) | 给客户画大饼(最终效果) |
推荐图表类型:
- 桑基图(Sankey Diagram):展示风险流量从高压节点流向低压节点
- 敏感性分析曲线:横轴执法强度,纵轴迁移比例
- 政策对比表:静态防御 vs 自适应防御
| 阶段 | 时间 | 主要任务 |
|---|---|---|
| 第一年 | 准备期 | Step 1的数字化建设(建立风险图谱) |
| 第二至三年 | 执行期 | Step 2的资源精准投放(大规模执法行动) |
| 第四至五年 | 调优期 | Step 3的动态调整(应对犯罪迁移,收网行动) |
- Step 2加分项:不要只给结果,要给"权衡(Trade-off)"——博弈论/稳健优化/多目标Pareto前沿
- Step 2与Step 3区分:Step 2是主动决策,Step 3是被动适应
- Step 3建模核心:风险转移矩阵是最容易落地的方法,只需邻接关系+执法强度+迁移比例
- 情景模拟:设三档参数(Low/Medium/High),展示不同迁移强度下的结果
- O奖敏感性分析:不靠运气说明成功可能性,靠曲线的斜率说明
- 闭环设计:Step 3的输出要能反馈调整Step 2,形成Adaptive Enforcement Cycle
- 最终输出:不是一堆公式,而是一套"可视化决策仪表盘"+五年路线图
我们需要数据来提取规律
- 主成分分析(PCA)与因子分析(FA)
- 聚类分析(DBSCAN)
- 判别分析(LDA)
| 维度 | PCA(主成分分析) | FA(因子分析) |
|---|---|---|
| 目标 | 数据降维、信息压缩 | 发现潜在因子结构 |
| 假设 | 无特殊假设 | 假设存在共同因子 |
| 方差解释 | 解释总方差 | 解释共同方差 |
| 可解释性 | 主成分是原变量的线性组合 | 因子具有实际意义 |
| 唯一性 | 结果唯一 | 需要因子旋转 |
标准化后求协方差矩阵:
求特征值与特征向量:
主成分得分:
方差贡献率:
因子模型:
其中:
-
$X$ :观测变量($p$维) -
$F$ :公共因子($m$维,$m << p$) -
$\Lambda$ :因子载荷矩阵($p \times m$) -
$\epsilon$ :特殊因子(误差项)
因子载荷矩阵解释:
-
$\lambda_{ij}$ 表示第$i$ 个变量在第$j$ 个因子上的载荷 -
$|\lambda_{ij}| > 0.5$ 表示强相关
因子旋转:
- 正交旋转(Varimax):保持因子不相关,使载荷尽量两极化
- 斜交旋转(Promax):允许因子相关,更符合现实
┌─────────────────────────────────────────────────────────────┐
│ PCA vs 因子分析 选择决策树 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 你的目标是什么? │
│ ├─ 仅仅是降维/去冗余 → PCA │
│ └─ 想发现潜在结构/命名因子 → 因子分析 │
│ │
│ 变量间是否存在明确的"潜变量"假设? │
│ ├─ 是(如:心理测量、问卷分析)→ 因子分析 │
│ └─ 否(纯粹数学压缩)→ PCA │
│ │
│ 后续用途? │
│ ├─ 作为其他模型的输入特征 → PCA │
│ └─ 解释变量背后的共同特质 → 因子分析 │
│ │
└─────────────────────────────────────────────────────────────┘
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) 是一种基于密度的聚类算法。
关键参数:
-
$\epsilon$ (eps):邻域半径 -
$MinPts$ :最小样本数
点的分类:
| 类型 | 定义 | 作用 |
|---|---|---|
| 核心点 |
|
聚类中心 |
| 边界点 | 在核心点的邻域内,但自身不是核心点 | 聚类边缘 |
| 噪声点 | 既不是核心点也不是边界点 | 被标记为异常 |
1. 对每个点 p,计算其 ε-邻域内的点数
2. 如果点数 ≥ MinPts,标记 p 为核心点
3. 从任一未访问的核心点开始:
a. 创建新簇,将该点加入
b. 递归地将其 ε-邻域内的点加入簇
c. 继续扩展,直到无法添加新点
4. 重复步骤3,直到所有点都被访问
5. 剩余未被分配的点标记为噪声
| 特性 | K-means | DBSCAN |
|---|---|---|
| 簇数 | 需预先指定 |
自动确定 |
| 簇形状 | 只能处理球形簇 | 可处理任意形状 |
| 异常值 | 敏感,会影响质心 | 自动识别为噪声 |
| 参数 | 只有 |
|
| 密度 | 假设簇密度均匀 | 可处理不同密度 |
选择
-
K-距离图法:计算每个点到第
$k$ 个最近邻的距离,排序后绘图 - 图中的"肘点"对应最佳
$\epsilon$
选择
- 一般规则:$MinPts \geq d + 1$($d$ 为数据维度)
- 经验值:$MinPts = 2 \times d$
- 数据量大时可适当增大
- 地理空间聚类:识别热点区域
- 异常检测:自动标记噪声点
- 图像分割:基于像素密度的分割
- 客户分群:发现自然聚类模式
LDA (Linear Discriminant Analysis) 是一种有监督的降维和分类方法。
目标:找到一个投影方向,使得:
- 类间距离最大化
- 类内距离最小化
Fisher准则函数:
其中:
-
$S_B$ :类间散度矩阵(Between-class scatter) -
$S_W$ :类内散度矩阵(Within-class scatter)
类内散度矩阵:
类间散度矩阵:
最优投影方向:
多分类情况:求解广义特征值问题
| 维度 | PCA | LDA |
|---|---|---|
| 监督类型 | 无监督 | 有监督 |
| 目标 | 最大化方差 | 最大化类间/类内比 |
| 最大维度 | min(n, p) | min(c-1, p) |
| 适用场景 | 数据压缩、可视化 | 分类、特征提取 |
- 正态分布:各类数据服从多元正态分布
- 协方差相等:各类协方差矩阵相等
- 线性可分:类别间存在线性决策边界
注意:当假设不满足时,考虑使用QDA(二次判别分析)
- 人脸识别:将高维人脸图像降维
- 医学诊断:基于多指标进行疾病分类
- 信用评分:区分好/坏客户
- 营销分析:识别客户类别
┌─────────────────────────────────────────────────────────────────┐
│ 数据建模分析完整工作流 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 原始数据 │
│ ↓ │
│ Step 1: 数据预处理 │
│ ├── 缺失值处理(均值/中值/KNN填充) │
│ ├── 异常值检测(IQR/3σ法则) │
│ └── 标准化(Z-score/Min-Max) │
│ ↓ │
│ Step 2: 探索性分析 │
│ ├── 相关性分析(热力图) │
│ └── 分布可视化(直方图/箱线图) │
│ ↓ │
│ Step 3: 降维/特征提取 │
│ ├── 无标签数据 → PCA/因子分析 │
│ └── 有标签数据 → LDA │
│ ↓ │
│ Step 4: 聚类分析(无标签)或分类验证(有标签) │
│ ├── 无标签 → DBSCAN/K-means │
│ └── 有标签 → LDA分类 + 交叉验证 │
│ ↓ │
│ Step 5: 结果可视化 │
│ ├── 2D/3D散点图(降维后) │
│ ├── 聚类/分类边界图 │
│ └── 特征重要性/因子载荷图 │
│ ↓ │
│ Step 6: 模型评估 │
│ ├── 聚类:轮廓系数、CH指数、DB指数 │
│ └── 分类:准确率、混淆矩阵、ROC曲线 │
│ │
└─────────────────────────────────────────────────────────────────┘
在 modelCode/ 目录下提供了完整的实现:
| 技术 | 文件路径 | 核心功能 |
|---|---|---|
| PCA | data_preprocessing/pca_reduction.py |
降维、方差解释、可视化 |
| 因子分析 | data_preprocessing/factor_analysis.py |
因子提取、旋转、载荷分析 |
| DBSCAN | models/clustering/dbscan_clustering.py |
密度聚类、参数选择、噪声识别 |
| LDA | models/classification/lda_classification.py |
判别分析、降维、分类 |
| 完整教程 | data_modeling_tutorial.py |
串联三大技术的完整案例 |
使用流程:
# 1. 数据预处理
from data_preprocessing import preprocessing_toolkit as pt
data_clean = pt.handle_missing(data)
data_std = pt.standardize(data_clean)
# 2. 降维分析
from data_preprocessing.pca_reduction import PCAReducer
pca = PCAReducer(variance_threshold=0.85)
data_pca = pca.fit_transform(data_std)
# 3. 聚类分析(无监督)
from models.clustering.dbscan_clustering import DBSCANClusterer
dbscan = DBSCANClusterer()
labels = dbscan.fit_predict(data_pca)
# 4. 分类分析(有监督)
from models.classification.lda_classification import LDAClassifier
lda = LDAClassifier()
lda.fit(data_std, y_labels)
predictions = lda.predict(new_data)