Files
@ b9db6f3e92be
Branch filter:
Location: AENC/switchchain/triangle_gcm_initial_analysis.m - annotation
b9db6f3e92be
3.7 KiB
application/vnd.wolfram.mathematica.package
Add CCM plots
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 b9db6f3e92be 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 b9db6f3e92be 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 9c4226491043 b9db6f3e92be 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 9c4226491043 b9db6f3e92be 9c4226491043 9c4226491043 9c4226491043 b9db6f3e92be b9db6f3e92be b9db6f3e92be 9c4226491043 9c4226491043 b9db6f3e92be 9c4226491043 9c4226491043 9c4226491043 b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be b9db6f3e92be 9c4226491043 b9db6f3e92be | (* ::Package:: *)
Needs["ErrorBarPlots`"]
(* ::Section:: *)
(*Data import*)
gsraw=Import[NotebookDirectory[]<>"data/graphdata_initialtris3.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 triangle counts summed, GCM1 number of successes}
4: {GCM2 starting triangle counts summed, GCM2 number of successes}
*)
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]]/x[[2]]/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*)
(* gdata[[ tau index, n index, run index , {ntau, #tris, ds, greedyTriangles} ]] *)
successrates=Map[{#[[3,2]]/100,#[[4,2]]/100}&,gdata,{3}];
successrates=Map[Transpose,successrates,{2}];
successratesDelta=Map[#[[3,2]]-#[[4,2]]&,gdata,{3}];
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"},
(*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,3]],"n = 1000, \[Tau] = 2.1"];
plot2=makeHistogram2[successrates[[5,3]],"n = 1000, \[Tau] = 2.5"];
plot3=makeHistogram2[successrates[[9,3]],"n = 1000, \[Tau] = 2.9"];
columnplot1=GraphicsColumn[{plot1,plot2,plot3}]
Export[NotebookDirectory[]<>"plots/ccm_construction_successrate.pdf",columnplot1]
|