【线性化】绝对值项的线性化

今天优化里面又碰到绝对值了。无论是目标函数里头的绝对值还是约束条件里头的绝对值,处理起来都一样:把绝对值项换成非绝对值项(好像有点废话)。

假设有绝对值项如下,其中 R j      j ∈ S L {R_j}{\rm{ }} \ \ \ \ j \in {S_L} Rj    jSL 是自变量。

O s = 1 N ∑ j ∈ S L ∣ R j − ∑ j ∈ S L R j N ∣ {O_s} = {1 \over N}\sum\limits_{j \in {S_L}} {\left| {{R_j} - {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N}} \right|} Os=N1jSLRjNjSLRj

O s {O_s} Os可用如下四个式子进行替换:
O s = 1 N ∑ j ∈ S L U j {O_s} = {1 \over N}\sum\limits_{j \in {S_L}} {{U_j}} Os=N1jSLUj

R j − ∑ j ∈ S L R j N ≤ U j ≤ R j − ∑ j ∈ S L R j N + M δ j (1) {R_j} - {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} \le {U_j} \le {R_j} - {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} + M{\delta _j} \tag{1} RjNjSLRjUjRjNjSLRj+Mδj(1)

∑ j ∈ S L R j N − R j ≤ U j ≤ ∑ j ∈ S L R j N − R j + M ε j (2) {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} - {R_j} \le {U_j} \le {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} - {R_j} + M{\varepsilon _j} \tag{2} NjSLRjRjUjNjSLRjRj+Mεj(2)

δ j + ε j = 1 (3) {\delta _j} + {\varepsilon _j} = 1 \tag{3} δj+εj=1(3)

式中: M M M为一个极大数, δ j {\delta _j} δj ε j {\varepsilon _j} εj 均为0-1变量。

观察一下,其实就是用 U j {U_j} Uj 替换了 ∣ R j − ∑ j ∈ S L R j N ∣ \left| {{R_j} - {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N}} \right| RjNjSLRj

下面稍加分析。

首先明确一点:绝对值 ∣ m − n ∣ \left| {m - n} \right| mn 其实就是取 m − n m-n mn n − m n-m nm 二者中的较大值。

看式(1)和式(2)的左半边,已经确保了 U j {U_j} Uj大于等于 R j − ∑ j ∈ S L R j N {R_j} - {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} RjNjSLRj ∑ j ∈ S L R j N − R j {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} - {R_j} NjSLRjRj中的较大值。下面再需要让这个大于等于能够取等。这就是式(1)和式(2)的右半边的作用。

由于有0-1变量和大M的作用,再加上左半边已经确保 U j {U_j} Uj 能大于较大值,右半边的最终效果则是 U j {U_j} Uj小于等于二者中 R j − ∑ j ∈ S L R j N {R_j} - {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} RjNjSLRj ∑ j ∈ S L R j N − R j {{\sum\limits_{j \in {S_L}} {{R_j}} } \over N} - {R_j} NjSLRjRj中的较大值。

此处 δ j + ε j = 1 {\delta _j} + {\varepsilon _j} = 1 δj+εj=1的作用就是确保式(1)和式(2)右半边两个式子只有一个能起作用,也就是0-1变量取0的那个式子,取1的那个式子由于大M的存在会被松弛,因为等价于小于等于一个极大数。

大于等于较大值,小于等于较大值,综合效果就是等于较大值。

总结

由于上述线性化是直接把绝对值项用非绝对值项+一些不含绝对值的约束替换掉,所以无论绝对值项出现在目标函数中还是约束条件中都是可以顺利操作的。

但是如果约束条件是 ∣ x − m ∣ ≤ n \left| {x - m} \right| \le n xmn 这种,直接把绝对值拆开就可以了,但如果是 ∑ i = 1 N ∣ x i − m ∣ ≤ n \sum\limits_{i = 1}^N {\left| {{x_i} - m} \right|} \le n i=1Nximn 这种稍微不那么一般的形式,貌似就只能通过上述这种稍微繁琐一些的操作来进行线性化了。

另外这种线性化的操作应该不是唯一的,上面给出的只是我自己看到的并且觉得比较好理解的一种。

参考文献

孙田, 邹鹏, 杨知方, 等. 动态无功优化的多阶段求解方法[J]. 电网技术, 2016, 40(06): 1804–1810.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值