运筹学小白也能懂:用Excel表格手把手演示单纯形法迭代过程

发布时间:2026/6/4 21:37:54

运筹学小白也能懂:用Excel表格手把手演示单纯形法迭代过程 运筹学小白也能懂用Excel表格手把手演示单纯形法迭代过程第一次接触运筹学中的单纯形法时那些数学符号和抽象概念总让人望而生畏。但你知道吗其实用我们熟悉的Excel表格就能直观地模拟这个寻找最优解的过程。本文将以一个生产计划优化问题为例带你一步步用Excel实现单纯形法的完整迭代无需编程基础只需掌握基础公式和表格操作。1. 从实际问题到线性规划模型假设你管理着一家小型家具厂主要生产桌子和椅子。每张桌子利润300元每把椅子利润400元。生产过程中有两个关键限制木材消耗每张桌子消耗2立方米每把椅子消耗1立方米每日木材供应上限40立方米人工工时每张桌子需要1小时每把椅子需要3小时每日可用工时30小时这个典型的生产优化问题用数学语言描述就是目标函数最大化利润 Z 300x₁ 400x₂约束条件2x₁ x₂ ≤ 40 木材限制x₁ 3x₂ ≤ 30 工时限制x₁, x₂ ≥ 0 非负约束在Excel中建立初始表格时建议按以下结构布局单元格内容公式示例B2目标函数系数手动输入300, 400B5:B6约束条件系数手动输入2,1;1,3D5:D6约束值手动输入40,30F5:F6当前资源使用量SUMPRODUCT(B5:C5,$B$2:$C$2)提示使用SUMPRODUCT函数可以方便地计算线性组合这是单纯形法在Excel中实现的关键函数2. 构建初始单纯形表将上述标准型转化为Excel表格需要引入松弛变量x₃和x₄把不等式转为等式2x₁ x₂ x₃ 40 x₁ 3x₂ x₄ 30在Excel中创建初始单纯形表以A1为起点ABCDEF1基变量x₃x₄2系数003解40304x₁2x₁1x₁θ₁5x₂1x₂3x₂θ₂6x₃1x₃0x₃7x₄0x₄1x₄关键操作步骤在B1:D7区域构建上表框架计算检验数σⱼ未在表中显示在G4输入D4-SUMPRODUCT(B4:C4,$B$2:$C$2)复制G4公式到G5得到x₁和x₂的检验数3. 第一次迭代入基与出基选择当检验数存在正值时当前解非最优。我们的迭代策略是入基变量选择在G4:G5中找出最大正检验数对应变量本例中σ₂400 σ₁300选择x₂入基出基变量选择计算θ比率在F4输入IF(B40,B3/B4,)下拉到F5找出最小非负θ值对应行本例中θ₂10 θ₁40因此x₄出基基变换操作将x₂替换x₄作为新基变量A3单元格改为x₂更新基变量系数C2单元格改为400执行高斯消元使x₂对应列变为单位向量主元行第5行除以主元系数3其他行减去主元行的适当倍数更新后的表格关键区域ABCD1基变量x₃x₂2系数04003解301045/31/3x₁5-1/31/3x₂注意所有数值变化都应通过Excel公式实现而非手动输入确保可重复计算4. 第二次迭代与最优解验证重复检验数计算过程在G4计算新的σ₁D4-SUMPRODUCT(B4:C4,$B$2:$C$2)结果为300 - (0*(5/3) 400*(1/3)) ≈ -33.33计算σ₃和σ₄对应松弛变量σ₃ 0 - (01 4000) 0σ₄ 0 - (0*(-1/3) 400*(1/3)) ≈ -133.33此时所有检验数非正说明当前解已达最优。最终解为x₁ 0不生产桌子x₂ 10生产10把椅子最大利润Z 0300 10400 4000元5. 敏感度分析与实际应用单纯形法的价值不仅在于找到最优解更在于提供灵敏度分析。在Excel中我们可以轻松实现影子价格分析增加1单位木材40→41观察Z值变化增加1单位工时30→31观察Z值变化通过数据→模拟分析→单变量求解实现允许变化范围保持当前基变量不变条件下计算目标函数系数和约束条件的允许变化区间使用Excel的规划求解工具验证结果实际业务中你可能会发现当前最优解建议全部生产椅子这可能不符合市场需求此时需要添加新的约束条件如最小桌子产量在Excel中只需添加新行并重新迭代6. 常见问题与解决技巧问题1退化现象当θ比率出现相等值时可能导致循环解决方案使用Bland规则选择下标最小的变量入基问题2无界解表现为θ值全部为无穷大检查是否遗漏了关键约束条件问题3人工变量处理当初始无明显可行基时使用大M法或两阶段法在Excel中实现实用技巧使用条件格式标记检验数和θ值创建迭代历史记录表跟踪解的变化结合图表展示解的空间位置变化通过这个案例可以看到即使没有专业的优化软件用Excel也能完整实现单纯形法的所有关键步骤。我在实际教学中发现这种可视化的迭代过程能让学习者直观理解为什么这样迭代而不是机械记忆步骤。下次当你遇到资源分配问题时不妨试试用这个方法来寻找最佳方案。

相关新闻