凸优化 - 线性规划


方法

线性规划也称为线性优化,是一种用于解决数学问题的技术,其中关系本质上是线性的。线性规划的基本性质是在某些约束下最大化或最小化目标函数。目标函数是从问题的数学模型获得的线性函数。约束是施加在模型上的条件,也是线性的。

  • 从给定的问题中找出目标函数。
  • 找到约束条件。
  • 在图上画出约束条件。
  • 找到由所有约束条件相交形成的可行区域。
  • 找到可行区域的顶点。
  • 求这些顶点处的目标函数的值。
  • 最大化或最小化目标函数(根据问题)的顶点就是答案。

例子

第 1 步- 最大化 $5x+3y$,但须遵守

$x+y\leq 2$,

$3x+y\leq 3$,

$x\geq 0 \:和 y\geq 0$

解决方案-

第一步是找到图上的可行区域。

实施例1

从图中可以清楚地看出,可行区域的顶点是

$\left ( 0, 0 \right )\left ( 0, 2 \right )\left ( 1, 0 \right )\left ( \frac{1}{2}, \frac{3}{2} \right )$

令 $f\left ( x, y \right )=5x+3y$

将这些值放入目标函数中,我们得到 -

$f\左 ( 0, 0 \右 )$=0

$f\左 ( 0, 2 \右 )$=6

$f\左 ( 1, 0 \右 )$=5

$f\left ( \frac{1}{2}, \frac{3}{2} \right )$=7

因此,函数在 $\left ( \frac{1}{2}, \frac{3}{2} \right )$ 处最大化

步骤 2 - 一家手表公司生产数字手表和机械手表。长期预测表明,每天预计需求至少 100 块数字手表和 80 块机械手表。由于产能限制,每天只能生产200只数字表和170只机械表。为了履行运输合同,每天至少要运输 200 块手表。

如果每售出一块数字手表会导致 $\$2$ 损失,但每块机械手表会产生 $\$5$ 利润,那么每种类型每天应该生产多少块才能使净利润最大化?

解决方案-

设 $x$ 为生产的数字手表的数量

$y$ 是生产的机械表的数量

根据问题,每天至少要生产100只电子表,最多可以生产200只电子表。

$\右箭头 100 \leq \:x\leq 200$

同样,每天至少生产80枚机械表,最多可制造170枚。

$\右箭头 80 \leq \:y\leq 170$

因为每天至少要生产 200 只手表。

$\右箭头 x +y\leq 200$

由于每售出一个数字手表会导致 $\$2$ 损失,但每个机械手表都会产生 $\$5$ 利润,

总利润可计算为

$利润 =-2x + 5y$

我们必须最大化利润,因此,问题可以表述为 -

最大化 $-2x + 5y$ 取决于

$100 \:\leq x\:\leq 200$

$80 \:\leq y\:\leq 170$

$x+y\:\leq 200$

将上述方程绘制在图表中,我们得到,

实施例2

可行区域的顶点是

$\左 ( 100, 170\右 )\左 ( 200, 170\右 )\左 ( 200, 180\右 )\左 ( 120, 80\右 ) 和 \左 ( 100, 100\右 )$

目标函数的最大值在 $\left ( 100, 170\right )$ 处获得。因此,为了使净利润最大化,需要生产 100 块电子表和 170 块机械表。