GLPK/背景理论
有时,为此维基教科书中其他地方的材料提供背景理论可能会有用。此页面提供了一个位置。但此页面不应用于盲目复制官方 GLPK 手册中的基础材料,也不应用于撰写关于线性规划的一般条目。
寻求方向的读者可以参考以下维基百科页面
另请注意,混合整数规划 (MIP) 和混合整数线性规划 (MILP) 在这里被视为同义词。并且术语纯线性规划用于排除混合整数问题。
在非线性规划 (NLP) 的一般情况下,卡罗什-库恩-塔克 最优性条件 (KKT) 为解是局部最优的提供了必要的充要条件(以及必须满足的某些正则性条件)。线性规划 (LP) 是 NLP 的一个特例,其中可行域和目标函数都是凸的。在这种情况下,KKT 条件本身对于解是全局最优的既是必要条件又是充分条件。[1] KKT 条件可以应用于任何 LP 问题的基本解和内点解,但不能应用于混合整数线性规划 (MIP) 的解。也就是说,前两个 KKT 条件可以应用于混合整数规划以确认解是可行的。
此维基教科书还描述了GLPK 报告 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.PE和KTT.PB可以针对MIP解决方案计算,而GLPK将根据请求执行此操作。在这种情况下,这两个条件被描述为“整数可行性条件”,而不是“卡罗什-库恩-塔克最优性条件”。
另请参见
[edit | edit source]Tommi Sottinen 的关于运筹学 [4] 的课程笔记提供了 KKT 条件的 LP 证明,并将这些结果与 GLPK 术语进行交叉引用。
笔记
[edit | edit source]- ↑ 一些读者可能不熟悉 GLPK 使用的 KKT 公式。线性规划教材通常以强对偶和互补松弛的形式给出最优性条件。这些一起构成了微分优化的 KKT 条件的特例。
- ↑ LP 术语中的等式类型不幸地并不一致。这种表达式也被称为规范形式,而标准形式则指代其他内容。
- ↑ | 符号表示向量级联。
- ↑ Sottinen, Tommi (2009). 使用 GNU 线性规划套件的运筹学. ORMS1020 课程笔记。芬兰瓦萨大学数学与统计系. http://lipas.uwasa.fi/~tsottine/lecture_notes/or.pdf.