线性规划的旋转算法求解示例
字数 5824 2025-10-26 21:53:33

线性规划的旋转算法求解示例

我将为您详细讲解线性规划中一个较为特殊的算法——旋转算法。这个算法与单纯形法有相似之处,但采用了不同的几何视角和操作方式。

1. 问题描述

考虑以下线性规划问题:

最大化: \(z = 3x_1 + 2x_2\)

约束条件:

  1. \(2x_1 + x_2 \leq 4\)
  2. \(x_1 + 2x_2 \leq 5\)
  3. \(x_1 \geq 0\)
  4. \(x_2 \geq 0\)

我们的目标是在满足所有约束条件的前提下,找到一组决策变量 \(x_1\)\(x_2\) 的值,使得目标函数 \(z\) 的值达到最大。

2. 算法引入:什么是旋转算法?

旋转算法是求解线性规划问题的一种方法,它从一个可行解(通常是原点,如果原点可行的话)出发,通过一系列“旋转”操作,沿着可行域的边缘移动,逐步向最优解靠近。这里的“旋转”可以理解为从一个基可行解转换到相邻的基可行解的过程,这与单纯形法的“转轴”操作在思想上类似,但旋转算法更强调从几何角度看待约束边界。在本例中,我们将从一个特定的顶点开始,通过检查相邻顶点是否能使目标函数值增大,来决定“旋转”到哪个顶点。

3. 解题过程详解

步骤1:将问题转化为标准形式

为了应用旋转算法(以及大多数线性规划算法),我们首先需要引入松弛变量,将不等式约束转化为等式约束。松弛变量代表了未被使用的资源,其值也必须非负。

  • 对于约束 \(2x_1 + x_2 \leq 4\),我们引入松弛变量 \(s_1 \geq 0\),得到: \(2x_1 + x_2 + s_1 = 4\)
  • 对于约束 \(x_1 + 2x_2 \leq 5\),我们引入松弛变量 \(s_2 \geq 0\),得到: \(x_1 + 2x_2 + s_2 = 5\)

此时,原问题转化为如下标准形式:

最大化: \(z = 3x_1 + 2x_2 + 0 \cdot s_1 + 0 \cdot s_2\)

约束条件:

  1. \(2x_1 + x_2 + s_1 = 4\)
  2. \(x_1 + 2x_2 + s_2 = 5\)
  3. \(x_1, x_2, s_1, s_2 \geq 0\)

步骤2:选择初始基可行解

一个简单的起点是令决策变量 \(x_1 = 0\), \(x_2 = 0\)(即原点)。将其代入等式约束:

  • \(s_1 = 4 - 2(0) - (0) = 4\)
  • \(s_2 = 5 - (0) - 2(0) = 5\)

所有变量均非负,因此 \((x_1, x_2, s_1, s_2) = (0, 0, 4, 5)\) 是一个基可行解。在这个解中,取正值的变量 \(s_1, s_2\) 称为基变量,取零值的变量 \(x_1, x_2\) 称为非基变量。此时,目标函数值 \(z = 3(0) + 2(0) = 0\)

步骤3:第一次旋转——确定进基变量

我们需要判断当前解是否最优。检查目标函数 \(z = 3x_1 + 2x_2\)。如果增加 \(x_1\)\(x_2\) 的值,\(z\) 都会增大,因为它们的系数(3和2)都是正数。我们通常选择能使目标函数增长最快的变量进入基,即选择系数最大的变量。这里,\(x_1\) 的系数3大于 \(x_2\) 的系数2,所以我们选择 \(x_1\) 作为进基变量(即将从非基变量变为基变量)。

步骤4:第一次旋转——确定离基变量

现在我们要决定哪个基变量(\(s_1\)\(s_2\))要离开基(变为非基变量)。原则是:在增加 \(x_1\) 的同时,必须保证所有变量(包括当前的基变量)仍然非负。

我们从约束方程中看 \(x_1\) 能增大多少:
由约束1: \(2x_1 + s_1 = 4\) (因为 \(x_2=0\)),得 \(s_1 = 4 - 2x_1\)。为保证 \(s_1 \geq 0\),需 \(x_1 \leq 4/2 = 2\)
由约束2: \(x_1 + s_2 = 5\),得 \(s_2 = 5 - x_1\)。为保证 \(s_2 \geq 0\),需 \(x_1 \leq 5/1 = 5\)

为了同时满足两个约束,\(x_1\) 的最大增加值取更严格的那个限制,即 \(x_1 \leq min(2, 5) = 2\)。这个最小值2是由约束1(即变量 \(s_1\))决定的。因此,当 \(x_1\) 增加到2时,\(s_1\) 将首先减少到0。所以,我们选择 \(s_1\) 作为离基变量

步骤5:第一次旋转——高斯消元得到新解

现在,我们进行“旋转”操作。我们要用进基变量 \(x_1\) 来替换离基变量 \(s_1\) 在基中的位置。这需要通过高斯消元法,将约束方程组改写成用新的非基变量(\(s_1\)\(x_2\))表示新的基变量(\(x_1\)\(s_2\))的形式。

当前方程组:
(1) \(2x_1 + x_2 + s_1 = 4\)
(2) \(x_1 + 2x_2 + s_2 = 5\)

  1. 将方程(1)除以2,使得 \(x_1\) 的系数变为1:
    \(x_1 + \frac{1}{2}x_2 + \frac{1}{2}s_1 = 2\) ... (1')
  2. 用方程(2)减去方程(1'),消去 \(x_1\)
    (2) - (1'): \((x_1 - x_1) + (2x_2 - \frac{1}{2}x_2) + (s_2 - 0) + (0 - \frac{1}{2}s_1) = 5 - 2\)
    得到: \(\frac{3}{2}x_2 + s_2 - \frac{1}{2}s_1 = 3\) ... (2')

新的方程组为:
(1') \(x_1 + \frac{1}{2}x_2 + \frac{1}{2}s_1 = 2\)
(2') \(\frac{3}{2}x_2 + s_2 - \frac{1}{2}s_1 = 3\)

令新的非基变量 \(x_2 = 0\), \(s_1 = 0\),代入方程:
由(1')得: \(x_1 = 2\)
由(2')得: \(s_2 = 3\)

于是,我们得到了新的基可行解: \((x_1, x_2, s_1, s_2) = (2, 0, 0, 3)\)。此时目标函数值 \(z = 3(2) + 2(0) = 6\),比初始解(z=0)有了显著提高。

步骤6:第二次旋转——判断与进基选择

我们再次检查是否达到最优。我们需要将目标函数也用当前的非基变量(\(x_2\)\(s_1\))表示。
从方程(1')可得: \(x_1 = 2 - \frac{1}{2}x_2 - \frac{1}{2}s_1\)
将其代入目标函数 \(z = 3x_1 + 2x_2\)
\(z = 3(2 - \frac{1}{2}x_2 - \frac{1}{2}s_1) + 2x_2\)
\(z = 6 - \frac{3}{2}x_2 - \frac{3}{2}s_1 + 2x_2\)
\(z = 6 + (-\frac{3}{2} + 2)x_2 - \frac{3}{2}s_1\)
\(z = 6 + \frac{1}{2}x_2 - \frac{3}{2}s_1\)

观察目标函数的表达式: \(z = 6 + \frac{1}{2}x_2 - \frac{3}{2}s_1\)。非基变量 \(x_2\) 的系数是 \(\frac{1}{2}\)(正数),这意味着如果增加 \(x_2\) 的值,目标函数 \(z\) 还能继续增大。因此,当前解 (2, 0, 0, 3) 不是最优解。我们选择系数为正的非基变量 \(x_2\) 作为进基变量

步骤7:第二次旋转——确定离基变量

现在决定哪个基变量(\(x_1\)\(s_2\))要离开基。同样,我们要在增加 \(x_2\) 的同时,保持所有变量非负。

从新的约束方程看:
由(1'): \(x_1 = 2 - \frac{1}{2}x_2\) (因 \(s_1=0\)),为保证 \(x_1 \geq 0\),需 \(x_2 \leq 2 / (1/2) = 4\)
由(2'): \(s_2 = 3 - \frac{3}{2}x_2\) (因 \(s_1=0\)),为保证 \(s_2 \geq 0\),需 \(x_2 \leq 3 / (3/2) = 2\)

取更严格的限制: \(x_2 \leq min(4, 2) = 2\)。这个最小值2是由约束(2')(即变量 \(s_2\))决定的。因此,当 \(x_2\) 增加到2时,\(s_2\) 将首先减少到0。所以,我们选择 \(s_2\) 作为离基变量

步骤8:第二次旋转——高斯消元得到新解

现在我们进行第二次旋转操作,用 \(x_2\) 替换 \(s_2\) 在基中的位置。

当前方程组:
(1') \(x_1 + \frac{1}{2}x_2 + \frac{1}{2}s_1 = 2\)
(2') \(\frac{3}{2}x_2 + s_2 - \frac{1}{2}s_1 = 3\)

  1. 将方程(2')乘以 \(\frac{2}{3}\),使得 \(x_2\) 的系数变为1:
    \(x_2 + \frac{2}{3}s_2 - \frac{1}{3}s_1 = 2\) ... (2'')
  2. 用方程(1')减去 \(\frac{1}{2}\) 倍的方程(2''),消去 \(x_2\)
    (1') - \(\frac{1}{2}\)*(2''): \(x_1 + (\frac{1}{2}x_2 - \frac{1}{2}x_2) + (\frac{1}{2}s_1 - (-\frac{1}{2} * -\frac{1}{3})s_1?) + (0 - \frac{1}{2}*\frac{2}{3}s_2) = 2 - \frac{1}{2}*2\)
    让我们仔细计算:
    \(x_1 + \frac{1}{2}s_1 - (-\frac{1}{2} * -\frac{1}{3}s_1) - \frac{1}{3}s_2 = 2 - 1\)
    \(x_1 + \frac{1}{2}s_1 - \frac{1}{6}s_1 - \frac{1}{3}s_2 = 1\)
    \(x_1 + \frac{1}{3}s_1 - \frac{1}{3}s_2 = 1\) ... (1'')

新的方程组为:
(1'') \(x_1 + \frac{1}{3}s_1 - \frac{1}{3}s_2 = 1\)
(2'') \(x_2 + \frac{2}{3}s_2 - \frac{1}{3}s_1 = 2\)

令新的非基变量 \(s_1 = 0\), \(s_2 = 0\),代入方程:
由(1'')得: \(x_1 = 1\)
由(2'')得: \(x_2 = 2\)

于是,我们得到了新的基可行解: \((x_1, x_2, s_1, s_2) = (1, 2, 0, 0)\)。此时目标函数值 \(z = 3(1) + 2(2) = 7\)

步骤9:最优性检验

我们再次将目标函数用当前的非基变量(\(s_1\)\(s_2\))表示。
从(1'')和(2'')解出 \(x_1\)\(x_2\) 代入 \(z\)
\(z = 3x_1 + 2x_2 = 3(1 - \frac{1}{3}s_1 + \frac{1}{3}s_2) + 2(2 + \frac{1}{3}s_1 - \frac{2}{3}s_2)\)
\(z = 3 - s_1 + s_2 + 4 + \frac{2}{3}s_1 - \frac{4}{3}s_2\)
\(z = 7 + (-\frac{1}{3}s_1) + (-\frac{1}{3}s_2)\)

目标函数表达式为: \(z = 7 - \frac{1}{3}s_1 - \frac{1}{3}s_2\)。非基变量 \(s_1\)\(s_2\) 的系数都是负数(\(-\frac{1}{3}\))。这意味着任何非基变量取正值(\(s_1 > 0\)\(s_2 > 0\))都只会使目标函数值减小。因此,当前解已经是最优解,无法再改进。

4. 结论

通过两次旋转操作,我们找到了该线性规划问题的最优解:
\(x_1^* = 1\), \(x_2^* = 2\)
最大化的目标函数值为 \(z^* = 7\)

这个求解过程清晰地展示了旋转算法的核心思想:从一个基可行解出发,通过选择能使目标函数改善的进基变量,并根据资源限制确定离基变量,然后通过高斯消元(旋转)得到相邻的、更优的基可行解,直至找不到能改善目标函数的进基变量(即达到最优解)为止。

线性规划的旋转算法求解示例 我将为您详细讲解线性规划中一个较为特殊的算法——旋转算法。这个算法与单纯形法有相似之处,但采用了不同的几何视角和操作方式。 1. 问题描述 考虑以下线性规划问题: 最大化: \( z = 3x_ 1 + 2x_ 2 \) 约束条件: \( 2x_ 1 + x_ 2 \leq 4 \) \( x_ 1 + 2x_ 2 \leq 5 \) \( x_ 1 \geq 0 \) \( x_ 2 \geq 0 \) 我们的目标是在满足所有约束条件的前提下,找到一组决策变量 \( x_ 1 \) 和 \( x_ 2 \) 的值,使得目标函数 \( z \) 的值达到最大。 2. 算法引入:什么是旋转算法? 旋转算法是求解线性规划问题的一种方法,它从一个可行解(通常是原点,如果原点可行的话)出发,通过一系列“旋转”操作,沿着可行域的边缘移动,逐步向最优解靠近。这里的“旋转”可以理解为从一个基可行解转换到相邻的基可行解的过程,这与单纯形法的“转轴”操作在思想上类似,但旋转算法更强调从几何角度看待约束边界。在本例中,我们将从一个特定的顶点开始,通过检查相邻顶点是否能使目标函数值增大,来决定“旋转”到哪个顶点。 3. 解题过程详解 步骤1:将问题转化为标准形式 为了应用旋转算法(以及大多数线性规划算法),我们首先需要引入松弛变量,将不等式约束转化为等式约束。松弛变量代表了未被使用的资源,其值也必须非负。 对于约束 \( 2x_ 1 + x_ 2 \leq 4 \),我们引入松弛变量 \( s_ 1 \geq 0 \),得到: \( 2x_ 1 + x_ 2 + s_ 1 = 4 \) 对于约束 \( x_ 1 + 2x_ 2 \leq 5 \),我们引入松弛变量 \( s_ 2 \geq 0 \),得到: \( x_ 1 + 2x_ 2 + s_ 2 = 5 \) 此时,原问题转化为如下标准形式: 最大化: \( z = 3x_ 1 + 2x_ 2 + 0 \cdot s_ 1 + 0 \cdot s_ 2 \) 约束条件: \( 2x_ 1 + x_ 2 + s_ 1 = 4 \) \( x_ 1 + 2x_ 2 + s_ 2 = 5 \) \( x_ 1, x_ 2, s_ 1, s_ 2 \geq 0 \) 步骤2:选择初始基可行解 一个简单的起点是令决策变量 \( x_ 1 = 0 \), \( x_ 2 = 0 \)(即原点)。将其代入等式约束: \( s_ 1 = 4 - 2(0) - (0) = 4 \) \( s_ 2 = 5 - (0) - 2(0) = 5 \) 所有变量均非负,因此 \( (x_ 1, x_ 2, s_ 1, s_ 2) = (0, 0, 4, 5) \) 是一个基可行解。在这个解中,取正值的变量 \( s_ 1, s_ 2 \) 称为 基变量 ,取零值的变量 \( x_ 1, x_ 2 \) 称为 非基变量 。此时,目标函数值 \( z = 3(0) + 2(0) = 0 \)。 步骤3:第一次旋转——确定进基变量 我们需要判断当前解是否最优。检查目标函数 \( z = 3x_ 1 + 2x_ 2 \)。如果增加 \( x_ 1 \) 或 \( x_ 2 \) 的值,\( z \) 都会增大,因为它们的系数(3和2)都是正数。我们通常选择能使目标函数增长最快的变量进入基,即选择系数最大的变量。这里,\( x_ 1 \) 的系数3大于 \( x_ 2 \) 的系数2,所以我们选择 \( x_ 1 \) 作为 进基变量 (即将从非基变量变为基变量)。 步骤4:第一次旋转——确定离基变量 现在我们要决定哪个基变量(\( s_ 1 \) 或 \( s_ 2 \))要离开基(变为非基变量)。原则是:在增加 \( x_ 1 \) 的同时,必须保证所有变量(包括当前的基变量)仍然非负。 我们从约束方程中看 \( x_ 1 \) 能增大多少: 由约束1: \( 2x_ 1 + s_ 1 = 4 \) (因为 \( x_ 2=0 \)),得 \( s_ 1 = 4 - 2x_ 1 \)。为保证 \( s_ 1 \geq 0 \),需 \( x_ 1 \leq 4/2 = 2 \)。 由约束2: \( x_ 1 + s_ 2 = 5 \),得 \( s_ 2 = 5 - x_ 1 \)。为保证 \( s_ 2 \geq 0 \),需 \( x_ 1 \leq 5/1 = 5 \)。 为了同时满足两个约束,\( x_ 1 \) 的最大增加值取更严格的那个限制,即 \( x_ 1 \leq min(2, 5) = 2 \)。这个最小值2是由约束1(即变量 \( s_ 1 \))决定的。因此,当 \( x_ 1 \) 增加到2时,\( s_ 1 \) 将首先减少到0。所以,我们选择 \( s_ 1 \) 作为 离基变量 。 步骤5:第一次旋转——高斯消元得到新解 现在,我们进行“旋转”操作。我们要用进基变量 \( x_ 1 \) 来替换离基变量 \( s_ 1 \) 在基中的位置。这需要通过高斯消元法,将约束方程组改写成用新的非基变量(\( s_ 1 \) 和 \( x_ 2 \))表示新的基变量(\( x_ 1 \) 和 \( s_ 2 \))的形式。 当前方程组: (1) \( 2x_ 1 + x_ 2 + s_ 1 = 4 \) (2) \( x_ 1 + 2x_ 2 + s_ 2 = 5 \) 将方程(1)除以2,使得 \( x_ 1 \) 的系数变为1: \( x_ 1 + \frac{1}{2}x_ 2 + \frac{1}{2}s_ 1 = 2 \) ... (1') 用方程(2)减去方程(1'),消去 \( x_ 1 \): (2) - (1'): \( (x_ 1 - x_ 1) + (2x_ 2 - \frac{1}{2}x_ 2) + (s_ 2 - 0) + (0 - \frac{1}{2}s_ 1) = 5 - 2 \) 得到: \( \frac{3}{2}x_ 2 + s_ 2 - \frac{1}{2}s_ 1 = 3 \) ... (2') 新的方程组为: (1') \( x_ 1 + \frac{1}{2}x_ 2 + \frac{1}{2}s_ 1 = 2 \) (2') \( \frac{3}{2}x_ 2 + s_ 2 - \frac{1}{2}s_ 1 = 3 \) 令新的非基变量 \( x_ 2 = 0 \), \( s_ 1 = 0 \),代入方程: 由(1')得: \( x_ 1 = 2 \) 由(2')得: \( s_ 2 = 3 \) 于是,我们得到了新的基可行解: \( (x_ 1, x_ 2, s_ 1, s_ 2) = (2, 0, 0, 3) \)。此时目标函数值 \( z = 3(2) + 2(0) = 6 \),比初始解(z=0)有了显著提高。 步骤6:第二次旋转——判断与进基选择 我们再次检查是否达到最优。我们需要将目标函数也用当前的非基变量(\( x_ 2 \) 和 \( s_ 1 \))表示。 从方程(1')可得: \( x_ 1 = 2 - \frac{1}{2}x_ 2 - \frac{1}{2}s_ 1 \) 将其代入目标函数 \( z = 3x_ 1 + 2x_ 2 \): \( z = 3(2 - \frac{1}{2}x_ 2 - \frac{1}{2}s_ 1) + 2x_ 2 \) \( z = 6 - \frac{3}{2}x_ 2 - \frac{3}{2}s_ 1 + 2x_ 2 \) \( z = 6 + (-\frac{3}{2} + 2)x_ 2 - \frac{3}{2}s_ 1 \) \( z = 6 + \frac{1}{2}x_ 2 - \frac{3}{2}s_ 1 \) 观察目标函数的表达式: \( z = 6 + \frac{1}{2}x_ 2 - \frac{3}{2}s_ 1 \)。非基变量 \( x_ 2 \) 的系数是 \( \frac{1}{2} \)(正数),这意味着如果增加 \( x_ 2 \) 的值,目标函数 \( z \) 还能继续增大。因此,当前解 (2, 0, 0, 3) 不是最优解。我们选择系数为正的非基变量 \( x_ 2 \) 作为 进基变量 。 步骤7:第二次旋转——确定离基变量 现在决定哪个基变量(\( x_ 1 \) 或 \( s_ 2 \))要离开基。同样,我们要在增加 \( x_ 2 \) 的同时,保持所有变量非负。 从新的约束方程看: 由(1'): \( x_ 1 = 2 - \frac{1}{2}x_ 2 \) (因 \( s_ 1=0 \)),为保证 \( x_ 1 \geq 0 \),需 \( x_ 2 \leq 2 / (1/2) = 4 \)。 由(2'): \( s_ 2 = 3 - \frac{3}{2}x_ 2 \) (因 \( s_ 1=0 \)),为保证 \( s_ 2 \geq 0 \),需 \( x_ 2 \leq 3 / (3/2) = 2 \)。 取更严格的限制: \( x_ 2 \leq min(4, 2) = 2 \)。这个最小值2是由约束(2')(即变量 \( s_ 2 \))决定的。因此,当 \( x_ 2 \) 增加到2时,\( s_ 2 \) 将首先减少到0。所以,我们选择 \( s_ 2 \) 作为 离基变量 。 步骤8:第二次旋转——高斯消元得到新解 现在我们进行第二次旋转操作,用 \( x_ 2 \) 替换 \( s_ 2 \) 在基中的位置。 当前方程组: (1') \( x_ 1 + \frac{1}{2}x_ 2 + \frac{1}{2}s_ 1 = 2 \) (2') \( \frac{3}{2}x_ 2 + s_ 2 - \frac{1}{2}s_ 1 = 3 \) 将方程(2')乘以 \( \frac{2}{3} \),使得 \( x_ 2 \) 的系数变为1: \( x_ 2 + \frac{2}{3}s_ 2 - \frac{1}{3}s_ 1 = 2 \) ... (2'') 用方程(1')减去 \( \frac{1}{2} \) 倍的方程(2''),消去 \( x_ 2 \): (1') - \( \frac{1}{2} \) (2''): \( x_ 1 + (\frac{1}{2}x_ 2 - \frac{1}{2}x_ 2) + (\frac{1}{2}s_ 1 - (-\frac{1}{2} -\frac{1}{3})s_ 1?) + (0 - \frac{1}{2} \frac{2}{3}s_ 2) = 2 - \frac{1}{2} 2 \) 让我们仔细计算: \( x_ 1 + \frac{1}{2}s_ 1 - (-\frac{1}{2} * -\frac{1}{3}s_ 1) - \frac{1}{3}s_ 2 = 2 - 1 \) \( x_ 1 + \frac{1}{2}s_ 1 - \frac{1}{6}s_ 1 - \frac{1}{3}s_ 2 = 1 \) \( x_ 1 + \frac{1}{3}s_ 1 - \frac{1}{3}s_ 2 = 1 \) ... (1'') 新的方程组为: (1'') \( x_ 1 + \frac{1}{3}s_ 1 - \frac{1}{3}s_ 2 = 1 \) (2'') \( x_ 2 + \frac{2}{3}s_ 2 - \frac{1}{3}s_ 1 = 2 \) 令新的非基变量 \( s_ 1 = 0 \), \( s_ 2 = 0 \),代入方程: 由(1'')得: \( x_ 1 = 1 \) 由(2'')得: \( x_ 2 = 2 \) 于是,我们得到了新的基可行解: \( (x_ 1, x_ 2, s_ 1, s_ 2) = (1, 2, 0, 0) \)。此时目标函数值 \( z = 3(1) + 2(2) = 7 \)。 步骤9:最优性检验 我们再次将目标函数用当前的非基变量(\( s_ 1 \) 和 \( s_ 2 \))表示。 从(1'')和(2'')解出 \( x_ 1 \) 和 \( x_ 2 \) 代入 \( z \): \( z = 3x_ 1 + 2x_ 2 = 3(1 - \frac{1}{3}s_ 1 + \frac{1}{3}s_ 2) + 2(2 + \frac{1}{3}s_ 1 - \frac{2}{3}s_ 2) \) \( z = 3 - s_ 1 + s_ 2 + 4 + \frac{2}{3}s_ 1 - \frac{4}{3}s_ 2 \) \( z = 7 + (-\frac{1}{3}s_ 1) + (-\frac{1}{3}s_ 2) \) 目标函数表达式为: \( z = 7 - \frac{1}{3}s_ 1 - \frac{1}{3}s_ 2 \)。非基变量 \( s_ 1 \) 和 \( s_ 2 \) 的系数都是负数(\( -\frac{1}{3} \))。这意味着任何非基变量取正值(\( s_ 1 > 0 \) 或 \( s_ 2 > 0 \))都只会使目标函数值减小。因此,当前解已经是最优解,无法再改进。 4. 结论 通过两次旋转操作,我们找到了该线性规划问题的最优解: \( x_ 1^* = 1 \), \( x_ 2^* = 2 \) 最大化的目标函数值为 \( z^* = 7 \)。 这个求解过程清晰地展示了旋转算法的核心思想:从一个基可行解出发,通过选择能使目标函数改善的进基变量,并根据资源限制确定离基变量,然后通过高斯消元(旋转)得到相邻的、更优的基可行解,直至找不到能改善目标函数的进基变量(即达到最优解)为止。