function gatherstats global m n m=2; n=4; global HH PP Ainf Binf Lmf global domask phi01 domask = 0; % mask doesn't yield opt phi01 = 1; % restrict phi to [0,1] [Ainf,Binf] = lipab(m,n); %HH = [];PP = []; delta = .1; T = 500; [Ainf,Binf] = lipab(m,n); Lmf = getLmf(m,n); PROGstart(T) for t=1:T %A = pnormdim(rand(m,m,n-1),1); %C = ones(m,1)/m; %H = getH(A); %B = 2*exp(-1/2*n*delta^2/H^2); %p = probdev_optphi(A,C); %good = (p < B + 1e-10); %if ~good % keyboard %end %p = probdev_optmask(A,C); %p = probdev_qp(A,C); %r = rand; r = randinseg(.5,1); %[A,p] = minmaxvar_hcon(m,n,n-.1); %[A,p] = minmaxvar_hcon(m,n,r); [A,p] = minmaxprdev(m,n,r); %H = getH(A); h = geth(A); %HH(end+1) = H; HH(end+1) = h; PP(end+1) = p; %if p < h % 'bad' % keyboard %end %if min(PP) < 1e-9 % break %end PROGupdate(t); %save HPDATA HH PP end PROGend return function h = geth(A) [m,m,T] = size(A); h = 1; for t=1:T for i1=1:m for i2=i1+1:m p1 = A(:,i1,t); p2 = A(:,i2,t); h = min(h,sum(abs(p1-p2))/2); end end end return m=2 n=3 global Ainl Binl Ain1 Bin1 GG iif m n mylinopt warning off mylinopt = optimset('Diagnostics','off'); mylinopt = optimset('Display','off'); n1 = n-1; dum = zeros(m^n,1); LBK = -ones(size(dum)); UBK = ones(size(dum)); LBf = zeros(size(dum)); UBf = n*ones(size(dum)); [Ainl,Binl] = lipab(m,n); [Ain1,Bin1] = lipab(m,n1); KK = []; PH = []; while 1 K = genK(m,n); [x,fval] = linprog(-K,Ainl,Binl,[],[],0*K,0*K+n); phi=x'; K1 = getK1(K,m,n); ksig = (K>0); phiks=pl(phi-ksig'); Kf = getK1(phiks'.*K,m,n); %phil = fitlips(K1,Kf,m,n1); %good = sum(K1) + 1e-6 > sum(Kf); %good = (good | all(K1>=1e-6)); %if ~good % 'no cigar' % keyboard %end end if 0 for t=1:100 K = genK(m,n); K1 = getK1(K,m,n); [x,fval] = linprog(-K,Ainl,Binl,[],[],0*K,0*K+n); phi=x';phiks=pl(phi-(K'>0));lam=phiks*K; phij = justover(K1,m,n-1,lam); %K = genK(m,n);K1=getK1(K,m,n),[x,fval]=linprog(-K,Ainl,Binl,[],[],0*K,0*K+n);phi=x';phiks=pl(phi-(K'>0));lam=phiks*K %KK = [KK, K]; %PH = [PH, phi]; KK = [KK, K.*phi']; PH = [PH, phij]; end end