自 2010 年 · 每月支持超过 200 万次工具运行
自 2010 年
添加到 Chrome

我的工具箱

自动模式

还没有收藏的工具。

升级为高级版
相关工具
不等式组图形绘制器运动学计算器百分产率计算器植物间距计算器
主页 > 数学 > 进阶数学计算
 

线性规划求解器

用单纯形法求解线性规划问题。支持最大化或最小化目标函数、混合约束条件及最多八个决策变量,对二变量问题绘制可行域并标出最优解。

免费使用无需注册即时出结果
线性规划求解器立即免费试用 ▼
第一行是目标函数(MaximizeMinimize …)。之后的每一行都是一个线性约束。 使用 <=, >=, 或 =。快捷方式:x, y >= 0 可声明多个变量的非负性。 最多支持 8 个变量和 20 个约束。

Embed 线性规划求解器 Widget

线性规划求解器

线性规划求解器是一款在线计算器,用于求受线性不等式或等式系统约束的线性目标函数的最大值或最小值。它使用单纯形法(大 M 法变体),因此可以自由混合使用 <=>== 约束。对于双变量问题,它会绘制交互式可行域图,并突出显示每个顶点和最优解。

什么是线性规划?

线性规划 (LP) 问题要求:

最大化(或最小化): Z = c1 x1 + c2 x2 + … + cn xn 受限于: a11 x1 + … + a1n xn (≤, ≥, 或 =) b1 a21 x1 + … + a2n xn (≤, ≥, 或 =) b2 … am1 x1 + … + amn xn (≤, ≥, 或 =) bm x1, x2, …, xn ≥ 0

满足所有约束条件的点集被称为可行域,它是一个凸多面体。线性规划基本定理指出,如果线性规划具有有限最优解,则该解必定在多面体的顶点(极点)处达到。这就是为什么单纯形法(通过在顶点之间移动)如此有效的原因。

单纯形法如何工作

单纯形法从一个可行顶点开始,通过向具有更好目标值的相邻顶点进行转轴操作,不断改进目标函数。其机制如下:

  1. 标准型: 将线性规划转换为受限于 Ax = b, x ≥ 0 的最大化 cTx 问题。对于 <= 约束,添加松弛变量;对于 >=,减去剩余变量并添加具有巨大惩罚项 −M人工变量;对于等式,添加一个人工变量。
  2. 初始单纯形表: 基变量由松弛变量和人工变量组成,这提供了一个明显的初始顶点。
  3. 进基变量: 选择具有最大正检验数 \( c_j - z_j \) 的非基变量。如果不存在此类变量,则当前解即为最优解。
  4. 离基变量: 在进基列中进行最小比值测试 —— 将每行的 RHS 除以其在进基列中的正系数,并选择比值最小的一行。如果不存在正系数,则该线性规划是无界的。
  5. 转轴: 使用高斯消元法使进基列成为单位向量,并在离基行处为 1。
  6. 重复此过程,直到满足停止标准。

如果终止时基变量中仍存在值大于零的人工变量,则原始线性规划无解(不可行)

图形法 (针对双变量)

对于双变量问题,可行域是一个二维凸多边形。由于最优解总是在顶点处,因此枚举每个顶点并评估那里的目标函数就足以解决问题。此计算器通过求每对约束边界的交点,仅保留满足所有其他约束的交点,并按逆时针方向排序以进行可视化,从而执行枚举过程。

输入语法

在第一行写下目标函数,然后每行写一个约束条件。变量名可以是任何标识符(x, y, x1, profit…)。运算符为 <=, >==。非负性可以简写为 x, y >= 0

Maximize 3x + 5y x + y <= 10 2x + y <= 16 x + 3y <= 18 x, y >= 0

# 开头的空行和注释将被忽略。求解器最多接受 8 个决策变量和 20 个约束条件。

应用实例

假设一个家具车间制造桌子和椅子。每张桌子产生 \\$3 利润,需要 1 单位木材和 2 单位劳动力。每把椅子产生 \\$5 利润,需要 1 单位木材、1 单位劳动力和 3 单位清漆。可用资源:10 单位木材、16 单位劳动力、18 单位清漆。设 x = 桌子数量,y = 椅子数量,线性规划模型为:

Maximize Z = 3x + 5y x + y <= 10 (木材) 2x + y <= 16 (劳动力) x + 3y <= 18 (清漆) x, y >= 0

可行域是一个五边形。在每个顶点处评估 Z 值:

顶点 (x, y)Z = 3x + 5y是否可行?
(0, 0)0
(8, 0)24
(6, 4)38 ← 最优解
(0, 6)30

因此,车间应制造 6 张桌子和 4 把椅子,以获得 \\$38 的最大利润。木材和劳动力约束是紧约束(它们在最优解处等于其 RHS 值);清漆的松弛量为 0(在此案例中也是紧约束),这意味着所有三种资源都已耗尽。

常见问题及求解器检测内容

情况征兆如何修复
无界线性规划 求解器报告“无界” 添加缺失的上界。目标函数可以无限增长,因为可行域在改进方向上无限延伸。
无解线性规划 求解器报告“无解” 约束条件相互矛盾(例如 x >= 10 同时 x <= 5)。检查每一对边界。
多重最优解 警告徽章;最优顶点唯一,但 Z 在一条边上均可达到 当目标函数向量与紧约束边平行时发生。该边上两个顶点的任何凸组合也都是最优的。
退化 / 循环 单纯形迭代而不改进 Z 在教科书问题中很少见;可以通过 Bland 规则或扰动法解决。此求解器限制了迭代次数以避免死循环。

应用领域

如何使用此计算器

  1. 在文本框中输入您的线性规划问题。第一行必须以 MaximizeMinimize 开始。接下来的每一行是一个约束,每行一个。
  2. 使用快捷方式 x, y >= 0 一次性声明所有列出变量的非负性。
  3. 点击“求解线性规划问题”。求解器将报告最优值 Z、每个决策变量的最优值、紧约束列表,并针对双变量线性规划生成交互式可行域图。
  4. 悬停在图中的顶点上可以查看其坐标和 Z 值。最优解用星号突出显示。
  5. 查看单纯形表以查看每个转轴步骤,并追踪单纯形法如何改进 Z 值。进基列以琥珀色突出显示;离基行以红色突出显示。

常见问题解答

什么是线性规划问题?

线性规划 (LP) 问题要求在一组满足线性不等式或等式系统的决策变量上,求线性目标函数的最大值或最小值。可行集是一个凸多面体,最优解总是出现在其顶点之一 —— 这是单纯形法利用的关键事实。

单纯形法是如何工作的?

单纯形法沿着可行多面体的顶点移动。每一步(一个“转轴”)将基底中的一个变量替换为另一个,从而移动到目标值明显更好的相邻顶点。当没有转轴可以改进 Z 时,算法停止 —— 此时的当前顶点即为最优。本工具使用大 M 法变体,因此可以混合使用 <=, >== 约束。

什么是可行域?

可行域是同时满足每个约束条件的所有变量值的集合。对于 2 个变量,它是一个二维凸多边形;对于 n 个变量,它是一个 n 维多面体。空的多面体意味着线性规划无解;在改进方向上无限延伸的多面体意味着线性规划无界

线性规划中的“无界”是什么意思?

当可行域在目标函数持续改进的方向上延伸至无穷大时,线性规划就是无界的。例如,仅受 x ≥ 0 约束的 Maximize x 没有有限最大值。返回无界结果的现实线性规划通常揭示了缺失的约束 —— 往往是对资源或变量的上界限制。

“多重最优解”是什么意思?

多重最优解发生在多个点达到相同的最佳目标值时。从几何上看,目标函数与多边形的一个紧约束边平行,因此该边上的每个点 —— 以及其端点的每一个凸组合 —— 都是最优的。当终止时任何非基决策变量的检验数为零,求解器就会标记此情况。

求解器接受多少个变量和约束条件?

多达 8 个决策变量和 20 个约束条件。交互式可行域图仅针对双变量问题绘制;对于 3 个或更多变量,您仍然可以获得完整的数值单纯形解、分步单纯形表和紧约束报告。

延伸阅读

引用此内容、页面或工具为:

"线性规划求解器" 于 https://MiniWebtool.com/zh-cn/线性规划求解器/,来自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 团队创建。更新日期:2026年4月21日

您还可以尝试我们的 AI数学解题器 GPT,通过自然语言问答解决您的数学问题。

进阶数学计算:

热门与最新工具:

线性方程组求解器线性方程求解器稳定婚姻问题求解器查看全部 →
主页 > 数学 > 进阶数学计算 > 线性规划求解器