Python中的优化函数5:优化的一些处理技巧
示性函数的实现技巧
在很多python的优化函数中示性函数是无法使用的,例如:
1
{
x
>
α
}
1_{\{x>\alpha\}}
1{x>α}。这里介绍一种M法来解决,首先定义一个辅助变量
z
=
1
or
0
z=1 \text{ or } 0
z=1 or 0, 令
M
M
M是一个很大的正数,例如
M
=
1
e
5
M=1e5
M=1e5, 则在下式的约束下,
z
z
z和示性函数
1
{
x
>
α
}
1_{\{x>\alpha\}}
1{x>α}的效果一样:
x
>
α
−
M
(
1
−
z
)
x
<
α
+
M
z
\begin{aligned} x>\alpha-M(1-z)\\ x<\alpha+Mz \end{aligned}
x>α−M(1−z)x<α+Mz