% Átlagos legrövidebb út és csomósodási együttható (clustering coefficient) meghatározó program
%
%% Paraméterek
n = 100;

% WS
nv = 200; % number of vertecies
k = 5; % initial degree

%% Számolás
p=linspace(0,1,n);
%p = logspace(-4, 0, n);

pl = zeros(1, n);
c = zeros(1, n);

G = RegularNetwork(nv, k);

%átlagos legrövidebb út meghatározása: Johnson algoritmus
utak=graphallshortestpaths(sparse(G.Adj));
pl_original=sum(sum(utak(~isinf(utak))))/(G.nv*(G.nv-1));
c_original = mean(ClusterCoefficient(G)); %clustering coefficiens meghatározása

for i = 1:n
    WS = WSmodel(G, p(i));
    
    %átlagos legrövidebb út meghatározása: Johnson algoritmus
    utak=graphallshortestpaths(sparse(WS.Adj));
    pl(i)= sum(sum(utak(~isinf(utak))))/(WS.nv*(WS.nv-1));
    
    c(i) = mean(ClusterCoefficient(WS)); %clustering coefficiens meghatározása
    
    disp([num2str(i) ' done']); % státuszjezõ
end


%% Megjelenítés
figure;
plot(p, c./c_original, 'b');
%semilogx(p, c./c_original, 'b');
hold on;
plot(p, pl./pl_original, 'r');
%semilogx(p, pl./pl_original, 'r');
xlabel('élátmenet valószínûsége ');
legend('clustering coeff.', 'average path length');