基于整数规划(MILP)的仓配网络优化系统,使用 PuLP+CBC 求解器,支持多约束优化。
版本日期更新内容v2.72026-04-08RDC数量改为上限(<=N), 新增参数引导流程, 支持必选/禁止仓库v2.62026-04-07智能单位检测 + 加权平均时效指标v2.52026-04-07优化门店匹配逻辑(城市优先,省份备选)v2.42026-04-07新增等待时间计算(考虑发车日)
text
Step 1: 准备数据文件
↓
Step 2: 转换数据(Excel → JSON)
↓
Step 3: 配置优化参数 ⭐【新增引导流程】
↓
Step 4: 运行优化 → 生成 Excel 报告
1. 基本参数
参数说明格式RDC数量上限最多选择的RDC数量数字(如5)
2. 约束条件(可选)
参数说明格式必选仓库必须包含的RDC仓库仓库名列表禁止仓库不能作为RDC的仓库仓库名列表
⚠️ 重要:RDC数量含义
== N(恰好N个)<= N(最多N个,由优化器自动选择最优数量)变更前:
text
设置 RDC=5 → 必须恰好选择5个RDC
变更后:
text
设置 RDC<=5 → 最多选择5个RDC,优化器自动选择最优数量
优点:更灵活,避免过度建设
优化前必须确认的参数:
text
1. RDC数量上限(N)
2. 必选仓库(如有)
3. 禁止仓库(如有)
bash
pip install pulp pandas openpyxl
数据类型格式说明门店数据Excel省份、城市、区县、详细地址干线数据Excel仓库间调拨线路和时效共配数据Excel(多Sheet)各基地报货周期表
bash
# 转换干线数据(自动检测单位并转换)
python3 convert_data.py --trunk 干线数据.xlsx --output-dir .
# 转换共配数据
python3 convert_data.py --distribution 共配报货周期表.xlsx --output-dir .
bash
python3 run_optimization.py \
--store-file 门店数据.xlsx \
--rdc-count 5 \ # 最多5个RDC
--output result.xlsx
text
最小化:Σ(门店数 × 线路时效) 加权和
text
1. 每个省份必须分配给1个RDC
2. RDC数量 <= 指定上限
3. 必选仓库(如果有)必须被选中
4. 禁止仓库(如果有)不能被选中
总时效 = 等待时间 + 干线时效 + 等待时间 + 配送时效
时效类型单位说明干线时效天由小时转换或直接使用配送时效天共配表原始数据等待时间天因发车日导致的等待
链路类型判断条件直达RDC = 配送基地调拨一次RDC ≠ FSL,有直达干线中转需要经过TC中转仓
text
1. 优先城市精确匹配
2. 其次省份模糊匹配
3. 城市推断省份
Sheet名称内容执行摘要关键指标、RDC数量、覆盖区域、加权平均时效RDC选址选中的RDC仓库供应关系完整链路信息(含时效分解)调拨中转仓涉及的中转链路省份分布各省归属
字段说明RDC数量实际选中的RDC数量(≤上限)覆盖区域省-市-区组合数总门店数有效门店总数时效单位天加权平均时效Σ(门店数×时效)/总门店数
bash
python3 run_optimization.py \
--store-file 门店数据.xlsx \
--rdc-count 5 \
--required 成都仓 广州仓 \
--forbidden 北京仓 \
--output result.xlsx
参数说明:
参数说明示例--store-file门店数据Excel必填--rdc-countRDC数量上限(默认3)5--required必选仓库(空格分隔)成都仓 广州仓--forbidden禁止仓库(空格分隔)北京仓 上海仓--output输出文件result.xlsx
python
from run_optimization import optimize_and_generate_excel
optimize_and_generate_excel(
store_file='门店数据.xlsx',
num_rdc=5, # 最多5个RDC
output_file='result.xlsx'
)
text
warehouse-network-optimizer.skills/
├── SKILL.md # 本文档
├── convert_data.py # 数据转换脚本
├── run_optimization.py # 核心优化脚本
├── trunk_lines.json # 干线数据
└── distribution_cycles.json # 共配数据
Status: 生产可用 ✅
Version: 2.7.0
核心功能: 整数规划优化 + 智能单位检测 + 加权平均时效