f=maxmin x;约束:0=x=1;约束 0=y=z;约束:x+y=1;如何用KKT条件得到一个f=max的单层模型
要使用KKT条件得到一个f=max的单层模型,首先需要将问题转化为标准形式。给定约束条件为0<=x<=1,0<=y<=z,x+y=1,目标函数为f=max(min x)。
-
将约束条件转化为等式约束:
- 引入新的变量s1和s2,将不等式约束转化为等式约束: 0 + s1 = x x + s2 = 1 0 <= s1 <= 1 0 <= s2 <= 1
- 引入新的变量t,将不等式约束转化为等式约束: y + t = z 0 <= t
-
构建拉格朗日函数: 构建拉格朗日函数L(x, y, z, s1, s2, t) = min x + λ1(0 + s1 - x) + λ2(x + s2 - 1) + λ3(y + t - z) + λ4(0 - s1) + λ5(1 - s2) + λ6(0 - t)
-
求解KKT条件:
-
求解最小化问题的KKT条件: ∂L/∂x = 1 - λ1 + λ2 = 0 ∂L/∂y = λ3 = 0 ∂L/∂z = -λ3 = 0 ∂L/∂s1 = λ1 - λ4 = 0 ∂L/∂s2 = λ2 - λ5 = 0 ∂L/∂t = λ3 - λ6 = 0 λ1(0 + s1 - x) = 0 λ2(x + s2 - 1) = 0 λ3(y + t - z) = 0 λ4(0 - s1) = 0 λ5(1 - s2) = 0 λ6(0 - t) = 0 0 <= s1 <= 1 0 <= s2 <= 1 0 <= t
-
求解最大化问题的KKT条件: ∂L/∂x = -1 + λ1 - λ2 = 0 ∂L/∂y = -λ3 = 0 ∂L/∂z = λ3 = 0 ∂L/∂s1 = -λ1 + λ4 = 0 ∂L/∂s2 = -λ2 + λ5 = 0 ∂L/∂t = -λ3 + λ6 = 0 λ1(0 + s1 - x) = 0 λ2(x + s2 - 1) = 0 λ3(y + t - z) = 0 λ4(0 - s1) = 0 λ5(1 - s2) = 0 λ6(0 - t) = 0 0 <= s1 <= 1 0 <= s2 <= 1 0 <= t
-
-
根据KKT条件进行求解:
-
对于最小化问题: x = 1/2 y = 1/2 z = 1/2 s1 = 1/2 s2 = 1/2 t = 1/2 λ1, λ2, λ3, λ4, λ5, λ6 >= 0
-
对于最大化问题: x = 1/2 y = 1/2 z = 1/2 s1 = 1/2 s2 = 1/2 t = 1/2 λ1, λ2, λ3, λ4, λ5, λ6 >= 0
-
根据求解所得的结果,可以得到一个f=max的单层模型: f = max(min x) = 1/
原文地址: https://www.cveoy.top/t/topic/ioix 著作权归作者所有。请勿转载和采集!