Files @ ef14718be3e4
Branch filter:

Location: AENC/switchchain/triangle_gcm_initial_analysis.m - annotation

ef14718be3e4 4.2 KiB application/vnd.wolfram.mathematica.package Show Source Show as Raw Download as Raw
Tom Bannink
Update CCM time evol plots
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
2e3f21cc591d
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
2e3f21cc591d
2e3f21cc591d
9c4226491043
9c4226491043
b9db6f3e92be
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
2e3f21cc591d
9c4226491043
b9db6f3e92be
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
9c4226491043
b9db6f3e92be
9c4226491043
9c4226491043
2e3f21cc591d
9c4226491043
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
9c4226491043
9c4226491043
b9db6f3e92be
9c4226491043
9c4226491043
9c4226491043
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
2e3f21cc591d
b9db6f3e92be
b9db6f3e92be
b9db6f3e92be
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
b9db6f3e92be
9c4226491043
b9db6f3e92be
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
2e3f21cc591d
(* ::Package:: *)

Needs["ErrorBarPlots`"]


(* ::Section:: *)
(*Data import*)


gsraw=Import[NotebookDirectory[]<>"data/graphdata_ccm_initialtris.m"];
(* gsraw=SortBy[gsraw,{#[[1,1]]&,#[[1,2]]&}]; (* Sort by n and then by tau. The {} forces a *stable* sort because otherwise Mathematica sorts also on triangle count and other things. *) *)


gdata=GatherBy[gsraw,{#[[1,2]]&,#[[1,1]]&}];
(* Data format: *)
(* gdata[[ tau index, n index, run index , datatype index ]] *)
(* datatype index:
1: {n,tau}
2: avgtriangles when mixed
3: {GCM1 starting triangles average, GCM1 number of successes} <-- CCMu: get new highest degree vertex every time
4: {GCM2 starting triangles average, GCM2 number of successes} <-- CCMb: finish vertex completely
*)
nlabels=Map["n = "<>ToString[#]&,gdata[[1,All,1,1,1]]];
taulabels=Map["\[Tau] = "<>ToString[#]&,gdata[[All,1,1,1,2]]];


(* ::Section:: *)
(*Greedy configuration model*)


(* ::Subsection:: *)
(*Distribution of initial #triangles for GCM1,GCM2,EG compared to average #triangles.*)


 (* Consider all runs *)
getIt[x_,avg_]:=If[x[[2]]>=5, x[[1]]/avg,0]
getAverage[run_]:=Module[{avg},
    avg=run[[2]];
    If[avg>0,
    { getIt[run[[3]],avg], getIt[run[[4]],avg] }
    , {3,3}]
]
getTotalStats[runs_]:=Transpose[Map[getAverage,runs]];
totalStats=Map[getTotalStats,gdata,{2}];


(* Yellow: GCM1 (take new highest everytime *)
(* Blue: GCM2 (finish highest first, more similar to EG) *)
histogramsTotal=Map[Histogram[#,{0.05},PlotRange->{{-0.5,2},Automatic},ImageSize->300,AxesOrigin->{0,0}]&,totalStats,{2}];


TableForm[histogramsTotal,TableHeadings->{taulabels,nlabels}]


(* ::Subsubsection:: *)
(*Exporting plots*)


makeHistogram[datasets_,n_,tau_]:=Histogram[datasets,{0.05},"Probability",
PlotRange->{{0,1},{0,0.5}},
ImageSize->300,AxesOrigin->{0,0},
Frame->True,
FrameLabel->{"fraction of average #triangles at CCM start","frequency"},
(*LabelingFunction->(Placed[NumberForm[#,{2,3}],Above]&),*)
(*LabelingFunction\[Rule](Placed[If[#2[[2]]\[Equal]1,NumberForm[#1,{2,3}],""],Above]&),*)
PlotLabel->n<>", "<>tau];
histogramsTotal=MapIndexed[makeHistogram[#1,nlabels[[#2[[2]]]],taulabels[[#2[[1]]]]]&,totalStats,{2}];


tauIndices={1,5,9};
nIndices={3};
(* TableForm[histogramsTotal[[tauIndices,nIndices]],TableHeadings->{taulabels[[tauIndices]],nlabels[[nIndices]]}] *)
plotgrid1=GraphicsGrid[histogramsTotal[[tauIndices,nIndices]]]


Export[NotebookDirectory[]<>"plots/ccm_initialtris.pdf",plotgrid1]


(* ::Subsection:: *)
(*GCM1 vs GCM2 success rates*)


successrates=Map[{#[[3,2]]/100,#[[4,2]]/100}&,gdata,{3}];
successrates=Map[Transpose,successrates,{2}];
successratesDelta=Map[#[[3,2]]-#[[4,2]]&,gdata,{3}];
successratesAvg=Map[{Mean[#[[1]]],Mean[#[[2]]]}&,successrates,{2}];

rateHistograms=Map[Histogram[#,{0.1},"Probability",PlotRange->{{0,1},Automatic}]&,successrates,{2}];
rateDeltaHistograms=Map[Histogram[#,{10},"Probability",PlotRange->{{-100,100},Automatic}]&,successratesDelta,{2}];


TableForm[rateHistograms,TableHeadings->{taulabels,nlabels}]
TableForm[rateDeltaHistograms,TableHeadings->{taulabels,nlabels}]
(*TableForm[Transpose[rateHistograms],TableHeadings->{nlabels,taulabels}]*)


(* For export *)
makeHistogram2[datasets_,label_]:=Histogram[datasets,{0.1},"Probability",
PlotRange->{{0,1},{0,1}},
ImageSize->300,AxesOrigin->{0,0},
Frame->True,
FrameLabel->{"successrate of CCM construction","frequency"},
ChartLegends->Placed[{"CCMu   avg = "<>ToString[NumberForm[N[Mean[datasets[[1]]]],2]],"CCMb   avg = "<>ToString[NumberForm[N[Mean[datasets[[2]]]],2]]},Center],(*LabelingFunction->(Placed[NumberForm[#,{2,3}],Above]&),*)
(*LabelingFunction\[Rule](Placed[If[#2[[2]]\[Equal]1,NumberForm[#1,{2,3}],""],Above]&),*)
PlotLabel->label];

plot1=makeHistogram2[successrates[[1,1]],"n = 1000, \[Tau] = 2.1"]
plot2=makeHistogram2[successrates[[5,1]],"n = 1000, \[Tau] = 2.5"]
plot3=makeHistogram2[successrates[[9,1]],"n = 1000, \[Tau] = 2.9"]
(* columnplot1=GraphicsColumn[{plot1,plot2,plot3}] *)


Export[NotebookDirectory[]<>"plots/ccm_construction_successrate.pdf",columnplot1]


Export[NotebookDirectory[]<>"plots/ccm_construction_successrate1.pdf",plot1]
Export[NotebookDirectory[]<>"plots/ccm_construction_successrate5.pdf",plot2]
Export[NotebookDirectory[]<>"plots/ccm_construction_successrate9.pdf",plot3]