用途:该技能面向大规模供应链优化,帮助求解变量数量呈指数级、标准 MIP 难以处理的问题,通过只按需生成相关列(变量)使原本不可解的问题变得可解。适用于切割库存、路径规划、乘务排班、装箱等场景。
主要能力:采用列生成与分解方法,将问题拆分为受限主问题(RMP)与定价子问题;主问题在部分变量子集上求解并给出对偶变量,定价子问题寻找负检验数的新列,迭代添加直至无改进列。资料给出集合划分形式的数学模型:原问题 min Σ c_j x_j,约束 Σ a_ij x_j = 1,x_j ∈ {0,1};松弛主问题 x_j ≥ 0,对偶变量 π_i;定价问题寻找检验数 c_j - Σ a_ij π_i < 0 的列。
使用方式:资料提供切割库存问题的 Python 实现示例,类 ColumnGenerationCuttingStock 接收 roll_width、piece_widths、piece_demands、max_iterations,流程为生成初始模式、求解主问题、求解定价背包子问题、添加新列、迭代终止后求解最终整数 MIP,并输出结果与收敛图。示例使用 numpy、pulp、matplotlib,求解器为 PULP_CBC_CMD。
适用场景与限制:适合具有自然分解结构、约束可分解、变量规模从数千到数百万的问题。应用前需评估问题结构、规模、标准 MIP 失败原因、解质量要求、求解器与子问题复杂度、时间与并行计算条件、团队对列生成的熟悉程度。资料未提供具体收费、价格、平台支持范围或性能基准数据。