跳转到内容

GLPK/背景理论

来自维基教科书,开放世界中的开放书籍

有时,为此维基教科书中其他地方的材料提供背景理论可能会有用。此页面提供了一个位置。但此页面不应用于盲目复制官方 GLPK 手册中的基础材料,也不应用于撰写关于线性规划的一般条目。


寻求方向的读者可以参考以下维基百科页面

另请注意,混合整数规划 (MIP) 和混合整数线性规划 (MILP) 在这里被视为同义词。并且术语纯线性规划用于排除混合整数问题。

卡罗什-库恩-塔克 (KKT) 最优性条件

[编辑 | 编辑源代码]

非线性规划 (NLP) 的一般情况下,卡罗什-库恩-塔克 最优性条件 (KKT) 为解是局部最优的提供了必要的充要条件(以及必须满足的某些正则性条件)。线性规划 (LP) 是 NLP 的一个特例,其中可行域和目标函数都是的。在这种情况下,KKT 条件本身对于解是全局最优的既是必要条件又是充分条件。[1] KKT 条件可以应用于任何 LP 问题的基本解和内点解,但不能应用于混合整数线性规划 (MIP) 的解。也就是说,前两个 KKT 条件可以应用于混合整数规划以确认解是可行的。

此维基教科书还描述了GLPK 报告 KKT 的具体细节,并提供了一个典型示例.

KKT 最优性条件

[编辑 | 编辑源代码]

以标准形式取一个原始 LP 问题:[2]

最小化
受制于

其中是原始变量的向量。对偶 LP 问题变为

最大化
受制于

其中 是对偶变量的向量,[3] 是等式约束 的拉格朗日(或单纯形)乘数(影子价格)向量,而 是不等式约束 的拉格朗日乘数(折算成本)向量。


卡鲁什-库恩-塔克(KKT)最优性条件利用了原始和对偶公式中的所有约束,并包含一个互补松弛条件。五个 KKT 最优性条件是

KTT.PE
KTT.PB
KTT.DE
KTT.DB
KTT.CS

TheKKT.CS条件可以改写为 ,意味着向量 必须是正交的。


KKT 条件在 GLPK 中的实现稍微复杂一些,因为 GLPK 支持具有较低 和上限 边界的变量,这也意味着没有边界。一般来说

最小化或最大化
受制于

其中(如前所述)是结构和辅助变量的向量,而是一个单位矩阵。尽管如此,GLPK中使用的条件等同于上面显示的条件,并且具有相同的含义。


最后,请注意,KKT条件KKT.PEKTT.PB可以针对MIP解决方案计算,而GLPK将根据请求执行此操作。在这种情况下,这两个条件被描述为“整数可行性条件”,而不是“卡罗什-库恩-塔克最优性条件”。

另请参见

[edit | edit source]

Tommi Sottinen 的关于运筹学 [4] 的课程笔记提供了 KKT 条件的 LP 证明,并将这些结果与 GLPK 术语进行交叉引用。

笔记

[edit | edit source]
  1. 一些读者可能不熟悉 GLPK 使用的 KKT 公式。线性规划教材通常以强对偶和互补松弛的形式给出最优性条件。这些一起构成了微分优化的 KKT 条件的特例。
  2. LP 术语中的等式类型不幸地并不一致。这种表达式也被称为规范形式,而标准形式则指代其他内容。
  3. | 符号表示向量级联。
  4. Sottinen, Tommi (2009). 使用 GNU 线性规划套件的运筹学. ORMS1020 课程笔记。芬兰瓦萨大学数学与统计系. http://lipas.uwasa.fi/~tsottine/lecture_notes/or.pdf. 
华夏公益教科书