clear all N=5; % Number of nodes k=2; % Number of edges per node in initial regular graph % Calculate Regular Graph Measures M=zeros(N,N); for m=1:(k/2) M=M+diag(ones(N-m,1),m)+diag(ones(m,1),(N-m)); end d=zeros(N,N); for n=1:N for r=1:N d(n,r)=graphshortestpath(sparse(M),n,r); end end d(d==Inf)=NaN; for q=1:N geodesics(q)=max(d(q,:)); end LRegular=mean(geodesics); % Calculate Random Graph Measures for p=1:45 G=M; for u=1:20 for s=1:N-1 for t=s+1:N if G(s,t)>0 a=unifSample([0 1],[(1-(0.02*p)) (0.02*p)]); G(s,t)=G(s,t)-a; if a==1 c=ceil((N-s)*rand); G(s,s+c)=G(s,s+c)+1; end end end end d=zeros(N,N); for n=1:N for r=1:N d(n,r)=graphshortestpath(sparse(G),n,r); end end d(d==Inf)=NaN; for q=1:N geodesicsR(q)=max(d(q,:)); end MeanOfGeodesicsR(u)=mean(geodesicsR); end LRandom(p)=mean(MeanOfGeodesicsR); Ratio(p)=LRandom(p)/LRegular; end plot(0.01.*[1:2:90],Ratio,'r.') axis([0 1 0 4]) hold on % Calculate Random Graph Measures for p=1:45 G=M; for u=1:100 for s=1:N-1 for t=s+1:N if G(s,t)>0 a=unifSample([0 1],[(1-(0.02*p)) (0.02*p)]); G(s,t)=G(s,t)-a; if a==1 c=ceil((N-s)*rand); G(s,s+c)=G(s,s+c)+1; end end end end d=zeros(N,N); for n=1:N for r=1:N d(n,r)=graphshortestpath(sparse(G),n,r); end end d(d==Inf)=NaN; for q=1:N geodesicsR(q)=max(d(q,:)); end MeanOfGeodesicsR(u)=mean(geodesicsR); end LRandom(p)=mean(MeanOfGeodesicsR); Ratio(p)=LRandom(p)/LRegular; end plot(0.01.*[1:2:90],Ratio,'r') axis([0 1 0 4]) hold on clear all N=9; % Number of nodes k=6; % Number of edges per node in initial regular graph % Calculate Regular Graph Measures M=zeros(N,N); for m=1:(k/2) M=M+diag(ones(N-m,1),m)+diag(ones(m,1),(N-m)); end d=zeros(N,N); for n=1:N for r=1:N d(n,r)=graphshortestpath(sparse(M),n,r); end end d(d==Inf)=NaN; for q=1:N geodesics(q)=max(d(q,:)); end LRegular=mean(geodesics); % Calculate Random Graph Measures for p=1:45 G=M; for u=1:20 for s=1:N-1 for t=s+1:N if G(s,t)>0 a=unifSample([0 1],[(1-(0.02*p)) (0.02*p)]); G(s,t)=G(s,t)-a; if a==1 c=ceil((N-s)*rand); G(s,s+c)=G(s,s+c)+1; end end end end d=zeros(N,N); for n=1:N for r=1:N d(n,r)=graphshortestpath(sparse(G),n,r); end end d(d==Inf)=NaN; for q=1:N geodesicsR(q)=max(d(q,:)); end MeanOfGeodesicsR(u)=mean(geodesicsR); end LRandom(p)=mean(MeanOfGeodesicsR); Ratio(p)=LRandom(p)/LRegular; end plot(0.01.*[1:2:90],Ratio,'b.') axis([0 1 0 4]) hold on % Calculate Random Graph Measures for p=1:45 G=M; for u=1:100 for s=1:N-1 for t=s+1:N if G(s,t)>0 a=unifSample([0 1],[(1-(0.02*p)) (0.02*p)]); G(s,t)=G(s,t)-a; if a==1 c=ceil((N-s)*rand); G(s,s+c)=G(s,s+c)+1; end end end end d=zeros(N,N); for n=1:N for r=1:N d(n,r)=graphshortestpath(sparse(G),n,r); end end d(d==Inf)=NaN; for q=1:N geodesicsR(q)=max(d(q,:)); end MeanOfGeodesicsR(u)=mean(geodesicsR); end LRandom(p)=mean(MeanOfGeodesicsR); Ratio(p)=LRandom(p)/LRegular; end plot(0.01.*[1:2:90],Ratio,'b') axis([0 1 0 4]) %view(biograph(M,[1:N],'ShowArrows','off','EdgeType','straight','LayoutType','equilibrium')) %view(biograph(G,[1:N],'ShowArrows','off','EdgeType','straight','LayoutType','equilibrium')) %view(biograph(M,[1:N],'ShowArrows','off','EdgeType','straight','LayoutType','equilibrium')) %view(biograph(G,[1:N],'ShowArrows','off','EdgeType','straight','LayoutType','equilibrium'))