%%%%%%%%%%%%%%%%%%%%%%% %maxflow_pref_ini % %%%%%%%%%%%%%%%%%%%%%%% % t---starting node for BFS Search % 's' must be given before running this script ACTIVE{2*N}=[]; current(1:N)=1; e(1:N)=0; d(1:N)=0; X=zeros(M,1); posT=zeros(1,M); posH=posT; %find the exact distance label %s=1; t=N; LIST=[t]; first=1; last=length(LIST); mark(1:N)=0; mark(t)=1; d(1:N)=0; while first <= last i=LIST(first); if ~isempty(AI{i}) jj=T(AI{i}); %AI{i} stores arc_names admit=jj( find( mark(jj)==0 ) ); mark(admit)=1; d(admit)=d(i)+1; LIST=[LIST,admit']; last=last+length(admit); end%if first=first+1; end%while d( find(d==0) )=N; d(t)=0; d(s)=N; arcs=A{s}; X(arcs)=UB(arcs); heads=H(arcs); e(heads)=UB(arcs); for ind=1:length(heads) j=heads(ind); if j~=t && d(j) <= N dist=d(j); ACTIVE{dist}=[ACTIVE{dist}, j]; end%if end%for level=2*N; %creat an admissible list ADMIS{N}=[]; for k=1:M i=T(k); j=H(k); if d(i)==d(j)+1 & X(k)0 ADMIS(j)=[ADMIS{j}, -k]; posH(k)=length(ADMIS{j}); posT(k)=0; end%if end%for