KKT (Karush-Kuhn-Tucker) 条件是用于描述约束优化问题最优解的一组必要条件。KKT条件由以下四个条件组成:
-
稳定性条件(Stationarity Condition):
∇f(x*) + ∑ λ_i ∇g_i(x*) + ∑ μ_j ∇h_j(x*) = 0稳定性条件要求在最优解x处,目标函数f(x)与约束函数的梯度在相加后等于零。这表示最优解x满足了约束条件的梯度为零,即在最优解处,目标函数在可行域内的变化趋势与约束条件保持一致。
-
原始可行性条件(Primal Feasibility Condition):
g_i(x*) ≤ 0,对于 i = 1, 2, …, m
h_j(x*) = 0,对于 j = 1, 2, …, p原始可行性条件要求最优解x*满足所有的不等式约束和等式约束。这表示最优解在可行域内,即满足所有约束条件。
-
对偶可行性条件(Dual Feasibility Condition):
λ_i ≥ 0,对于 i = 1, 2, …, m对偶可行性条件要求拉格朗日乘子λ_i非负。这表示最优解对应的拉格朗日乘子需要满足非负条件。
-
互补松弛条件(Complementary Slackness Condition):
λ_i * g_i(x*) = 0,对于 i = 1, 2, …, m互补松弛条件要求最优解x*和相应的拉格朗日乘子λ_i的乘积为零。当不等式约束严格满足时,相应的拉格朗日乘子为零;当不等式约束在最优解处取得等号时,相应的拉格朗日乘子大于零。这表示最优解和拉格朗日乘子之间存在一种互补的关系。
综上所述,KKT条件包括稳定性条件、原始可行性条件、对偶可行性条件和互补松弛条件。这些条件一起描述了约束优化问题的最优解应满足的必要条件。当最优解满足这些条件时,它就是约束优化问题的一个潜在最优解。