function [gam,fval] = gamlpconj(A) % exploring |Ag| % a conjecture global nstate nstate=size(A,1); m = nstate; h = strict(A); C = 1+h; adim = 0; gdim = m^2; xdim = gdim; rind=0; Aeq = zeros(0,xdim); Beq = zeros(0,1); % gamma sum constraint for i=1:m for s=[-1 1] rind = rind+1; for j=1:m cind = coord2ind([i j],[m m]); Aing(rind,cind) = s; end Bing(rind,1) = C; end end % gamma Lip constraint: d=1; for j=1:m for i1=1:m for i2=i1+1:m ind1 = coord2ind([i1 j],[m m]); ind2 = coord2ind([i2 j],[m m]); for s=[-1 1] rind = rind+1; Aing(rind,ind1) = s; Aing(rind,ind2) = -s; Bing(rind,1) = 2*d; %Bing(rind,1) = d*h; end end end end % gamma Lip+sum constraint: for j=1:m for i1=1:m for i2=i1+1:m ind1 = coord2ind([i1 j],[m m]); ind2 = coord2ind([i2 j],[m m]); for s=[-1 1] for is=1:m for ss=[-1 1] rind = rind+1; for js=1:m cind = coord2ind([is js],[m m]); Aing(rind,cind) = ss; Aing(rind,ind1) = s; Aing(rind,ind2) = -s; Bing(rind,1) = m*d; end end end end end end end Ain = assembleblock({Aing}); Bin = [Bing]; f = A(:); [xp,fvalp] = linprog( f,Ain,Bin,Aeq,Beq); [xn,fvaln] = linprog(-f,Ain,Bin,Aeq,Beq); if abs(fvalp)>abs(fvaln) x = xp; fval = fvalp; else x = xn; fval = fvaln; end gam = reshape(x,[m m]); return