function [H,pi] = minhord(P,m,n) global PI if isempty(PI) error('PI not initialized'); %PI = generate_perms(n); end H = Inf; PROGstart(size(PI,1)); for i=1:size(PI,1) P1 = reorderP(P,m,n,PI(i,:)); [hh,Ht,Hpi] = gethhn(P1,m,n); if Hpi < H H = Hpi; pi = PI(i,:); end PROGupdate(i); end PROGend; return