Proximal Algorithms 5 Parallel and Distributed Algorithms

Proximal Algorithms

这一节,介绍并行算法的实现.

问题的结构

[n]={1,,n}. 给定c[n], 让xcR|c|表示向量xRn的一个子向量(以c为指标的对应部分).当P={c1,,cN}满足:

P=[n]cicj=,ij

时, 称P[n]的一个分割.
函数fP分割满足:

f(x)=i=1Nfi(xci)

其中fi:R|ci|R.
在这种情况下:

(proxf(v))i=proxfi(vi)

所以,可以并行计算.

考虑下面的问题:

minimizef(x)+g(x)

如果假设fP分割的, 而gQ分割的,那么问题等价于:
在这里插入图片描述
于是ADMM可以并行计算:
在这里插入图片描述

consensus

考虑下列问题如何进行并行计算:

minimizef(x)=i=1Nfi(x)

一个非常巧妙的变化:
在这里插入图片描述
可以看到,这样子,函数就是可分了, 只是多了一个附加条件.
将上面的问题转化为:

minimizei=1Nfi(xi)+IC(x1,,xN)

其中C是consensus set:

C={(x1,,xN)|x1=,=xN}

这样,问题就变成俩个可分函数了, 不过需要注意的是,二者的分割并不相同:

P={[n],n+[n],2n+[n],,(N1)n+[n]}

Q,即IC的分割为:

Q={{i,n+i,2n+i,,(N1)n+i}|i=1,2,,n}

注: 文中是i=1,2,,N(我认为是作者的笔误).
这个时候的ADMM的第二步,即更新z,可以直接为:

zi=z¯=(1/N)i=1Nzi

在这里插入图片描述
作者贴了一个比较形象的图来表示这种分割:
在这里插入图片描述

更为一般的情况

考虑下面的问题:

minimizef(x)=i=1Nfi(xci)

其中ci[n], 但是cicj,ij并不一定为空集.
进行同样的转换:
在这里插入图片描述
其中

C={(z1,,zN)|(zi)k=(zj)kifkcicj}

同样等价于:

minimizei=1Nfi(zi)+IC(z1,,zN)

相应的有一张比较形象的图:
在这里插入图片描述
前一部分的分割是类似的, 后一部分的分割,就是怎么说呢,就像图上的行一样的分.

ADMM为:
在这里插入图片描述
其中Fi={j[N]|icj}

Exchange 问题

Global exchange

交换问题具有如下形式:

在这里插入图片描述
可以用一个实际问题来考量,每个i表示一个客户,xi表示每个客户给予或者得到的总量,而fi(xi)表示该客户的效益,i=1Nxi=0这个条件表示,所以客户东西的总量是固定的,即收支平衡.

我们可以将此问题转化为(这个方法太好使了吧):

minimizei=1Nfi(xi)+IC(x1,,xN)

其中

C={(x1,,xN)RnN|x1+x2++xN=0}

我们知道,指示函数的proximal为投影算子, 于是:

(ΠC(v1,,vN))i=viv¯

于是ADMM算法为:
在这里插入图片描述

更为一般的情况

有些时候,并不是所有客户都面对同一个市场,所以,每个xi的维度什么对的也有区别:

C={(z1,,zN)|i:kci(zi)k=0}

有点和consenus的一般情况比较类似.

Allocation

allocation problem:
在这里插入图片描述
其中xiRn.

这个问题和交换问题也是相似的,区别在于总量b, 而且要求xi0.
类似的,我们可以将上面的问题改写为:

minimizei=1Nfi(xi)+IC(x1,,xN)

其中:

C={(x1,,xN)|xi0,x1++xN=b}

所以相应的算法是:
在这里插入图片描述
如何进行投影,会在下一节提到, 还有更加一般的情况,比如i=1Nxib.

posted @   馒头and花卷  阅读(261)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示