目录
简介
Principle ARR – Shu-Cherng Fang
• Approximation – “accept good-enough” to make problem easy
• Reformulation – “change view” to make the problem clear and simple
• Relaxation – “drop difficulties” to get a bound of the problem
• Decomposition – “reduce dimensionality”
1.近似 Approximation
非线性转化为线性本质就是近似,无论是我们手动近似还是求解器内部线性逼近(想一下两个连续变量连续乘积线性化,以及分段函数线性化等),本质都是近似。
近似的本质是≈,不是精确的,因此存在着一定的误差。
2.重构 Reformulation
用不同的形式来写模型,如VRP中的3index,2index,以及1index模型;再比如我们把解的模型转化为极射线和极点表示的模型等等。
重构的本质是让模型更紧,或是可以利用到更多理论性质。我们熟知的D-W分解,或是bender分解它其实也算是一种重构。
3.松弛 Relaxation
松弛的本质是提供一个界,从而提供一个更好的参照系,或者是在求解器求解时砍掉更多的枝干;或者是与启发式算法对比提供一个更好的标杆。
我们熟知的拉格朗日算法松弛、线性松弛应归于此类。
4.降维 Decomposition
降维的本质是把幂指级的问题降为若干个小幂指级相加的问题。比如1个100维的问题变为求解100个1维问题,难度系数一下子降低很多。
降维的关键是,怎么保证若干个低维度的问题等价于原来的高维度的问题。(可以回想下benders分解,它的本质也是降维。)
降维我还可以举个例子,联军难破,但各个击破就容易得多。关键在于怎么瓦解联盟,像反间计,张仪的连横本质就是降维,破除多维护,降低难度。
这四种方式并不是孤立的,事实上,很多时候一个好的建模求解可能包含多种。