Files
@ ef14718be3e4
Branch filter:
Location: AENC/switchchain/triangle_gcm_initial_analysis.m - annotation
ef14718be3e4
4.2 KiB
application/vnd.wolfram.mathematica.package
Update CCM time evol 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 114 115 116 117 118 119 120 121 | 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]
|