function [g,K,phi] = pseudogray(m,n) %K = sort(K); phi = randphi_hlp(m,n); GG = gengray(n,m); ii = invperm(GG+1); phi = phi(ii); LB = -ones(size(phi)); UB = ones(size(phi)); Aeq = ones(1,length(phi)); Beq = 0; [K,fval] = linprog(-phi,[],[],Aeq,Beq,LB,UB); ip = find(K>=0); in = find(K<0); K(ip) = K(ip)/sum(K(ip)); K(in) = K(in)/abs(sum(K(in))); K1 = getK1(K,m,n); n1 = n-1; [Ainf,Binf] = lipab(m,n1); LB = zeros(m^n1,1); UB = n1+zeros(m^n1,1); [x,fval] = linprog(-K1,Ainf,Binf,[],[],LB,UB); phi1 = round(x-min(x))'; s2 = sum(K.*(K>0))+phi1*K1; s1 = sum(phi'*K); g = (s1 <= s2); return