資源簡介
ADMM算法是機器學習中比較廣泛使用的約束問題最優(yōu)化方法。本程序?qū)崿F(xiàn)了ADMM求解優(yōu)化問題的代碼。
代碼片段和文件信息
function?[]=ADMM(x0)%x0?is?an?initial?vector
maxk=100;
k=0;
yita=1;
A=[20.25;0.250.2];
hl=plotfun(x0);
%x0=zeros(12);
y=zeros(21);
z=zeros(21);
x1=[x0(1)];?x2=[x0(2)];
eps=1e-10;
while(k ????x0=f(yitayz);
????z=proximalfun(x0yitay);
????y=y+yita*(x0-z);
????x1=[x1;x0(1)];
????x2=[x2;x0(2)];?
????set(hl‘xdata‘x1‘ydata‘x2);
????if?k~=0?&&?norm(fun1(x0)-fun1(xpre)) ???????break;
????end;
????xpre=x0;
????k=k+1;
end
plotobj(x1x2);
val=fun1(x0)
x0
k
end
%%
function?[xnew]=f(yitayz)
A=[20.25;0.250.2];
b=[0.5;0.5];
c=-1.5;
x=(zeros(12)-y‘+z‘/yita-b‘)*inv(A+(1/yita)*eye(2));
xnew=x‘;
end
%%
function?[znew]=proximalfun(xyitay)
n=length(x);
znew=[];
for?i=1:n
????if?yita*y(i)+x(i)-0.2*yita>0
????????z(i)=yita*y(i)+x(i)-0.2*yi
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1760??2016-07-06?00:12??ADMM.m
-----------?---------??----------?-----??----
?????????????????1760????????????????????1
評論
共有 條評論