凸优化 - 线性规划
方法
线性规划也称为线性优化,是一种用于解决数学问题的技术,其中关系本质上是线性的。线性规划的基本性质是在某些约束下最大化或最小化目标函数。目标函数是从问题的数学模型获得的线性函数。约束是施加在模型上的条件,也是线性的。
- 从给定的问题中找出目标函数。
- 找到约束条件。
- 在图上画出约束条件。
- 找到由所有约束条件相交形成的可行区域。
- 找到可行区域的顶点。
- 求这些顶点处的目标函数的值。
- 最大化或最小化目标函数(根据问题)的顶点就是答案。
例子
第 1 步- 最大化 $5x+3y$,但须遵守
$x+y\leq 2$,
$3x+y\leq 3$,
$x\geq 0 \:和 y\geq 0$
解决方案-
第一步是找到图上的可行区域。
从图中可以清楚地看出,可行区域的顶点是
$\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$
将上述方程绘制在图表中,我们得到,
可行区域的顶点是
$\左 ( 100, 170\右 )\左 ( 200, 170\右 )\左 ( 200, 180\右 )\左 ( 120, 80\右 ) 和 \左 ( 100, 100\右 )$
目标函数的最大值在 $\left ( 100, 170\right )$ 处获得。因此,为了使净利润最大化,需要生产 100 块电子表和 170 块机械表。