P paper2skillsPlaybook
AI 路线图 →

Supply Chain Resilience Modeling — 供应链韧性建模:断链风险预测与备选方案规划

Skill-Supply-Chain-Resilience-Modeling · 04-供应链

causalexperimentforecastingoptimizationfraud_detection供应链与补货数据采集与治理定价与利润风控与合规WF-A 智能补货WF-D 选品扫描WF-E Review监控WF-K 全域风险防御
年化 ROI¥20-100 万(以避损为主)
实现难度⭐⭐⭐☆☆
业务视角
适用角色供应链负责人 · 采购负责人 · CEO / 运营 VP
适用平台Amazon FBA · 海外仓 · 多国仓位(美/欧/日)
什么情况下用库存周转率低,资金压在海外仓出不来;SKU 断货紧急空运,物流成本吃掉毛利;多仓库存分布不均
成功是什么样的库存周转天数从 90 天降到 60 天,断货率 <3%,海外仓综合成本降低 15-25%
业务痛点
库存周转天数太长资金压死了断货了只能空运救急成本爆了多市场库存分配不均

1. 解决的问题

广东单一电机供应商停产6周损失80万但事前不知道应该备几家备选——贝叶斯网络量化各组件断链概率和恢复时间,双重采购最优分割策略将年预期断链损失降低60-80%

2. 核心算法逻辑

供应链韧性的两个维度:

3. 业务应用场景

业务问题:吸奶器的核心电机来自广东单一供应商,疫情期间停产 6 周,直接损失 ¥80 万。虽然知道需要备选供应商,但不知道应该认证几家、各自备多少库存。

数据要求: - 当前供应商信息(地理位置/年供货量/过往交期稳定性) - 历史断链事件(停产原因/持续天数) - 产品的月均消耗量和 Lead Time

预期产出: - 各组件的韧性评分(0-100) - 最脆弱的环节排序(优先处理) - 备选供应商策略:应该认证几家,各备多少库存 - 断链模拟:各种场景下的预期损失

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI 预估
  • 识别高韧性漏洞并采取行动:避免下次断链损失 ¥30-100 万
  • 备选供应商认证的 ROI 量化:帮助决定是否值得投入 ¥5-10 万认证成本
  • 安全库存精准调整:既不过度积压也不断货的最优水位
  • 年化综合 ROI:¥20-100 万(以避损为主)
  • 实施难度:⭐⭐⭐☆☆(贝叶斯网络有成熟库(pgmpy);断链历史数据整理约 2 周;完整系统 4-6 周)

7. 代码模板

代码块数量:3 · 路径:未检测到

"""
Supply Chain Resilience Modeling
供应链韧性:贝叶斯网络风险建模 + 双重采购优化
"""
import numpy as np
from dataclasses import dataclass, field
from typing import Optional


@dataclass
class SupplierNode:
    """供应商节点"""
    supplier_id: str
    name: str
    location_risk: float      # 0-1,地理风险(地震区/政治不稳定)
    capacity_risk: float      # 0-1,产能风险(单一大客户依赖)
    quality_risk: float       # 0-1,质量风险
    lead_time_days: int       # 正常交期
    max_disruption_days: int  # 历史最长断链天数
    disruption_probability: float  # 年断链概率


@dataclass
class ComponentChain:
    """单个组件的供应链"""
    component_name: str
    monthly_demand: float
    safety_stock_days: int
    primary_supplier: SupplierNode
    backup_suppliers: list[SupplierNode] = field(default_factory=list)


def compute_resilience_score(chain: ComponentChain) -> dict:
    """计算供应链韧性评分"""
    primary = chain.primary_supplier

    # 脆弱性评分(越高越脆弱)
    vulnerability = (
        0.4 * primary.disruption_probability +
        0.3 * primary.location_risk +
        0.3 * primary.capacity_risk
    )

    # 恢复能力(有备选供应商则恢复更快)
    if chain.backup_suppliers:
        best_backup = min(chain.backup_suppliers, key=lambda s: s.lead_time_days)
        recovery_days = best_backup.lead_time_days
        recovery_buffer = chain.safety_stock_days
        recovery_capability = 1 - min(1, max(0, recovery_days - recovery_buffer) / 30)
    else:
        recovery_capability = 0.1  # 无备选,恢复能力极低
        recovery_days = primary.max_disruption_days

    # 综合韧性分
    resilience = (1 - vulnerability * (1 - recovery_capability)) * 100

    # 期望损失天数(每年)
    expected_disruption_days = (primary.disruption_probability *
                                max(0, primary.max_disruption_days - chain.safety_stock_days))

8. 论文来源

  • 2406.09871