随机规划问题由于随机性的存在,非常难于求解,自己根据目前的阅读与研究,总结出以下几点:
1. 使用随机动态规划
这本质上是一种穷举的方法,能够得到最优解,然而不适宜求解大规模问题。
2. 分析问题的性质,找到最优解结构
一般需要针对特定问题,需要高超的数学推导技巧。
3. 将其中的随机函数线性化。
若能够线性化,则可以用线性规划软件直接求解。但并不是所有的随机函数都能够线性化,若该随机函数里面只有一个随机变量,一般会容易些。
4. 使用情景树
使用不同的情景代替随机变量,问题同样转化为线性问题。然而对于较大规模的问题,情景树将会特别巨大从而难以求解,需要一定的情景树生成技巧从而减少问题规模。
5. 机会约束规划
利用机会约束,将随机问题转化为线性问题。
6. 鲁棒优化
也是一种流行的方法,但我还不太熟悉
7. 抽样平均近似方法 SAA,Sample Average Approximation
这个是对一个随机变量连续抽样,将目标函数转化为一个期望值求解。
对于多阶段问题,问题规模太大时,SAA 也不好求解。
目前我发现 SAA 与情景树的求解结果非常接近,基本相同,我觉得这两种方法在一些问题中可以等价。
8. 随机对偶动态规划 SDDP, stochastic dual dynamic programming
这个方法结合了 SAA、动态规划与 benders 分解,这两年看到越来越多的论文使用这个方法