aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation
diff options
context:
space:
mode:
Diffstat (limited to 'Metrics/Metrics-Calculation')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend2
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend27
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend95
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend2
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.xtend2
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/Node Activity.jpgbin0 -> 456785 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/mpc.jpgbin0 -> 417210 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/out_degree.jpgbin0 -> 334113 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/Node Activity.jpgbin491184 -> 485539 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/mpc.jpgbin478870 -> 458414 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/out_degree.jpgbin403591 -> 399413 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/Node Activity.jpgbin0 -> 450131 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/mpc.jpgbin0 -> 492440 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/out_degree.jpgbin0 -> 427143 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/Node Activity.jpgbin0 -> 387627 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/mpc.jpgbin0 -> 439155 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/out_degree.jpgbin0 -> 368624 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/mpc.jpgbin393999 -> 363202 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/node activity.jpgbin373785 -> 367839 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/out degree.jpgbin271040 -> 284983 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/Node Activity.jpgbin209185 -> 208107 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/mpc.jpgbin159590 -> 157479 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/out_degree.jpgbin200160 -> 199042 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/mpc.jpgbin0 -> 332516 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/node activity.jpgbin0 -> 316516 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/out degree.jpgbin0 -> 266138 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/MPC.jpgbin513832 -> 509668 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/node activity.jpgbin513922 -> 507236 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/out degree.jpgbin506046 -> 500415 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/Node Activity.jpgbin0 -> 432110 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/mpc.jpgbin0 -> 390522 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/out_degree.jpgbin0 -> 332996 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/MPC.jpgbin581498 -> 581421 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/node activity.jpgbin566190 -> 558356 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/out degree.jpgbin534577 -> 534429 bytes
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/metrics_distance_with_selector.ipynb775
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb80
-rw-r--r--Metrics/Metrics-Calculation/metrics_plot/utils/constants.py6
38 files changed, 885 insertions, 104 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
index cf871ead..1745bc35 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
@@ -35,7 +35,7 @@ class Main {
35 35
36 //human input has different package declaration 36 //human input has different package declaration
37// reader = new GraphReader(Yakindumm2PackageImpl.eINSTANCE); 37// reader = new GraphReader(Yakindumm2PackageImpl.eINSTANCE);
38 val human = new RWInformation("inputs/Random/", "outputs/", 1); 38 val human = new RWInformation("inputs/Fake_Random_Random/", "outputs/", 1);
39 calculateAllModels(human.inputFolder, human.outputFolder,human.numRuns, reader); 39 calculateAllModels(human.inputFolder, human.outputFolder,human.numRuns, reader);
40 40
41 41
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend
index cdd06027..71fa5fed 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend
@@ -1,5 +1,6 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app 1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app
2 2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance 4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph 5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter 6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter
@@ -17,13 +18,14 @@ import org.eclipse.emf.ecore.util.EcoreUtil
17import org.eclipse.viatra.dse.api.Solution 18import org.eclipse.viatra.dse.api.Solution
18 19
19class PartialInterpretationMetric { 20class PartialInterpretationMetric {
20 var static state = 0;
21 var static KSDistance ks; 21 var static KSDistance ks;
22 var static JSDistance js;
22 23
23 def static void initPaths(){ 24 def static void initPaths(){
24 new File("debug/metric/").mkdir(); 25 new File("debug/metric/").mkdir();
25 new File("debug/metric/trajectories/").mkdir(); 26 new File("debug/metric/trajectories/").mkdir();
26 ks = new KSDistance(Domain.Yakinduum); 27 ks = new KSDistance(Domain.Yakinduum);
28 js = new JSDistance(Domain.Yakinduum);
27 } 29 }
28 30
29 def static MetricDistanceGroup calculateMetricDistance(PartialInterpretation partial){ 31 def static MetricDistanceGroup calculateMetricDistance(PartialInterpretation partial){
@@ -35,6 +37,22 @@ class PartialInterpretationMetric {
35 val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); 37 val metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
36 var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); 38 var metricSamples = metricCalculator.evaluateAllMetricsToSamples();
37 39
40 var mpc = js.mpcDistance(metricSamples.mpcSamples);
41 var na = js.naDistance(metricSamples.naSamples);
42 var outDegree = js.outDegreeDistance(metricSamples.outDegreeSamples);
43
44 return new MetricDistanceGroup(mpc, na, outDegree);
45 }
46
47 def static MetricDistanceGroup calculateMetricDistanceKS(PartialInterpretation partial){
48 val metrics = new ArrayList<Metric>();
49 metrics.add(new OutDegreeMetric());
50 metrics.add(new NodeActivityMetric());
51 metrics.add(new MultiplexParticipationCoefficientMetric());
52
53 val metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
54 var metricSamples = metricCalculator.evaluateAllMetricsToSamples();
55
38 var mpc = ks.mpcDistance(metricSamples.mpcSamples); 56 var mpc = ks.mpcDistance(metricSamples.mpcSamples);
39 var na = ks.naDistance(metricSamples.naSamples); 57 var na = ks.naDistance(metricSamples.naSamples);
40 var outDegree = ks.outDegreeDistance(metricSamples.outDegreeSamples); 58 var outDegree = ks.outDegreeDistance(metricSamples.outDegreeSamples);
@@ -52,7 +70,6 @@ class PartialInterpretationMetric {
52 //make dir since the folder can be none existing 70 //make dir since the folder can be none existing
53 new File(path).mkdir(); 71 new File(path).mkdir();
54 val filename = path + "/state_"+currentStateId+"-"+counter+".csv"; 72 val filename = path + "/state_"+currentStateId+"-"+counter+".csv";
55 state++;
56 val metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId); 73 val metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId);
57 74
58 CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename); 75 CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename);
@@ -60,20 +77,22 @@ class PartialInterpretationMetric {
60 77
61 def static void outputTrajectories(PartialInterpretation empty, List<Solution> solutions){ 78 def static void outputTrajectories(PartialInterpretation empty, List<Solution> solutions){
62 for(solution : solutions){ 79 for(solution : solutions){
80
63 //need to copy the empty solution because the transition directly worked on the graph 81 //need to copy the empty solution because the transition directly worked on the graph
64 val emptySolutionCopy = EcoreUtil.copy(empty) 82 val emptySolutionCopy = EcoreUtil.copy(empty)
65 val trajectory = solution.shortestTrajectory; 83 val trajectory = solution.shortestTrajectory;
66 trajectory.modelWithEditingDomain = emptySolutionCopy 84 trajectory.model = emptySolutionCopy
67 85
68 // state codes that will record the trajectory 86 // state codes that will record the trajectory
69 val stateCodes = newArrayList() 87 val stateCodes = newArrayList()
70
71 var counter = 0 88 var counter = 0
89
72 //transform and record the state codes for each state 90 //transform and record the state codes for each state
73 while(trajectory.doNextTransformation){ 91 while(trajectory.doNextTransformation){
74 //println(trajectory.stateCoder.createStateCode) 92 //println(trajectory.stateCoder.createStateCode)
75 val stateId = trajectory.stateCoder.createStateCode.toString 93 val stateId = trajectory.stateCoder.createStateCode.toString
76 val interpretation = trajectory.getModel(); 94 val interpretation = trajectory.getModel();
95 println(stateId)
77 //calculate metrics of current state 96 //calculate metrics of current state
78 calculateMetric(interpretation as PartialInterpretation, "debug/metric/output", stateId, counter) 97 calculateMetric(interpretation as PartialInterpretation, "debug/metric/output", stateId, counter)
79 stateCodes.add(stateId) 98 stateCodes.add(stateId)
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend
new file mode 100644
index 00000000..ced9eadb
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.xtend
@@ -0,0 +1,95 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader
5import com.google.common.collect.Sets
6import java.text.DecimalFormat
7import java.util.HashMap
8import java.util.List
9
10class JSDistance {
11 var HashMap<String, Double> mpcPMF;
12 var HashMap<String, Double> naPMF;
13 var HashMap<String, Double> outDegreePMF;
14 var DecimalFormat formatter;
15
16 new(Domain d){
17 var metrics = RepMetricsReader.read(d);
18 var mpcSamples = metrics.mpcSamples;
19 var naSamples = metrics.naSamples.stream.mapToDouble([it]).toArray();
20 var outDegreeSamples = metrics.outDegreeSamples.stream.mapToDouble([it]).toArray();
21
22 //needs to format the number to string avoid precision issue
23 formatter = new DecimalFormat("#0.00000");
24
25 mpcPMF = pmfFromSamples(mpcSamples, formatter);
26 naPMF = pmfFromSamples(naSamples, formatter);
27 outDegreePMF = pmfFromSamples(outDegreeSamples, formatter);
28 }
29
30 def private pmfFromSamples(double[] samples, DecimalFormat formatter){
31 var length = samples.length;
32 var pmfMap = new HashMap<String, Double>();
33
34 for(sample : samples){
35 pmfMap.put(formatter.format(sample), pmfMap.getOrDefault(formatter.format(sample), 0.0) + 1.0 / length);
36 }
37
38 return pmfMap;
39 }
40
41 def private combinePMF(HashMap<String, Double> pmf1, HashMap<String, Double> pmf2){
42 var pmfMap = new HashMap<String, Double>();
43
44 var union = Sets.union(pmf1.keySet(), pmf2.keySet());
45
46 for(key : union){
47 // corresponding to M in JS distance
48 var value = 1.0/2 * (pmf1.getOrDefault(key, 0.0) + pmf2.getOrDefault(key, 0.0));
49 pmfMap.put(key, value);
50 }
51 return pmfMap;
52 }
53
54 def private jsDivergence(HashMap<String, Double> p, HashMap<String, Double> q){
55 val m = combinePMF(q, p);
56 var distance = 1.0/2 * klDivergence(p, m) + 1.0/2 * klDivergence(q, m);
57 return distance;
58 }
59
60 def klDivergence(HashMap<String, Double> p, HashMap<String, Double> q){
61 var distance = 0.0;
62 for(key : q.keySet()){
63 //need to convert log e to log 2
64 if(p.containsKey(key)){
65 distance -= p.get(key) * Math.log(q.get(key) / p.get(key)) / Math.log(2);
66 }
67 }
68 return distance;
69 }
70
71 def double mpcDistance(List<Double> samples){
72 // map list to array
73 var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter);
74 //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1
75 if(map.size < 2) return 1;
76 return jsDivergence(map, mpcPMF);
77 }
78
79 def double naDistance(List<Double> samples){
80 // map list to array
81 var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter);
82
83 //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1
84 if(map.size < 2) return 1;
85 return jsDivergence(map, naPMF);
86 }
87
88 def double outDegreeDistance(List<Double> samples){
89 // map list to array
90 var map = pmfFromSamples(samples.stream().mapToDouble([it]).toArray(), formatter);
91 //if the size of array is smaller than 2, ks distance cannot be performed, simply return 1
92 if(map.size < 2) return 1;
93 return jsDivergence(map, outDegreePMF);
94 }
95} \ No newline at end of file
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend
index 1fb21529..58e0a8a3 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend
@@ -1,9 +1,9 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance 1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance
2 2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain 3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader
4import java.util.List 5import java.util.List
5import org.apache.commons.math3.stat.inference.KolmogorovSmirnovTest 6import org.apache.commons.math3.stat.inference.KolmogorovSmirnovTest
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader
7 7
8class KSDistance { 8class KSDistance {
9 var static ksTester = new KolmogorovSmirnovTest(); 9 var static ksTester = new KolmogorovSmirnovTest();
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.xtend
index bed356e9..01e3940b 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.xtend
@@ -21,7 +21,7 @@ class CsvFileWriter {
21 output.append(datarow.get(i) + ','); 21 output.append(datarow.get(i) + ',');
22 } 22 }
23 23
24 if(datarow.size > 1){ 24 if(datarow.size >= 1){
25 output.append(datarow.get(datarow.size() - 1)); 25 output.append(datarow.get(datarow.size() - 1));
26 output.append('\n'); 26 output.append('\n');
27 } 27 }
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/Node Activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/Node Activity.jpg
new file mode 100644
index 00000000..6b987b3e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/Node Activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/mpc.jpg
new file mode 100644
index 00000000..ee8d5755
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/out_degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/out_degree.jpg
new file mode 100644
index 00000000..25e850fe
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_all/out_degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/Node Activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/Node Activity.jpg
index d2dbd970..8b3421b1 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/Node Activity.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/Node Activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/mpc.jpg
index 3ca2e0bc..d459f5c8 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/mpc.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/out_degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/out_degree.jpg
index 5b623374..fdaa28e6 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/out_degree.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_mpc/out_degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/Node Activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/Node Activity.jpg
new file mode 100644
index 00000000..08445457
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/Node Activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/mpc.jpg
new file mode 100644
index 00000000..74ab2449
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/out_degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/out_degree.jpg
new file mode 100644
index 00000000..61c4489e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_node_activity/out_degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/Node Activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/Node Activity.jpg
new file mode 100644
index 00000000..ccbca653
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/Node Activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/mpc.jpg
new file mode 100644
index 00000000..31965557
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/out_degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/out_degree.jpg
new file mode 100644
index 00000000..d4de5301
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/controled_viatra_with_out_degree/out_degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/mpc.jpg
index 7a744ea6..ee1d84dc 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/mpc.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/node activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/node activity.jpg
index dfcc973e..1a7e8bed 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/node activity.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/node activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/out degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/out degree.jpg
index b3f4f912..81d9b709 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/out degree.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf/out degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/Node Activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/Node Activity.jpg
index f0d09211..e26d6cf6 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/Node Activity.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/Node Activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/mpc.jpg
index 94b070d4..e1b9a1cf 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/mpc.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/out_degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/out_degree.jpg
index 8d0151fa..713ed4f4 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/out_degree.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_instantiator/out_degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/mpc.jpg
new file mode 100644
index 00000000..9c26be81
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/node activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/node activity.jpg
new file mode 100644
index 00000000..3cb75479
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/node activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/out degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/out degree.jpg
new file mode 100644
index 00000000..0a869df6
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/random_emf_normal/out degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/MPC.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/MPC.jpg
index b10d97e6..b6e86773 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/MPC.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/MPC.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/node activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/node activity.jpg
index e41c998b..486577a6 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/node activity.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/node activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/out degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/out degree.jpg
index d2776bc8..4f338049 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/out degree.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_constraints/out degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/Node Activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/Node Activity.jpg
new file mode 100644
index 00000000..c1dba220
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/Node Activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/mpc.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/mpc.jpg
new file mode 100644
index 00000000..f51449d0
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/mpc.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/out_degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/out_degree.jpg
new file mode 100644
index 00000000..dff91312
--- /dev/null
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_control_all_with_consistency/out_degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/MPC.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/MPC.jpg
index 19feb5e8..2dc66b35 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/MPC.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/MPC.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/node activity.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/node activity.jpg
index bc7a83fc..847bad62 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/node activity.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/node activity.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/out degree.jpg b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/out degree.jpg
index 13094840..90ff8006 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/out degree.jpg
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/output/viatra_no_constraints/out degree.jpg
Binary files differ
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/metrics_distance_with_selector.ipynb b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/metrics_distance_with_selector.ipynb
index 4c7fecb3..000822bf 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/metrics_distance_with_selector.ipynb
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/metrics_distance_with_selector.ipynb
@@ -16,7 +16,7 @@
16 }, 16 },
17 { 17 {
18 "cell_type": "code", 18 "cell_type": "code",
19 "execution_count": 2, 19 "execution_count": 1,
20 "metadata": {}, 20 "metadata": {},
21 "outputs": [], 21 "outputs": [],
22 "source": [ 22 "source": [
@@ -51,7 +51,7 @@
51 }, 51 },
52 { 52 {
53 "cell_type": "code", 53 "cell_type": "code",
54 "execution_count": 3, 54 "execution_count": 2,
55 "metadata": {}, 55 "metadata": {},
56 "outputs": [], 56 "outputs": [],
57 "source": [ 57 "source": [
@@ -81,7 +81,7 @@
81 }, 81 },
82 { 82 {
83 "cell_type": "code", 83 "cell_type": "code",
84 "execution_count": 4, 84 "execution_count": 3,
85 "metadata": {}, 85 "metadata": {},
86 "outputs": [], 86 "outputs": [],
87 "source": [ 87 "source": [
@@ -111,7 +111,7 @@
111 }, 111 },
112 { 112 {
113 "cell_type": "code", 113 "cell_type": "code",
114 "execution_count": 38, 114 "execution_count": 4,
115 "metadata": {}, 115 "metadata": {},
116 "outputs": [], 116 "outputs": [],
117 "source": [ 117 "source": [
@@ -144,7 +144,7 @@
144 }, 144 },
145 { 145 {
146 "cell_type": "code", 146 "cell_type": "code",
147 "execution_count": 6, 147 "execution_count": 5,
148 "metadata": {}, 148 "metadata": {},
149 "outputs": [], 149 "outputs": [],
150 "source": [ 150 "source": [
@@ -154,7 +154,7 @@
154 }, 154 },
155 { 155 {
156 "cell_type": "code", 156 "cell_type": "code",
157 "execution_count": 7, 157 "execution_count": 6,
158 "metadata": {}, 158 "metadata": {},
159 "outputs": [], 159 "outputs": [],
160 "source": [ 160 "source": [
@@ -168,7 +168,7 @@
168 }, 168 },
169 { 169 {
170 "cell_type": "code", 170 "cell_type": "code",
171 "execution_count": 8, 171 "execution_count": 7,
172 "metadata": {}, 172 "metadata": {},
173 "outputs": [], 173 "outputs": [],
174 "source": [ 174 "source": [
@@ -182,7 +182,7 @@
182 }, 182 },
183 { 183 {
184 "cell_type": "code", 184 "cell_type": "code",
185 "execution_count": 25, 185 "execution_count": 8,
186 "metadata": {}, 186 "metadata": {},
187 "outputs": [], 187 "outputs": [],
188 "source": [ 188 "source": [
@@ -198,7 +198,7 @@
198 }, 198 },
199 { 199 {
200 "cell_type": "code", 200 "cell_type": "code",
201 "execution_count": 43, 201 "execution_count": 9,
202 "metadata": {}, 202 "metadata": {},
203 "outputs": [], 203 "outputs": [],
204 "source": [ 204 "source": [
@@ -214,7 +214,7 @@
214 }, 214 },
215 { 215 {
216 "cell_type": "code", 216 "cell_type": "code",
217 "execution_count": 33, 217 "execution_count": 10,
218 "metadata": {}, 218 "metadata": {},
219 "outputs": [], 219 "outputs": [],
220 "source": [ 220 "source": [
@@ -248,7 +248,7 @@
248 }, 248 },
249 { 249 {
250 "cell_type": "code", 250 "cell_type": "code",
251 "execution_count": 42, 251 "execution_count": 11,
252 "metadata": {}, 252 "metadata": {},
253 "outputs": [], 253 "outputs": [],
254 "source": [ 254 "source": [
@@ -272,7 +272,7 @@
272 }, 272 },
273 { 273 {
274 "cell_type": "code", 274 "cell_type": "code",
275 "execution_count": 15, 275 "execution_count": 12,
276 "metadata": {}, 276 "metadata": {},
277 "outputs": [], 277 "outputs": [],
278 "source": [ 278 "source": [
@@ -283,7 +283,7 @@
283 }, 283 },
284 { 284 {
285 "cell_type": "code", 285 "cell_type": "code",
286 "execution_count": 46, 286 "execution_count": 13,
287 "metadata": {}, 287 "metadata": {},
288 "outputs": [], 288 "outputs": [],
289 "source": [ 289 "source": [
@@ -297,18 +297,18 @@
297 }, 297 },
298 { 298 {
299 "cell_type": "code", 299 "cell_type": "code",
300 "execution_count": 77, 300 "execution_count": 14,
301 "metadata": {}, 301 "metadata": {},
302 "outputs": [ 302 "outputs": [
303 { 303 {
304 "data": { 304 "data": {
305 "application/vnd.jupyter.widget-view+json": { 305 "application/vnd.jupyter.widget-view+json": {
306 "model_id": "9519be563fbc41c28921c77ef6481b17", 306 "model_id": "a8471e4dd66a47ecb6abb2371be43321",
307 "version_major": 2, 307 "version_major": 2,
308 "version_minor": 0 308 "version_minor": 0
309 }, 309 },
310 "text/plain": [ 310 "text/plain": [
311 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…" 311 "interactive(children=(SelectMultiple(description='Trajectory:', options={'../input/viatra_nocon_output/traject…"
312 ] 312 ]
313 }, 313 },
314 "metadata": {}, 314 "metadata": {},
@@ -320,7 +320,7 @@
320 "<function __main__.plot_out_degree(lines)>" 320 "<function __main__.plot_out_degree(lines)>"
321 ] 321 ]
322 }, 322 },
323 "execution_count": 77, 323 "execution_count": 14,
324 "metadata": {}, 324 "metadata": {},
325 "output_type": "execute_result" 325 "output_type": "execute_result"
326 } 326 }
@@ -333,18 +333,18 @@
333 }, 333 },
334 { 334 {
335 "cell_type": "code", 335 "cell_type": "code",
336 "execution_count": 78, 336 "execution_count": 15,
337 "metadata": {}, 337 "metadata": {},
338 "outputs": [ 338 "outputs": [
339 { 339 {
340 "data": { 340 "data": {
341 "application/vnd.jupyter.widget-view+json": { 341 "application/vnd.jupyter.widget-view+json": {
342 "model_id": "c896725e542c4bf8a1bc76ba66819b20", 342 "model_id": "ad6e466cc3fe44d393d2c82d48244d83",
343 "version_major": 2, 343 "version_major": 2,
344 "version_minor": 0 344 "version_minor": 0
345 }, 345 },
346 "text/plain": [ 346 "text/plain": [
347 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…" 347 "interactive(children=(SelectMultiple(description='Trajectory:', options={'../input/viatra_nocon_output/traject…"
348 ] 348 ]
349 }, 349 },
350 "metadata": {}, 350 "metadata": {},
@@ -356,7 +356,7 @@
356 "<function __main__.plot_out_na(lines)>" 356 "<function __main__.plot_out_na(lines)>"
357 ] 357 ]
358 }, 358 },
359 "execution_count": 78, 359 "execution_count": 15,
360 "metadata": {}, 360 "metadata": {},
361 "output_type": "execute_result" 361 "output_type": "execute_result"
362 } 362 }
@@ -369,18 +369,18 @@
369 }, 369 },
370 { 370 {
371 "cell_type": "code", 371 "cell_type": "code",
372 "execution_count": 79, 372 "execution_count": 16,
373 "metadata": {}, 373 "metadata": {},
374 "outputs": [ 374 "outputs": [
375 { 375 {
376 "data": { 376 "data": {
377 "application/vnd.jupyter.widget-view+json": { 377 "application/vnd.jupyter.widget-view+json": {
378 "model_id": "880410d675624545ab73977a463bb5c9", 378 "model_id": "d88ebc8e4062473a96ac35fe800028ef",
379 "version_major": 2, 379 "version_major": 2,
380 "version_minor": 0 380 "version_minor": 0
381 }, 381 },
382 "text/plain": [ 382 "text/plain": [
383 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…" 383 "interactive(children=(SelectMultiple(description='Trajectory:', options={'../input/viatra_nocon_output/traject…"
384 ] 384 ]
385 }, 385 },
386 "metadata": {}, 386 "metadata": {},
@@ -392,7 +392,7 @@
392 "<function __main__.plot_out_mpc(lines)>" 392 "<function __main__.plot_out_mpc(lines)>"
393 ] 393 ]
394 }, 394 },
395 "execution_count": 79, 395 "execution_count": 16,
396 "metadata": {}, 396 "metadata": {},
397 "output_type": "execute_result" 397 "output_type": "execute_result"
398 } 398 }
@@ -412,7 +412,7 @@
412 }, 412 },
413 { 413 {
414 "cell_type": "code", 414 "cell_type": "code",
415 "execution_count": 50, 415 "execution_count": 17,
416 "metadata": {}, 416 "metadata": {},
417 "outputs": [], 417 "outputs": [],
418 "source": [ 418 "source": [
@@ -427,13 +427,13 @@
427 }, 427 },
428 { 428 {
429 "cell_type": "code", 429 "cell_type": "code",
430 "execution_count": 51, 430 "execution_count": 18,
431 "metadata": {}, 431 "metadata": {},
432 "outputs": [ 432 "outputs": [
433 { 433 {
434 "data": { 434 "data": {
435 "application/vnd.jupyter.widget-view+json": { 435 "application/vnd.jupyter.widget-view+json": {
436 "model_id": "0d04d6db770a49f4a160ff55cc7131f6", 436 "model_id": "1eb2ba5848a048389bca8d804fc8340a",
437 "version_major": 2, 437 "version_major": 2,
438 "version_minor": 0 438 "version_minor": 0
439 }, 439 },
@@ -450,7 +450,7 @@
450 "<function __main__.plot_out_degree(lines)>" 450 "<function __main__.plot_out_degree(lines)>"
451 ] 451 ]
452 }, 452 },
453 "execution_count": 51, 453 "execution_count": 18,
454 "metadata": {}, 454 "metadata": {},
455 "output_type": "execute_result" 455 "output_type": "execute_result"
456 } 456 }
@@ -463,13 +463,13 @@
463 }, 463 },
464 { 464 {
465 "cell_type": "code", 465 "cell_type": "code",
466 "execution_count": 52, 466 "execution_count": 19,
467 "metadata": {}, 467 "metadata": {},
468 "outputs": [ 468 "outputs": [
469 { 469 {
470 "data": { 470 "data": {
471 "application/vnd.jupyter.widget-view+json": { 471 "application/vnd.jupyter.widget-view+json": {
472 "model_id": "96eebad1f6274d79ad377c8c54b44615", 472 "model_id": "6e5840f7a5ad4515bce9080088b644f2",
473 "version_major": 2, 473 "version_major": 2,
474 "version_minor": 0 474 "version_minor": 0
475 }, 475 },
@@ -486,7 +486,7 @@
486 "<function __main__.plot_na(lines)>" 486 "<function __main__.plot_na(lines)>"
487 ] 487 ]
488 }, 488 },
489 "execution_count": 52, 489 "execution_count": 19,
490 "metadata": {}, 490 "metadata": {},
491 "output_type": "execute_result" 491 "output_type": "execute_result"
492 } 492 }
@@ -499,13 +499,13 @@
499 }, 499 },
500 { 500 {
501 "cell_type": "code", 501 "cell_type": "code",
502 "execution_count": 53, 502 "execution_count": 20,
503 "metadata": {}, 503 "metadata": {},
504 "outputs": [ 504 "outputs": [
505 { 505 {
506 "data": { 506 "data": {
507 "application/vnd.jupyter.widget-view+json": { 507 "application/vnd.jupyter.widget-view+json": {
508 "model_id": "4fc2714a3cd3440daf5014bb4b942b9a", 508 "model_id": "9e30f267b092491ba1ffe8f83c5f68ce",
509 "version_major": 2, 509 "version_major": 2,
510 "version_minor": 0 510 "version_minor": 0
511 }, 511 },
@@ -522,7 +522,7 @@
522 "<function __main__.plot_mpc(lines)>" 522 "<function __main__.plot_mpc(lines)>"
523 ] 523 ]
524 }, 524 },
525 "execution_count": 53, 525 "execution_count": 20,
526 "metadata": {}, 526 "metadata": {},
527 "output_type": "execute_result" 527 "output_type": "execute_result"
528 } 528 }
@@ -542,7 +542,7 @@
542 }, 542 },
543 { 543 {
544 "cell_type": "code", 544 "cell_type": "code",
545 "execution_count": 59, 545 "execution_count": 21,
546 "metadata": {}, 546 "metadata": {},
547 "outputs": [], 547 "outputs": [],
548 "source": [ 548 "source": [
@@ -557,13 +557,13 @@
557 }, 557 },
558 { 558 {
559 "cell_type": "code", 559 "cell_type": "code",
560 "execution_count": 60, 560 "execution_count": 22,
561 "metadata": {}, 561 "metadata": {},
562 "outputs": [ 562 "outputs": [
563 { 563 {
564 "data": { 564 "data": {
565 "application/vnd.jupyter.widget-view+json": { 565 "application/vnd.jupyter.widget-view+json": {
566 "model_id": "4401931533b5497f864f146d7b4dcd3c", 566 "model_id": "cc1f64c92e814c32a81cd5ec5d4e50dc",
567 "version_major": 2, 567 "version_major": 2,
568 "version_minor": 0 568 "version_minor": 0
569 }, 569 },
@@ -580,7 +580,7 @@
580 "<function __main__.plot_out_degree(lines)>" 580 "<function __main__.plot_out_degree(lines)>"
581 ] 581 ]
582 }, 582 },
583 "execution_count": 60, 583 "execution_count": 22,
584 "metadata": {}, 584 "metadata": {},
585 "output_type": "execute_result" 585 "output_type": "execute_result"
586 } 586 }
@@ -593,13 +593,13 @@
593 }, 593 },
594 { 594 {
595 "cell_type": "code", 595 "cell_type": "code",
596 "execution_count": 61, 596 "execution_count": 23,
597 "metadata": {}, 597 "metadata": {},
598 "outputs": [ 598 "outputs": [
599 { 599 {
600 "data": { 600 "data": {
601 "application/vnd.jupyter.widget-view+json": { 601 "application/vnd.jupyter.widget-view+json": {
602 "model_id": "fb7bdedff841420bb8f817013f565020", 602 "model_id": "75021f4f68db4a809ce7c86c0d25ef1b",
603 "version_major": 2, 603 "version_major": 2,
604 "version_minor": 0 604 "version_minor": 0
605 }, 605 },
@@ -616,7 +616,7 @@
616 "<function __main__.plot_node_activity(lines)>" 616 "<function __main__.plot_node_activity(lines)>"
617 ] 617 ]
618 }, 618 },
619 "execution_count": 61, 619 "execution_count": 23,
620 "metadata": {}, 620 "metadata": {},
621 "output_type": "execute_result" 621 "output_type": "execute_result"
622 } 622 }
@@ -629,13 +629,13 @@
629 }, 629 },
630 { 630 {
631 "cell_type": "code", 631 "cell_type": "code",
632 "execution_count": 62, 632 "execution_count": 24,
633 "metadata": {}, 633 "metadata": {},
634 "outputs": [ 634 "outputs": [
635 { 635 {
636 "data": { 636 "data": {
637 "application/vnd.jupyter.widget-view+json": { 637 "application/vnd.jupyter.widget-view+json": {
638 "model_id": "6b0c349c4a3b4813825513f739ea30da", 638 "model_id": "86f5c376905a4759a7b44ad52804424d",
639 "version_major": 2, 639 "version_major": 2,
640 "version_minor": 0 640 "version_minor": 0
641 }, 641 },
@@ -652,7 +652,7 @@
652 "<function __main__.plot_mpc(lines)>" 652 "<function __main__.plot_mpc(lines)>"
653 ] 653 ]
654 }, 654 },
655 "execution_count": 62, 655 "execution_count": 24,
656 "metadata": {}, 656 "metadata": {},
657 "output_type": "execute_result" 657 "output_type": "execute_result"
658 } 658 }
@@ -672,7 +672,7 @@
672 }, 672 },
673 { 673 {
674 "cell_type": "code", 674 "cell_type": "code",
675 "execution_count": 67, 675 "execution_count": 25,
676 "metadata": {}, 676 "metadata": {},
677 "outputs": [], 677 "outputs": [],
678 "source": [ 678 "source": [
@@ -687,13 +687,13 @@
687 }, 687 },
688 { 688 {
689 "cell_type": "code", 689 "cell_type": "code",
690 "execution_count": 74, 690 "execution_count": 26,
691 "metadata": {}, 691 "metadata": {},
692 "outputs": [ 692 "outputs": [
693 { 693 {
694 "data": { 694 "data": {
695 "application/vnd.jupyter.widget-view+json": { 695 "application/vnd.jupyter.widget-view+json": {
696 "model_id": "b76901ba9d44433984032e0dc5679fa9", 696 "model_id": "57ba4d8443c145ad845fb862e3ef7519",
697 "version_major": 2, 697 "version_major": 2,
698 "version_minor": 0 698 "version_minor": 0
699 }, 699 },
@@ -710,7 +710,7 @@
710 "<function __main__.plot_out_degree(lines)>" 710 "<function __main__.plot_out_degree(lines)>"
711 ] 711 ]
712 }, 712 },
713 "execution_count": 74, 713 "execution_count": 26,
714 "metadata": {}, 714 "metadata": {},
715 "output_type": "execute_result" 715 "output_type": "execute_result"
716 } 716 }
@@ -723,13 +723,13 @@
723 }, 723 },
724 { 724 {
725 "cell_type": "code", 725 "cell_type": "code",
726 "execution_count": 75, 726 "execution_count": 27,
727 "metadata": {}, 727 "metadata": {},
728 "outputs": [ 728 "outputs": [
729 { 729 {
730 "data": { 730 "data": {
731 "application/vnd.jupyter.widget-view+json": { 731 "application/vnd.jupyter.widget-view+json": {
732 "model_id": "9e0d61e29b02467cb52618860a1bde7f", 732 "model_id": "c020ecb466c14f3ca1bfc0fd2fe03b7b",
733 "version_major": 2, 733 "version_major": 2,
734 "version_minor": 0 734 "version_minor": 0
735 }, 735 },
@@ -746,7 +746,7 @@
746 "<function __main__.plot_na(lines)>" 746 "<function __main__.plot_na(lines)>"
747 ] 747 ]
748 }, 748 },
749 "execution_count": 75, 749 "execution_count": 27,
750 "metadata": {}, 750 "metadata": {},
751 "output_type": "execute_result" 751 "output_type": "execute_result"
752 } 752 }
@@ -759,13 +759,13 @@
759 }, 759 },
760 { 760 {
761 "cell_type": "code", 761 "cell_type": "code",
762 "execution_count": 76, 762 "execution_count": 28,
763 "metadata": {}, 763 "metadata": {},
764 "outputs": [ 764 "outputs": [
765 { 765 {
766 "data": { 766 "data": {
767 "application/vnd.jupyter.widget-view+json": { 767 "application/vnd.jupyter.widget-view+json": {
768 "model_id": "70074805fee44a1aa5b9ccb3770b5c0c", 768 "model_id": "2165668057fd47ad92459e749ec68bad",
769 "version_major": 2, 769 "version_major": 2,
770 "version_minor": 0 770 "version_minor": 0
771 }, 771 },
@@ -782,7 +782,7 @@
782 "<function __main__.plot_mpc(lines)>" 782 "<function __main__.plot_mpc(lines)>"
783 ] 783 ]
784 }, 784 },
785 "execution_count": 76, 785 "execution_count": 28,
786 "metadata": {}, 786 "metadata": {},
787 "output_type": "execute_result" 787 "output_type": "execute_result"
788 } 788 }
@@ -802,7 +802,7 @@
802 }, 802 },
803 { 803 {
804 "cell_type": "code", 804 "cell_type": "code",
805 "execution_count": 80, 805 "execution_count": 29,
806 "metadata": {}, 806 "metadata": {},
807 "outputs": [], 807 "outputs": [],
808 "source": [ 808 "source": [
@@ -817,13 +817,13 @@
817 }, 817 },
818 { 818 {
819 "cell_type": "code", 819 "cell_type": "code",
820 "execution_count": 82, 820 "execution_count": 30,
821 "metadata": {}, 821 "metadata": {},
822 "outputs": [ 822 "outputs": [
823 { 823 {
824 "data": { 824 "data": {
825 "application/vnd.jupyter.widget-view+json": { 825 "application/vnd.jupyter.widget-view+json": {
826 "model_id": "912ba2fdfd7c46848065f174aa6177e0", 826 "model_id": "907d7824033b4dfe980c391db0da63eb",
827 "version_major": 2, 827 "version_major": 2,
828 "version_minor": 0 828 "version_minor": 0
829 }, 829 },
@@ -840,7 +840,7 @@
840 "<function __main__.plot_out_degree(lines)>" 840 "<function __main__.plot_out_degree(lines)>"
841 ] 841 ]
842 }, 842 },
843 "execution_count": 82, 843 "execution_count": 30,
844 "metadata": {}, 844 "metadata": {},
845 "output_type": "execute_result" 845 "output_type": "execute_result"
846 } 846 }
@@ -853,13 +853,13 @@
853 }, 853 },
854 { 854 {
855 "cell_type": "code", 855 "cell_type": "code",
856 "execution_count": 83, 856 "execution_count": 31,
857 "metadata": {}, 857 "metadata": {},
858 "outputs": [ 858 "outputs": [
859 { 859 {
860 "data": { 860 "data": {
861 "application/vnd.jupyter.widget-view+json": { 861 "application/vnd.jupyter.widget-view+json": {
862 "model_id": "0ba621dd0e7d4957aaff2cf209bba165", 862 "model_id": "08a32c21d0b64217a556715caa8db7b5",
863 "version_major": 2, 863 "version_major": 2,
864 "version_minor": 0 864 "version_minor": 0
865 }, 865 },
@@ -876,7 +876,7 @@
876 "<function __main__.plot_na(lines)>" 876 "<function __main__.plot_na(lines)>"
877 ] 877 ]
878 }, 878 },
879 "execution_count": 83, 879 "execution_count": 31,
880 "metadata": {}, 880 "metadata": {},
881 "output_type": "execute_result" 881 "output_type": "execute_result"
882 } 882 }
@@ -889,13 +889,13 @@
889 }, 889 },
890 { 890 {
891 "cell_type": "code", 891 "cell_type": "code",
892 "execution_count": 84, 892 "execution_count": 32,
893 "metadata": {}, 893 "metadata": {},
894 "outputs": [ 894 "outputs": [
895 { 895 {
896 "data": { 896 "data": {
897 "application/vnd.jupyter.widget-view+json": { 897 "application/vnd.jupyter.widget-view+json": {
898 "model_id": "d432bbae1c6f48c3acd1767f2e2b13c7", 898 "model_id": "9dad041ff05d46ce969cfacb07c2ba98",
899 "version_major": 2, 899 "version_major": 2,
900 "version_minor": 0 900 "version_minor": 0
901 }, 901 },
@@ -912,7 +912,7 @@
912 "<function __main__.plot_mpc(lines)>" 912 "<function __main__.plot_mpc(lines)>"
913 ] 913 ]
914 }, 914 },
915 "execution_count": 84, 915 "execution_count": 32,
916 "metadata": {}, 916 "metadata": {},
917 "output_type": "execute_result" 917 "output_type": "execute_result"
918 } 918 }
@@ -924,6 +924,651 @@
924 ] 924 ]
925 }, 925 },
926 { 926 {
927 "cell_type": "markdown",
928 "metadata": {},
929 "source": [
930 "## Controlled Viatra with Out Degree"
931 ]
932 },
933 {
934 "cell_type": "code",
935 "execution_count": 33,
936 "metadata": {},
937 "outputs": [],
938 "source": [
939 "con_viatra_stats = readStats('../input/controlled_viatra_out_degree/',10000)\n",
940 "con_viatra_dic = calDistanceDic(con_viatra_stats, human_rep)\n",
941 "\n",
942 "# trajectories and colors\n",
943 "trajectories = {}\n",
944 "w = createSelectionWidge(trajectories)\n",
945 "colors = createRandomColors(len(trajectories))"
946 ]
947 },
948 {
949 "cell_type": "code",
950 "execution_count": 34,
951 "metadata": {},
952 "outputs": [
953 {
954 "data": {
955 "application/vnd.jupyter.widget-view+json": {
956 "model_id": "cd77560284d9419daec57192a64b75ec",
957 "version_major": 2,
958 "version_minor": 0
959 },
960 "text/plain": [
961 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
962 ]
963 },
964 "metadata": {},
965 "output_type": "display_data"
966 },
967 {
968 "data": {
969 "text/plain": [
970 "<function __main__.plot_out_degree(lines)>"
971 ]
972 },
973 "execution_count": 34,
974 "metadata": {},
975 "output_type": "execute_result"
976 }
977 ],
978 "source": [
979 "def plot_out_degree(lines):\n",
980 " plot(con_viatra_dic, lines, 0, lambda a: a.out_d_distance, colors, 'out_degree', '../output/controled_viatra_with_out_degree/')\n",
981 "interact(plot_out_degree, lines=w)"
982 ]
983 },
984 {
985 "cell_type": "code",
986 "execution_count": 35,
987 "metadata": {},
988 "outputs": [
989 {
990 "data": {
991 "application/vnd.jupyter.widget-view+json": {
992 "model_id": "ab11afebf7674cebae8d7318c661cf3c",
993 "version_major": 2,
994 "version_minor": 0
995 },
996 "text/plain": [
997 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
998 ]
999 },
1000 "metadata": {},
1001 "output_type": "display_data"
1002 },
1003 {
1004 "data": {
1005 "text/plain": [
1006 "<function __main__.plot_na(lines)>"
1007 ]
1008 },
1009 "execution_count": 35,
1010 "metadata": {},
1011 "output_type": "execute_result"
1012 }
1013 ],
1014 "source": [
1015 "def plot_na(lines):\n",
1016 " plot(con_viatra_dic, lines, 0, lambda a: a.na_distance, colors, 'Node Activity', '../output/controled_viatra_with_out_degree/')\n",
1017 "interact(plot_na, lines=w)"
1018 ]
1019 },
1020 {
1021 "cell_type": "code",
1022 "execution_count": 36,
1023 "metadata": {
1024 "scrolled": false
1025 },
1026 "outputs": [
1027 {
1028 "data": {
1029 "application/vnd.jupyter.widget-view+json": {
1030 "model_id": "c20b42abcba646c18d7caa6eeb54c403",
1031 "version_major": 2,
1032 "version_minor": 0
1033 },
1034 "text/plain": [
1035 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1036 ]
1037 },
1038 "metadata": {},
1039 "output_type": "display_data"
1040 },
1041 {
1042 "data": {
1043 "text/plain": [
1044 "<function __main__.plot_mpc(lines)>"
1045 ]
1046 },
1047 "execution_count": 36,
1048 "metadata": {},
1049 "output_type": "execute_result"
1050 }
1051 ],
1052 "source": [
1053 "def plot_mpc(lines):\n",
1054 " plot(con_viatra_dic, lines, 0, lambda a: a.mpc_distance, colors, 'mpc', '../output/controled_viatra_with_out_degree/')\n",
1055 "interact(plot_mpc, lines=w)"
1056 ]
1057 },
1058 {
1059 "cell_type": "markdown",
1060 "metadata": {},
1061 "source": [
1062 "## Controlled Viatra with Node Activity"
1063 ]
1064 },
1065 {
1066 "cell_type": "code",
1067 "execution_count": 37,
1068 "metadata": {},
1069 "outputs": [],
1070 "source": [
1071 "con_viatra_stats = readStats('../input/controlled_viatra_out_degree_node_activity/',20000)\n",
1072 "con_viatra_dic = calDistanceDic(con_viatra_stats, human_rep)\n",
1073 "\n",
1074 "# trajectories and colors\n",
1075 "trajectories = {}\n",
1076 "w = createSelectionWidge(trajectories)\n",
1077 "colors = createRandomColors(len(trajectories))"
1078 ]
1079 },
1080 {
1081 "cell_type": "code",
1082 "execution_count": 38,
1083 "metadata": {},
1084 "outputs": [
1085 {
1086 "data": {
1087 "application/vnd.jupyter.widget-view+json": {
1088 "model_id": "902b580a11fa4c8db9d03508ad629067",
1089 "version_major": 2,
1090 "version_minor": 0
1091 },
1092 "text/plain": [
1093 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1094 ]
1095 },
1096 "metadata": {},
1097 "output_type": "display_data"
1098 },
1099 {
1100 "data": {
1101 "text/plain": [
1102 "<function __main__.plot_out_degree(lines)>"
1103 ]
1104 },
1105 "execution_count": 38,
1106 "metadata": {},
1107 "output_type": "execute_result"
1108 }
1109 ],
1110 "source": [
1111 "def plot_out_degree(lines):\n",
1112 " plot(con_viatra_dic, lines, 0, lambda a: a.out_d_distance, colors, 'out_degree', '../output/controled_viatra_with_node_activity/')\n",
1113 "interact(plot_out_degree, lines=w)"
1114 ]
1115 },
1116 {
1117 "cell_type": "code",
1118 "execution_count": 39,
1119 "metadata": {},
1120 "outputs": [
1121 {
1122 "data": {
1123 "application/vnd.jupyter.widget-view+json": {
1124 "model_id": "851b567e745940288b577d9bd27e6f08",
1125 "version_major": 2,
1126 "version_minor": 0
1127 },
1128 "text/plain": [
1129 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1130 ]
1131 },
1132 "metadata": {},
1133 "output_type": "display_data"
1134 },
1135 {
1136 "data": {
1137 "text/plain": [
1138 "<function __main__.plot_na(lines)>"
1139 ]
1140 },
1141 "execution_count": 39,
1142 "metadata": {},
1143 "output_type": "execute_result"
1144 }
1145 ],
1146 "source": [
1147 "def plot_na(lines):\n",
1148 " plot(con_viatra_dic, lines, 0, lambda a: a.na_distance, colors, 'Node Activity', '../output/controled_viatra_with_node_activity/')\n",
1149 "interact(plot_na, lines=w)"
1150 ]
1151 },
1152 {
1153 "cell_type": "code",
1154 "execution_count": 40,
1155 "metadata": {},
1156 "outputs": [
1157 {
1158 "data": {
1159 "application/vnd.jupyter.widget-view+json": {
1160 "model_id": "7de173291f394b10b5113e3312b7b2e1",
1161 "version_major": 2,
1162 "version_minor": 0
1163 },
1164 "text/plain": [
1165 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1166 ]
1167 },
1168 "metadata": {},
1169 "output_type": "display_data"
1170 },
1171 {
1172 "data": {
1173 "text/plain": [
1174 "<function __main__.plot_mpc(lines)>"
1175 ]
1176 },
1177 "execution_count": 40,
1178 "metadata": {},
1179 "output_type": "execute_result"
1180 }
1181 ],
1182 "source": [
1183 "def plot_mpc(lines):\n",
1184 " plot(con_viatra_dic, lines, 0, lambda a: a.mpc_distance, colors, 'mpc', '../output/controled_viatra_with_node_activity/')\n",
1185 "interact(plot_mpc, lines=w)"
1186 ]
1187 },
1188 {
1189 "cell_type": "markdown",
1190 "metadata": {},
1191 "source": [
1192 "# Random EMF With Normal(2,1)"
1193 ]
1194 },
1195 {
1196 "cell_type": "code",
1197 "execution_count": 41,
1198 "metadata": {},
1199 "outputs": [],
1200 "source": [
1201 "random_emf_stats = readStats('../input/random_emf_normal/',6000)\n",
1202 "random_emf_dic = calDistanceDic(random_emf_stats, human_rep)\n",
1203 "\n",
1204 "# trajectories and colors\n",
1205 "trajectories = {}\n",
1206 "w = createSelectionWidge(trajectories)\n",
1207 "colors = createRandomColors(len(trajectories))"
1208 ]
1209 },
1210 {
1211 "cell_type": "code",
1212 "execution_count": 42,
1213 "metadata": {},
1214 "outputs": [
1215 {
1216 "data": {
1217 "application/vnd.jupyter.widget-view+json": {
1218 "model_id": "6b9ee873d9ca41649cf05f3b713d9142",
1219 "version_major": 2,
1220 "version_minor": 0
1221 },
1222 "text/plain": [
1223 "interactive(children=(Dropdown(description='lines', options=([],), value=[]), Output()), _dom_classes=('widget…"
1224 ]
1225 },
1226 "metadata": {},
1227 "output_type": "display_data"
1228 },
1229 {
1230 "data": {
1231 "text/plain": [
1232 "<function __main__.plot_out_degree(lines)>"
1233 ]
1234 },
1235 "execution_count": 42,
1236 "metadata": {},
1237 "output_type": "execute_result"
1238 }
1239 ],
1240 "source": [
1241 "def plot_out_degree(lines):\n",
1242 " plot(random_emf_dic, lines, 0, lambda a: a.out_d_distance, colors, 'out degree', '../output/random_emf_normal/')\n",
1243 "interact(plot_out_degree, lines=[[]])"
1244 ]
1245 },
1246 {
1247 "cell_type": "code",
1248 "execution_count": 43,
1249 "metadata": {},
1250 "outputs": [
1251 {
1252 "data": {
1253 "application/vnd.jupyter.widget-view+json": {
1254 "model_id": "88f258a0b0ac4417aba320beca7508cf",
1255 "version_major": 2,
1256 "version_minor": 0
1257 },
1258 "text/plain": [
1259 "interactive(children=(Dropdown(description='lines', options=([],), value=[]), Output()), _dom_classes=('widget…"
1260 ]
1261 },
1262 "metadata": {},
1263 "output_type": "display_data"
1264 },
1265 {
1266 "data": {
1267 "text/plain": [
1268 "<function __main__.plot_node_activity(lines)>"
1269 ]
1270 },
1271 "execution_count": 43,
1272 "metadata": {},
1273 "output_type": "execute_result"
1274 }
1275 ],
1276 "source": [
1277 "def plot_node_activity(lines):\n",
1278 " plot(random_emf_dic, lines, 0, lambda a: a.na_distance, colors, 'node activity', '../output/random_emf_normal/')\n",
1279 "interact(plot_node_activity, lines=[[]])"
1280 ]
1281 },
1282 {
1283 "cell_type": "code",
1284 "execution_count": 44,
1285 "metadata": {},
1286 "outputs": [
1287 {
1288 "data": {
1289 "application/vnd.jupyter.widget-view+json": {
1290 "model_id": "d71cf26018184ee6953c50b74908f52d",
1291 "version_major": 2,
1292 "version_minor": 0
1293 },
1294 "text/plain": [
1295 "interactive(children=(Dropdown(description='lines', options=([],), value=[]), Output()), _dom_classes=('widget…"
1296 ]
1297 },
1298 "metadata": {},
1299 "output_type": "display_data"
1300 },
1301 {
1302 "data": {
1303 "text/plain": [
1304 "<function __main__.plot_mpc(lines)>"
1305 ]
1306 },
1307 "execution_count": 44,
1308 "metadata": {},
1309 "output_type": "execute_result"
1310 }
1311 ],
1312 "source": [
1313 "def plot_mpc(lines):\n",
1314 " plot(random_emf_dic, lines, 0, lambda a: a.mpc_distance, colors, 'mpc', '../output/random_emf_normal/')\n",
1315 "interact(plot_mpc, lines=[[]])"
1316 ]
1317 },
1318 {
1319 "cell_type": "code",
1320 "execution_count": 45,
1321 "metadata": {},
1322 "outputs": [],
1323 "source": [
1324 "con_viatra_stats = readStats('../input/controlled_viatra_all/',20000)\n",
1325 "con_viatra_dic = calDistanceDic(con_viatra_stats, human_rep)\n",
1326 "\n",
1327 "# trajectories and colors\n",
1328 "trajectories = {}\n",
1329 "w = createSelectionWidge(trajectories)\n",
1330 "colors = createRandomColors(len(trajectories))"
1331 ]
1332 },
1333 {
1334 "cell_type": "code",
1335 "execution_count": 46,
1336 "metadata": {},
1337 "outputs": [
1338 {
1339 "data": {
1340 "application/vnd.jupyter.widget-view+json": {
1341 "model_id": "db15ac26aad84683b9da99fc54749850",
1342 "version_major": 2,
1343 "version_minor": 0
1344 },
1345 "text/plain": [
1346 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1347 ]
1348 },
1349 "metadata": {},
1350 "output_type": "display_data"
1351 },
1352 {
1353 "data": {
1354 "text/plain": [
1355 "<function __main__.plot_out_degree(lines)>"
1356 ]
1357 },
1358 "execution_count": 46,
1359 "metadata": {},
1360 "output_type": "execute_result"
1361 }
1362 ],
1363 "source": [
1364 "def plot_out_degree(lines):\n",
1365 " plot(con_viatra_dic, lines, 0, lambda a: a.out_d_distance, colors, 'out_degree', '../output/controled_viatra_all/')\n",
1366 "interact(plot_out_degree, lines=w)"
1367 ]
1368 },
1369 {
1370 "cell_type": "code",
1371 "execution_count": 47,
1372 "metadata": {},
1373 "outputs": [
1374 {
1375 "data": {
1376 "application/vnd.jupyter.widget-view+json": {
1377 "model_id": "30bfaf8dd45d4b21b0b43afe5e9fdb8a",
1378 "version_major": 2,
1379 "version_minor": 0
1380 },
1381 "text/plain": [
1382 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1383 ]
1384 },
1385 "metadata": {},
1386 "output_type": "display_data"
1387 },
1388 {
1389 "data": {
1390 "text/plain": [
1391 "<function __main__.plot_na(lines)>"
1392 ]
1393 },
1394 "execution_count": 47,
1395 "metadata": {},
1396 "output_type": "execute_result"
1397 }
1398 ],
1399 "source": [
1400 "def plot_na(lines):\n",
1401 " plot(con_viatra_dic, lines, 0, lambda a: a.na_distance, colors, 'Node Activity', '../output/controled_viatra_all/')\n",
1402 "interact(plot_na, lines=w)"
1403 ]
1404 },
1405 {
1406 "cell_type": "code",
1407 "execution_count": 48,
1408 "metadata": {},
1409 "outputs": [
1410 {
1411 "data": {
1412 "application/vnd.jupyter.widget-view+json": {
1413 "model_id": "5636d37b4416474db5441fe47e7a8a30",
1414 "version_major": 2,
1415 "version_minor": 0
1416 },
1417 "text/plain": [
1418 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1419 ]
1420 },
1421 "metadata": {},
1422 "output_type": "display_data"
1423 },
1424 {
1425 "data": {
1426 "text/plain": [
1427 "<function __main__.plot_mpc(lines)>"
1428 ]
1429 },
1430 "execution_count": 48,
1431 "metadata": {},
1432 "output_type": "execute_result"
1433 }
1434 ],
1435 "source": [
1436 "def plot_mpc(lines):\n",
1437 " plot(con_viatra_dic, lines, 0, lambda a: a.mpc_distance, colors, 'mpc', '../output/controled_viatra_all/')\n",
1438 "interact(plot_mpc, lines=w)"
1439 ]
1440 },
1441 {
1442 "cell_type": "markdown",
1443 "metadata": {},
1444 "source": [
1445 "### Viatra With Both metric and consistency"
1446 ]
1447 },
1448 {
1449 "cell_type": "code",
1450 "execution_count": 53,
1451 "metadata": {},
1452 "outputs": [],
1453 "source": [
1454 "con_viatra_stats = readStats('../input/viatra_control_all_with_consistency_1/',20000)\n",
1455 "con_viatra_dic = calDistanceDic(con_viatra_stats, human_rep)\n",
1456 "\n",
1457 "# trajectories and colors\n",
1458 "trajectories = {}\n",
1459 "w = createSelectionWidge(trajectories)\n",
1460 "colors = createRandomColors(len(trajectories))"
1461 ]
1462 },
1463 {
1464 "cell_type": "code",
1465 "execution_count": 54,
1466 "metadata": {},
1467 "outputs": [
1468 {
1469 "data": {
1470 "application/vnd.jupyter.widget-view+json": {
1471 "model_id": "e5c7231686544d959527cff36c1f1a5e",
1472 "version_major": 2,
1473 "version_minor": 0
1474 },
1475 "text/plain": [
1476 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1477 ]
1478 },
1479 "metadata": {},
1480 "output_type": "display_data"
1481 },
1482 {
1483 "data": {
1484 "text/plain": [
1485 "<function __main__.plot_out_degree(lines)>"
1486 ]
1487 },
1488 "execution_count": 54,
1489 "metadata": {},
1490 "output_type": "execute_result"
1491 }
1492 ],
1493 "source": [
1494 "def plot_out_degree(lines):\n",
1495 " plot(con_viatra_dic, lines, 0, lambda a: a.out_d_distance, colors, 'out_degree', '../output/viatra_control_all_with_consistency_1/')\n",
1496 "interact(plot_out_degree, lines=w)"
1497 ]
1498 },
1499 {
1500 "cell_type": "code",
1501 "execution_count": 55,
1502 "metadata": {},
1503 "outputs": [
1504 {
1505 "data": {
1506 "application/vnd.jupyter.widget-view+json": {
1507 "model_id": "e043705333bb474e89582ea9358c57c3",
1508 "version_major": 2,
1509 "version_minor": 0
1510 },
1511 "text/plain": [
1512 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1513 ]
1514 },
1515 "metadata": {},
1516 "output_type": "display_data"
1517 },
1518 {
1519 "data": {
1520 "text/plain": [
1521 "<function __main__.plot_na(lines)>"
1522 ]
1523 },
1524 "execution_count": 55,
1525 "metadata": {},
1526 "output_type": "execute_result"
1527 }
1528 ],
1529 "source": [
1530 "def plot_na(lines):\n",
1531 " plot(con_viatra_dic, lines, 0, lambda a: a.na_distance, colors, 'Node Activity', '../output/viatra_control_all_with_consistency_1/')\n",
1532 "interact(plot_na, lines=w)"
1533 ]
1534 },
1535 {
1536 "cell_type": "code",
1537 "execution_count": 56,
1538 "metadata": {},
1539 "outputs": [
1540 {
1541 "data": {
1542 "application/vnd.jupyter.widget-view+json": {
1543 "model_id": "ee4723b62293402e87e6a3f798019b36",
1544 "version_major": 2,
1545 "version_minor": 0
1546 },
1547 "text/plain": [
1548 "interactive(children=(SelectMultiple(description='Trajectory:', options={}, value=()), Output()), _dom_classes…"
1549 ]
1550 },
1551 "metadata": {},
1552 "output_type": "display_data"
1553 },
1554 {
1555 "data": {
1556 "text/plain": [
1557 "<function __main__.plot_mpc(lines)>"
1558 ]
1559 },
1560 "execution_count": 56,
1561 "metadata": {},
1562 "output_type": "execute_result"
1563 }
1564 ],
1565 "source": [
1566 "def plot_mpc(lines):\n",
1567 " plot(con_viatra_dic, lines, 0, lambda a: a.mpc_distance, colors, 'mpc', '../output/viatra_control_all_with_consistency_1/')\n",
1568 "interact(plot_mpc, lines=w)"
1569 ]
1570 },
1571 {
927 "cell_type": "code", 1572 "cell_type": "code",
928 "execution_count": null, 1573 "execution_count": null,
929 "metadata": {}, 1574 "metadata": {},
diff --git a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb
index 9653b2a0..78f408fc 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb
+++ b/Metrics/Metrics-Calculation/metrics_plot/model_evolve_comparison/src/representative_selector .ipynb
@@ -63,16 +63,16 @@
63 }, 63 },
64 { 64 {
65 "cell_type": "code", 65 "cell_type": "code",
66 "execution_count": 4, 66 "execution_count": 3,
67 "metadata": {}, 67 "metadata": {},
68 "outputs": [ 68 "outputs": [
69 { 69 {
70 "data": { 70 "data": {
71 "text/plain": [ 71 "text/plain": [
72 "1253" 72 "304"
73 ] 73 ]
74 }, 74 },
75 "execution_count": 4, 75 "execution_count": 3,
76 "metadata": {}, 76 "metadata": {},
77 "output_type": "execute_result" 77 "output_type": "execute_result"
78 } 78 }
@@ -90,7 +90,7 @@
90 ")\n", 90 ")\n",
91 "\n", 91 "\n",
92 "\n", 92 "\n",
93 "humanFiles = reader.readmultiplefiles('../input/humanOutput/', 1300, False)\n", 93 "humanFiles = reader.readmultiplefiles('../input/human_output_100/', 1300, False)\n",
94 "modelToFileName = {}\n", 94 "modelToFileName = {}\n",
95 "for name in humanFiles:\n", 95 "for name in humanFiles:\n",
96 " modelToFileName[GraphStat(name)] = name\n", 96 " modelToFileName[GraphStat(name)] = name\n",
@@ -115,7 +115,7 @@
115 }, 115 },
116 { 116 {
117 "cell_type": "code", 117 "cell_type": "code",
118 "execution_count": 5, 118 "execution_count": 4,
119 "metadata": {}, 119 "metadata": {},
120 "outputs": [], 120 "outputs": [],
121 "source": [ 121 "source": [
@@ -144,21 +144,26 @@
144 "cell_type": "markdown", 144 "cell_type": "markdown",
145 "metadata": {}, 145 "metadata": {},
146 "source": [ 146 "source": [
147 "#### For all human models\n",
147 "* the rep found is ../input/humanOutput\\R_20158_run_1.csv\n", 148 "* the rep found is ../input/humanOutput\\R_20158_run_1.csv\n",
148 "* the average distance between it and others is 0.05515988287586802" 149 "* the average distance between it and others is 0.05515988287586802\n",
150 "\n",
151 "#### For human models with $100 \\pm 10$ nodes\n",
152 "* the rep found is ../input/human_output_100\\R_2015225_run_1.csv\n",
153 "* the average distance between it and others is $0.046150929558524685$"
149 ] 154 ]
150 }, 155 },
151 { 156 {
152 "cell_type": "code", 157 "cell_type": "code",
153 "execution_count": 6, 158 "execution_count": 5,
154 "metadata": {}, 159 "metadata": {},
155 "outputs": [ 160 "outputs": [
156 { 161 {
157 "name": "stdout", 162 "name": "stdout",
158 "output_type": "stream", 163 "output_type": "stream",
159 "text": [ 164 "text": [
160 "../input/humanOutput\\R_20158_run_1.csv\n", 165 "../input/human_output_100\\R_2015225_run_1.csv\n",
161 "../input/humanOutput\\R_20158_run_1.csv\n" 166 "../input/human_output_100\\R_2015225_run_1.csv\n"
162 ] 167 ]
163 } 168 }
164 ], 169 ],
@@ -171,14 +176,14 @@
171 }, 176 },
172 { 177 {
173 "cell_type": "code", 178 "cell_type": "code",
174 "execution_count": 19, 179 "execution_count": 6,
175 "metadata": {}, 180 "metadata": {},
176 "outputs": [ 181 "outputs": [
177 { 182 {
178 "name": "stdout", 183 "name": "stdout",
179 "output_type": "stream", 184 "output_type": "stream",
180 "text": [ 185 "text": [
181 "0.05515988287586802\n" 186 "0.046150929558524685\n"
182 ] 187 ]
183 } 188 }
184 ], 189 ],
@@ -201,41 +206,46 @@
201 "cell_type": "markdown", 206 "cell_type": "markdown",
202 "metadata": {}, 207 "metadata": {},
203 "source": [ 208 "source": [
209 "#### For all human models\n",
204 "* the rep found is ../input/humanOutput\\R_2016176_run_1.csv\n", 210 "* the rep found is ../input/humanOutput\\R_2016176_run_1.csv\n",
205 "* the average distance between it and others is 0.05275267434589047" 211 "* the average distance between it and others is 0.05275267434589047\n",
212 "\n",
213 "#### For human models with $100 \\pm 10$ nodes\n",
214 "* the rep found is ../input/human_output_100\\R_2017419_run_1.csv\n",
215 "* the average distance between it and others is $0.04679429311806747$"
206 ] 216 ]
207 }, 217 },
208 { 218 {
209 "cell_type": "code", 219 "cell_type": "code",
210 "execution_count": 7, 220 "execution_count": 13,
211 "metadata": {}, 221 "metadata": {},
212 "outputs": [ 222 "outputs": [
213 { 223 {
214 "name": "stdout", 224 "name": "stdout",
215 "output_type": "stream", 225 "output_type": "stream",
216 "text": [ 226 "text": [
217 "../input/humanOutput\\R_2016176_run_1.csv\n", 227 "../input/human_output_100\\R_2017419_run_1.csv\n",
218 "../input/humanOutput\\R_2016176_run_1.csv\n" 228 "../input/human_output_100\\R_2017419_run_1.csv\n"
219 ] 229 ]
220 } 230 }
221 ], 231 ],
222 "source": [ 232 "source": [
223 "total_distance = 0\n", 233 "na_rep_index = findRep(models, lambda m: m.na)\n",
224 "for model in models:\n", 234 "print(list(modelToFileName.values())[na_rep_index])\n",
225 " total_distance += ks_value(od_rep_model.mpc, model.mpc)\n", 235 "na_rep_model = models[na_rep_index]\n",
226 "print(total_distance / len(models))" 236 "print(modelToFileName[na_rep_model])\n"
227 ] 237 ]
228 }, 238 },
229 { 239 {
230 "cell_type": "code", 240 "cell_type": "code",
231 "execution_count": 18, 241 "execution_count": 14,
232 "metadata": {}, 242 "metadata": {},
233 "outputs": [ 243 "outputs": [
234 { 244 {
235 "name": "stdout", 245 "name": "stdout",
236 "output_type": "stream", 246 "output_type": "stream",
237 "text": [ 247 "text": [
238 "0.05275267434589047\n" 248 "0.04679429311806747\n"
239 ] 249 ]
240 } 250 }
241 ], 251 ],
@@ -243,7 +253,7 @@
243 "total_distance = 0\n", 253 "total_distance = 0\n",
244 "count = 0\n", 254 "count = 0\n",
245 "for model in models:\n", 255 "for model in models:\n",
246 " total_distance += ks_value(od_rep_model.na, model.na)\n", 256 " total_distance += ks_value(na_rep_model.na, model.na)\n",
247 "print(total_distance / len(models))" 257 "print(total_distance / len(models))"
248 ] 258 ]
249 }, 259 },
@@ -258,21 +268,26 @@
258 "cell_type": "markdown", 268 "cell_type": "markdown",
259 "metadata": {}, 269 "metadata": {},
260 "source": [ 270 "source": [
271 "#### For all human models\n",
261 "* the rep found is ../input/humanOutput\\R_2015246_run_1.csv\n", 272 "* the rep found is ../input/humanOutput\\R_2015246_run_1.csv\n",
262 "* the average distance between it and others is 0.08556632702185384" 273 "* the average distance between it and others is 0.08556632702185384\n",
274 "\n",
275 "#### For human models with $100 \\pm 10$ nodes\n",
276 "* the rep found is ../input/human_output_100\\R_2016324_run_1.csv\n",
277 "* the average distance between it and others is $0.07028909225833631$"
263 ] 278 ]
264 }, 279 },
265 { 280 {
266 "cell_type": "code", 281 "cell_type": "code",
267 "execution_count": 8, 282 "execution_count": 16,
268 "metadata": {}, 283 "metadata": {},
269 "outputs": [ 284 "outputs": [
270 { 285 {
271 "name": "stdout", 286 "name": "stdout",
272 "output_type": "stream", 287 "output_type": "stream",
273 "text": [ 288 "text": [
274 "../input/humanOutput\\R_2015246_run_1.csv\n", 289 "../input/human_output_100\\R_2016324_run_1.csv\n",
275 "../input/humanOutput\\R_2015246_run_1.csv\n" 290 "../input/human_output_100\\R_2016324_run_1.csv\n"
276 ] 291 ]
277 } 292 }
278 ], 293 ],
@@ -285,14 +300,14 @@
285 }, 300 },
286 { 301 {
287 "cell_type": "code", 302 "cell_type": "code",
288 "execution_count": 20, 303 "execution_count": 18,
289 "metadata": {}, 304 "metadata": {},
290 "outputs": [ 305 "outputs": [
291 { 306 {
292 "name": "stdout", 307 "name": "stdout",
293 "output_type": "stream", 308 "output_type": "stream",
294 "text": [ 309 "text": [
295 "0.08556632702185384\n" 310 "0.07028909225833631\n"
296 ] 311 ]
297 } 312 }
298 ], 313 ],
@@ -300,7 +315,7 @@
300 "total_distance = 0\n", 315 "total_distance = 0\n",
301 "count = 0\n", 316 "count = 0\n",
302 "for model in models:\n", 317 "for model in models:\n",
303 " total_distance += ks_value(od_rep_model.mpc, model.mpc)\n", 318 " total_distance += ks_value(mpc_rep_model.mpc, model.mpc)\n",
304 "print(total_distance / len(models))" 319 "print(total_distance / len(models))"
305 ] 320 ]
306 }, 321 },
@@ -310,6 +325,13 @@
310 "metadata": {}, 325 "metadata": {},
311 "outputs": [], 326 "outputs": [],
312 "source": [] 327 "source": []
328 },
329 {
330 "cell_type": "code",
331 "execution_count": null,
332 "metadata": {},
333 "outputs": [],
334 "source": []
313 } 335 }
314 ], 336 ],
315 "metadata": { 337 "metadata": {
diff --git a/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py b/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py
index ce9d4255..aba81b13 100644
--- a/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py
+++ b/Metrics/Metrics-Calculation/metrics_plot/utils/constants.py
@@ -18,8 +18,8 @@ METAMODEL = 'Meta Mode'
18 18
19STATE_ID = 'State Id' 19STATE_ID = 'State Id'
20 20
21HUMAN_OUT_D_REP = '../input/humanOutput/R_20158_run_1.csv' 21HUMAN_OUT_D_REP = '../input/humanOutput/R_2015225_run_1.csv'
22 22
23HUMAN_MPC_REP = '../input/humanOutput/R_2015246_run_1.csv' 23HUMAN_MPC_REP = '../input/humanOutput/R_2016324_run_1.csv'
24 24
25HUMAN_NA_REP = '../input/humanOutput/R_2016176_run_1.csv' 25HUMAN_NA_REP = '../input/humanOutput/R_2017419_run_1.csv'