纳什议价2

主旨是纳什议价的求解,怎么求到电价和交易电量。相关算法采用ADMM算法。

ADMM算法介绍

对于计算量庞大的优化,可以将大规模计算分拆成多个小规模的计算,分别求解。交替乘子法(Alternating Direction Method of Multipliers,ADMM)算法就是用来解决拆分问题求解,并且具有良好的收敛效果。

ADMM算法的基础是对偶问题,以及对偶梯度下降法。

拉格朗日松弛的理解:

原函数min F(x) s.t g(x)\leqslant 0 h(x)=0,松弛函数F(x)+\lambda g(x)+\mu h(x) , \lambda \geqslant 0。对偶函数G(\lambda ,\mu )=min(F(x)+\lambda g(x)+\mu h(x))根据下图可以得到原函数一定大于等于松弛函数,若取得等号,则为强对偶,取大于或等于为弱对偶。(图是[1]的)。

也就是说如果你的模型是符合强对偶的,就可以求G(\lambda,\mu)得到乘子值,代回 min(F(x)+\lambda g(x)+\mu h(x))求x的值。

对于ADMM算法而言,根据上面的。写出原问题的对偶问题,求出乘子,就可以求决策变量了。怎么求乘子,怎么求决策变量呢?——ADMMf(x,z)感觉就是对偶梯度f(x)下降法多了一个变量。

根据包络定理和共轭函数,以及一系列证明[1],可以得到这样的梯度下降算法求得乘子。

也就是说,得先给定一个\lambda。并且由于ADMM多一个变量,所以还得给定一个初始z

即step1:给定\lambda 0\rho 0z0,带入拉格朗日函数计算x1

step2:根据\lambda 0\rho 0x1,带入拉格朗日函数计算z1

step3:根据\rho 0x1z1,带入梯度下降算法:计算\lambda 1

然后迭代。

收敛条件是:

问题1:为什么约束变成了非严格约束,而是成为了判断收敛的标准,是否代表所求并非最优解,而是可行解?——[2]说了不一定是最优解

参考:

[1] ADMM算法原理详解 - 知乎 (zhihu.com)

[2] (38 封私信 / 82 条消息) ADMM算法的详细推导过程是什么? - 知乎 (zhihu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值