function [M_PARAM_SPACE,PARAM_SPACE] = PAPER1_PAREMETER_SPACE_CONECSTREGTHvsDATASIZE(ADJ0) %23-09-2014 esta funcion es creada para formar el parameter space para el %paper para analizar connection stregth vs data size rr=0; rrr=0; for i=0.01:0.0007:0.15 i r=0; [CLM]=ANY_TOPOLOGY_LOGISTIC_MAPS_CREATION_2(100001,i*ADJ0); rr=rr+1; for j=1000:250:50000 rrr=rrr+1; inp=sprintf('Strength %s, Size %s',num2str(i),int2str(j)); disp(inp); r=r+1; data=CLM(end-j:end,:); [a,b]=PAPER1_Loop_Comparison_reconstruction_DIFF_LENGTH(data,ADJ0); if a==1 PARAM_SPACE(rrr,:)=[rrr i j 1]; M_PARAM_SPACE(rr,r)=1; else PARAM_SPACE(rrr,:)=[rrr i j b]; M_PARAM_SPACE(rr,r)=b; end end end imagesc(PARAM_SPACE) end function [signo,cero_C]=PAPER1_Loop_Comparison_reconstruction_DIFF_LENGTH(DATA0,ADJ) %23-09-2014 codigo para el primer Paper %15-07-2013 version 4 not calculates DMIR because is very time demanding %15-07-2013 code running for partial reconstructions. %la funcion reconstruye la network para los 5 metodos siguientes %{ 1_ MI 2_ MIR_cumulative 3_ MIR_Good partition 4_ MCIR_cumulative 5_ MCIR_Good partition %} %% PATHS %path_code ='/home/s11ca2/Dropbox/Chris-Ezequiel/22-10-2013_codes'; %path_results ='/home/s11ca2/Dropbox/Chris-Ezequiel/22-10-2013_codes/RESULTS/MIR_PLATO/'; %% PATH EZE path_code ='/home/eze/Dropbox/Chris-Ezequiel/22-10-2013_codes'; path_results ='/home/eze/Dropbox/Chris-Ezequiel/22-10-2013_codes/RESULTS/PAPER1/'; %% GRAPHIC = 0; data_length=length(DATA0); clear data DATA=DATA0; M = size(DATA,1); N = size(DATA,2); loop_cero=zeros(5,1); metodos =1% how many method we have signo=zeros(metodos,1); metodo{4}='MIR AVERAGE ER'; metodo{5}='MIR ER-PLAT'; metodo{1}='MIR LYAP-PLATO'; metodo{2}='MIR CUMULATIVE LYAP'; metodo{3}='MI'; % metodo{6}='TOP_ENT AVERAGE'; % metodo{7}='TOP_ENT N-Markov'; for i=1:metodos if i==1 % str = sprintf('Method %s Running.', metodo{i}); % disp(str); %[ADJ_IP,PLOT_INFO_C]=PAPER1_DeMATRIX_QINF_MIR_Average(DATA0,4,20); %[PLOT_INFO_C,ADJ_IP]=PAER1_De_MATRIX_MIR_COMPUTATION_SHORT_PATH(DATA0,4,20); %% --------------NEW 15/10/2015 rr=0; for I=1:size(DATA0,2)-1 I for J=I+1:size(DATA0,2) rr=rr+1; int=[2 4 8 16 32]; r=0; for i=int r=r+1; %[PLOT_INFO_C,ADJ_IP]=PAPER1_De_MATRIX_MIR_COMPUTATION_SHORT_PATH(DATA0,4,20); [Is,CORD] = MI_from_DIFF_PARATITIONS([DATA0(:,I) DATA0(:,J)],i,i); [~,T3]=Transitive_matrix_row_SPACE_FROM_COORDS(CORD(:,4)); TT(r,:)=[i r Is T3]; end ADJ_IP(I,J)=sum(abs(diff(TT(:,3))))/TT(end,4); PLOT_INFO_C(rr,:)=[I J sum(abs(diff(TT(:,3))))/TT(end,4)]; end end PLOT_INFO_C(:,3)=(PLOT_INFO_C(:,3)-min(PLOT_INFO_C(:,3)))/(max(PLOT_INFO_C(:,3))-min(PLOT_INFO_C(:,3))); l=ADJ_IP>0.1e-100; ADJ_IP=(ADJ_IP-min(ADJ_IP(l)))/(max(ADJ_IP(:))-min(ADJ_IP(l))); l=ADJ_IP<0; ADJ_IP(l)=0; i=1 %% --------------FIN NEW 15/10/2015 %{ cd(path_results) dlmwrite('adj_IP_PLATAU.txt',ADJ_IP); dlmwrite('PLOT_INFO_PLATAU.txt',PLOT_INFO_C); cd(path_code) %} [cero_C,V_Cero_C,signo1] = PAPER1_Comparison_reconstruction(ADJ_IP,ADJ); signo(i)=signo1; loop_cero(i)=cero_C; T_PLOT{i}=PLOT_INFO_C; T_cero(i)=cero_C; T_V_Cero{i}=V_Cero_C; if signo(i)>0 txt=sprintf('Method %s -- Recons Length %s \n',metodo{i},num2str(cero_C)); else txt=sprintf('Method %s -- Recons Porcentage %s \n',metodo{i},num2str(-1*cero_C)); loop_cero(i)=-1*loop_cero(i); end disp(txt); end end C_text_metodos=metodo; if GRAPHIC==1 figure for J=1:metodos a=T_PLOT; b=T_cero; c=T_V_Cero; d=signo; bar(a{J},'g'); hold on %------------Shadow x = linspace(0, 1+N*(N-1)/2); % 100 points between intersections yy1 =c{J}(1)*ones(1,100); %lower function yy2 =c{J}(end)*ones(1,100); % upper function x = [x,x(end:-1:1)]; % repeat x values yy = [yy1,yy2]; % vector of upper & lower boundaries if d(J)>0 f=fill(x,yy,'r'); % fill area defined by x & yy in blue txt={C_text_metodos{J},'Recons Length=',num2str(b(J))}; else f=fill(x,yy,'y'); % fill area defined by x & yy in blue txt={C_text_metodos{J},'Recons Porcentage',num2str(-1*b(J))}; end alpha(f,b(J)); %____________End Shadow set(gca,'XLim',[0 1+N*(N-1)/2]) hold off end end end function [ceroF,V_Cero,signo] = PAPER1_Comparison_reconstruction(adj_IP,adj,int ) %15-07-2013 porcentage added to analize the non-total reconstruction M=length(adj); adj=triu(adj); if size(adj_IP,1)==M-1 adj(end,:)=[]; end l0=adj_IP==0; if nargin<3 int=0.01; end r=0; rr=0; for tr=int:int:max(adj_IP(~l0)) l_adj_IP=adj_IP>=tr; diff=abs(sum(sum(abs(adj-l_adj_IP)))); if diff==0 r=r+1; cero{1}(r)=tr; else rr=rr+1; diff_negative=(adj-l_adj_IP); lpos1=diff_negative>0; lneg1=diff_negative<0; lneg{rr}=sum(lneg1(:)); lpos{rr}=sum(lpos1(:)); cero{2}(rr,:)=[tr 1-diff/sum(sum(adj)) rr]; if r~=0 end end end if isempty(cero{1}) max_cero2=max(cero{2}(:,2)); lmax=cero{2}(:,2)==max_cero2; V_Cero=cero{2}(lmax,1); if max_cero2<0.00001 max_cero2=0; ceroF=max_cero2; else ceroF=max_cero2; end signo=-1; else V_Cero=cero{1}; ceroF=cero{1}(end)-cero{1}(1); signo=1; end end