线性规划仿真器 返回
Optimization

线性规划(图解法)仿真器

实时绘制双变量LP问题的可行域、最优顶点和目标函数等值线。单纯形法逐步求解与灵敏度分析可视化。

问题设置
预设
目标函数
Z = 3x₁ + 5x₂
系数 c₁
系数 c₂
约束条件(最多5个)
计算结果
最优 x₁*
最优 x₂*
目标值 Z*
有效约束数
Lp
单纯形法的步骤将在此显示...
灵敏度分析:约束1的RHS b₁变化对目标值的影响
理论与主要公式

标准型:$\text{max}\; \mathbf{c}^\top\mathbf{x}$ s.t. $A\mathbf{x}\leq \mathbf{b}$,$\mathbf{x}\geq 0$

最优解是可行域的顶点(基本可行解)之一。

单纯形法:通过移动至相邻顶点来改善目标值。

影子价格 $\lambda_i = \partial Z^* / \partial b_i$

什么是线性规划图解法

🙋
线性规划听起来好复杂,它到底是什么呀?
🎓
简单来说,就是在有限的资源里,找到最好的安排方式。比如一个工厂,有固定的机器时间和原料,要决定生产多少产品A和产品B才能赚最多钱。这个“最好”和“有限”的关系,用数学公式表达出来,就是线性规划。你试着在模拟器里拖动“系数 c₁”和“系数 c₂”这两个滑块,它们就代表了产品A和产品B的利润,你会看到代表总利润的直线方向在实时变化。
🙋
诶,真的吗?那图解法就是把这个问题画出来看吗?
🎓
没错!当问题只有两个变量(比如两种产品)时,我们就能画在平面上。所有满足机器、原料等限制条件的生产方案,会形成一个多边形区域,叫做“可行域”。最优解就在这个多边形的某个顶点上。在模拟器里,改变参数后你会看到代表利润的等值线(一组平行线)扫过可行域,当它刚好擦过最远的那个顶点时,就找到了最大利润点。
🙋
那如果产品不止两种,画不出来怎么办?单纯形法又是什么?
🎓
问得好!单纯形法就是解决高维问题的“聪明算法”。它本质上是在可行域的那些顶点(现在想象成高维空间的多面体角点)之间跳转,每次都朝着能让利润增加的方向跳。你可以把模拟器切换到“单纯形法步骤”模式,它会一步步演示这个“跳跃”过程,从一个基本可行解移动到下一个,直到跳到利润最高的那个顶点为止。

物理模型与关键公式

线性规划问题的标准数学模型,用于描述在资源约束下最大化收益或最小化成本的目标。

$$\text{maximize}\quad \mathbf{c}^\top\mathbf{x}= c_1 x_1 + c_2 x_2$$ $$\text{subject to}\quad A\mathbf{x}\leq \mathbf{b}, \quad \mathbf{x}\geq 0$$

其中,$\mathbf{x}= [x_1, x_2]^\top$ 是决策变量(如两种产品的产量),$\mathbf{c}$ 是目标函数系数(如单位利润),$A$ 是约束系数矩阵(如单位产品消耗的资源),$\mathbf{b}$ 是资源上限向量。$\mathbf{x}\geq 0$ 表示产量非负。

灵敏度分析中的核心概念——影子价格,它量化了资源稀缺性的价值。

$$\text{影子价格}= \frac{\partial (\text{最优目标值})}{\partial b_i}$$

变量 $b_i$ 是第 $i$ 种资源的可用量(约束右端值)。影子价格表示,在其他条件不变时,每增加一个单位的资源 $i$,最优目标函数值(如总利润)能增加多少。它是评估资源投资价值的关键指标。

现实世界中的应用

生产计划与排程:这是线性规划最经典的应用。比如汽车制造厂,在钢板、喷涂线工时、组装工时等约束下,决定生产多少辆轿车和SUV才能使总利润最大。工程现场常见的是用线性规划软件来制定周或月的详细生产计划。

物流与运输优化:如何以最低成本将货物从多个仓库配送到多个零售店?每个仓库的库存、每辆车的运力、每条路线的成本都是线性约束,目标是最小化总运输费。大型电商和物流公司每天都在求解这类问题。

结构设计与拓扑优化:在CAE领域,结构物的轻量化设计可以近似为线性规划问题。比如在满足应力、位移等性能约束下,寻找材料分布的最优解,使结构总重量最小化,这是汽车、航空部件设计中的重要环节。

资源分配与金融投资:如何将有限的资金分配到不同的投资项目(股票、债券等)中,在给定的风险水平下最大化预期收益?或者,在电力系统中,如何在不同发电机组间分配负荷,在满足用电需求的同时使总发电成本最低?

常见误解与注意事项

开始使用此模拟器时,尤其是在实际应用场景中,有几个需要特别注意的要点。首先,请理解“仅当变量数为两个时才能绘制图形”这一根本限制。若只有产品A和B两种类型尚可可视化,但在实际生产计划中,变量会随着产品C、D等的增加而增多。此时必须依赖单纯形法等数值解法,而本工具所教授的“寻找顶点”概念正是这些算法的基础。

其次,约束条件设定中容易忽略现实性。例如,即使将设备运行时间设定为“x₁ + 2x₂ ≤ 8(小时)”,这也是以连续运行为前提的。若未考虑设备调试时间和维护时间,则无法直接执行所得最优解。此外,将系数(如单位利润c₁)视为固定值也存在风险,现实中它会随原材料价格波动而变化。正因如此,应养成使用工具内置的敏感性分析功能来验证“该系数变化多少会导致最优解改变”的习惯。

最后,切勿遗漏“非负”之外的约束。工具的标准形式要求变量≥0,但实际问题中常出现“产品A至少需生产100件”(x₁ ≥ 100)这类下限约束,或“库存需恰好用完”(等式约束)。这些约束必须转化为模拟器所教授的基本形式(例如对于x₁ ≥ 100,可通过新变量x₁' = x₁ - 100替换为x₁' ≥ 0)后再求解。