主旨是纳什议价的求解,怎么求到电价和交易电量。相关算法采用ADMM算法。
ADMM算法介绍
对于计算量庞大的优化,可以将大规模计算分拆成多个小规模的计算,分别求解。交替乘子法(Alternating Direction Method of Multipliers,ADMM)算法就是用来解决拆分问题求解,并且具有良好的收敛效果。
ADMM算法的基础是对偶问题,以及对偶梯度下降法。
拉格朗日松弛的理解:
原函数,松弛函数。对偶函数根据下图可以得到原函数一定大于等于松弛函数,若取得等号,则为强对偶,取大于或等于为弱对偶。(图是[1]的)。
也就是说如果你的模型是符合强对偶的,就可以求得到乘子值,代回 求x的值。
对于ADMM算法而言,根据上面的。写出原问题的对偶问题,求出乘子,就可以求决策变量了。怎么求乘子,怎么求决策变量呢?——ADMM感觉就是对偶梯度下降法多了一个变量。
根据包络定理和共轭函数,以及一系列证明[1],可以得到这样的梯度下降算法求得乘子。
也就是说,得先给定一个。并且由于ADMM多一个变量,所以还得给定一个初始。
即step1:给定、、,带入拉格朗日函数计算;
step2:根据、、,带入拉格朗日函数计算;
step3:根据、,,带入梯度下降算法:计算;
然后迭代。
收敛条件是:
问题1:为什么约束变成了非严格约束,而是成为了判断收敛的标准,是否代表所求并非最优解,而是可行解?——[2]说了不一定是最优解
参考: