- 对二段函数线性化,例如: f ( x ) = : f(x)=: f(x)=:
f 1 ( x ) , 0 < x ≤ a f 2 ( x ) , a < x f_1(x), 0<x\le a \\ f_2(x), a<x f1(x),0<x≤af2(x),a<x
线性化:
f ( x ) = f 1 ( x ) ( 1 − y ) + f 2 ( x ) y s . t . y ∈ { 0 , 1 } a y < x ≤ M y + a f(x) = f_1(x)(1-y) + f_2(x)y\\s.t. \quad y\in \{0,1\}\\ ay<x\le My+a f(x)=f1(x)(1−y)+f2(x)ys.t.y∈{0,1}ay<x≤My+a
分析:
- 若 y = 0 y=0 y=0, 约束 0 < x ≤ a 0<x\le a 0<x≤a, 且此时 f ( x ) = f 1 ( x ) f(x)=f_1(x) f(x)=f1(x), 等价于第一段函数。
- 若 y = 1 y=1 y=1, 约束 a < x ≤ M + a a<x\le M+a a<x≤M+a, 由于 M M M是任取的一个极大已知整数,因此该约束等价于 a < x a<x a<x, 此时 f ( x ) = f 2 ( x ) f(x)=f_2(x) f(x)=f2(x),等价于第二段函数。
- 对N段函数线性化: 例如: f ( x ) = : f(x)=: f(x)=:
f 1 ( x ) , 0 < x ≤ a f 2 ( x ) , a < x ≤ b f 3 ( x ) , b < x ≤ c f_1(x), 0<x\le a \\ f_2(x), a<x\le b\\f_3(x), b<x\le c f1(x),0<x≤af2(x),a<x≤bf3(x),b<x≤c
线性化:
f ( x ) = f 1 ( x ) y 1 + f 2 ( x ) y 2 + f 3 ( x ) y 3 s . t . 0 < x ≤ M ( 1 − y 1 ) + a a y 2 < x ≤ M ( 1 − y 2 ) + b b y 3 < x ≤ M ( 1 − y 3 ) + c y 1 , y 2 , y 3 ∈ { 0 , 1 } y 1 + y 2 + y 3 = 1 f(x) = f_1(x)y_1 +f_2(x)y_2 +f_3(x)y_3\\s.t. \quad 0<x\le M(1-y_1) +a\\ ay_2<x\le M(1-y_2)+b\\by_3<x\le M(1-y_3) + c\\ y_1,y_2,y_3\in\{0,1\}\\y_1+y_2+y_3=1 f(x)=f1(x)y1+f2(x)y2+f3(x)y3s.t.0<x≤M(1−y1)+aay2<x≤M(1−y2)+bby3<x≤M(1−y3)+cy1,y2,y3∈{0,1}y1+y2+y3=1
分析:
- 若 y 1 = 1 y_1=1 y1=1, 此时 y 2 , y 3 = 0 y_2,y_3=0 y2,y3=0, f ( x ) = f 1 ( x ) f(x)=f_1(x) f(x)=f1(x), 约束条件为: 0 < x ≤ a 0<x\le a 0<x≤a, 等价于第一段
- 若 y 2 = 1 y_2=1 y2=1, 此时 y 1 , y 3 = 0 y_1,y_3=0 y1,y3=0, f ( x ) = f 2 ( x ) f(x)=f_2(x) f(x)=f2(x), 约束条件为: a < x ≤ b a<x\le b a<x≤b, 等价于第二段
- 若 y 3 = 1 y_3=1 y3=1, 此时 y 1 , y 2 = 0 y_1,y_2=0 y1,y2=0, f ( x ) = f 3 ( x ) f(x)=f_3(x) f(x)=f3(x), 约束条件为: b < x ≤ c b<x\le c b<x≤c, 等价于第三段。