优化问题的解法
(1)无约束的优化问题
min f(x);
解法:直接令一阶倒等于0(只是充分条件,还需要验证f的凹凸性)
(2)只含有等式约束的优化问题
min f(x)
s.t. g(x)=0
解法:拉格朗日乘子法
步骤一:定义拉格朗日函数 L(x,λ)=f(x)+λg(x),其中λ 为拉格朗日乘子
步骤二:对所有的变量和拉格朗日乘子求导并令其等于0,即
∂L/∂x=0, ∂L/∂λ=g(x)=0,然后求出x∗ 以及λ的值。(也是充分条件)
(3)含有不等式约束的优化问题
min f(x)
s.t. g(x)=0,h(x)⩽0
解法:KKT(Karush-Kuhn-Tucher)条件,有人也称为KT(Kuhn-Tucher)条件。
步骤一:定义拉格朗日函数 L(x,λ)=f(x)+λg(x)+μh(x),其中λ 为g(x)=0对应的拉格朗日乘子,μ为h(x)⩽0对应的拉格朗日乘子
步骤二:对所有的变量和拉格朗日乘子求导,令∂L/∂x=0, ∂L/∂λ=g(x)=0, ∂L/∂μ=h(x)⩽0, μ⩾0,μh(x)=0 (这些就是KKT条件)。
注意:
1.等式/不等式约束的条件可以是多个,同时保证满足山谷条件即可。
2.目标函数可以是max,不等式约束也可能>=0, 只需要改成∂L/∂μ=h(x)>=0即可。