aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app
diff options
context:
space:
mode:
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._tracebin0 -> 164 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbinbin0 -> 1885 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._tracebin0 -> 6539 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbinbin0 -> 8247 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._tracebin0 -> 2918 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._tracebin0 -> 2152 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbinbin0 -> 6658 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._tracebin0 -> 12333 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbinbin0 -> 12384 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java10
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java99
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java49
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java54
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java180
14 files changed, 392 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace
new file mode 100644
index 00000000..8ab43fde
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin
new file mode 100644
index 00000000..f502d04e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace
new file mode 100644
index 00000000..7096f9db
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin
new file mode 100644
index 00000000..2362ebad
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace
new file mode 100644
index 00000000..f6505088
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace
new file mode 100644
index 00000000..8708c793
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin
new file mode 100644
index 00000000..d9e88699
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace
new file mode 100644
index 00000000..3e381b10
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin
new file mode 100644
index 00000000..5071eb03
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java
new file mode 100644
index 00000000..9b626001
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java
@@ -0,0 +1,10 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3@SuppressWarnings("all")
4public enum Domain {
5 Yakindumm,
6
7 Ecore,
8
9 Github;
10}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
new file mode 100644
index 00000000..dbb3bdd1
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
@@ -0,0 +1,99 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation.ViolationCheck;
8import com.google.common.base.Objects;
9import com.google.common.collect.Iterators;
10import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl;
11import java.io.File;
12import java.util.ArrayList;
13import java.util.Iterator;
14import org.eclipse.emf.ecore.EReference;
15import org.eclipse.emf.ecore.impl.EcorePackageImpl;
16import org.eclipse.xtext.xbase.lib.CollectionLiterals;
17import org.eclipse.xtext.xbase.lib.Functions.Function1;
18import org.eclipse.xtext.xbase.lib.InputOutput;
19import org.eclipse.xtext.xbase.lib.IteratorExtensions;
20import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
21
22@SuppressWarnings("all")
23public class Main {
24 public static class RWInformation {
25 public String inputFolder;
26
27 public String outputFolder;
28
29 public int numRuns;
30
31 public RWInformation(final String inputFolder, final String outputFolder, final int numRuns) {
32 this.inputFolder = inputFolder;
33 this.outputFolder = outputFolder;
34 this.numRuns = numRuns;
35 }
36 }
37
38 private static Domain d = Domain.Yakindumm;
39
40 private final static String suffix = ".xmi";
41
42 private final static String OUTPUT_FOLDER = "Inputs/measurement2/yakindu/Alloy/";
43
44 private final static String INPUT_FOLDER = "outputs/measurement2/yakindu/Alloy/";
45
46 private final static int NUM_RUNS = 1;
47
48 public static void main(final String[] args) {
49 throw new Error("Unresolved compilation problems:"
50 + "\nThe method or field ReteEngine is undefined"
51 + "\ngetClass cannot be resolved");
52 }
53
54 public static String calculateAllModels(final String inputFolder, final String outputFolder, final int numRuns, final GraphReader reader) {
55 String _xblockexpression = null;
56 {
57 new File(outputFolder).mkdir();
58 for (int i = 1; (i <= numRuns); i++) {
59 {
60 final ArrayList<EMFGraph> models = new ArrayList<EMFGraph>();
61 models.addAll(reader.readModels(((inputFolder + "run") + Integer.valueOf(i))));
62 for (final EMFGraph model : models) {
63 String _name = model.getName();
64 String _plus = (outputFolder + _name);
65 String _plus_1 = (_plus + "_run_");
66 String _plus_2 = (_plus_1 + Integer.valueOf(i));
67 String _plus_3 = (_plus_2 + ".csv");
68 Main.calculateAndOutputMetrics(model, YakindummPackageImpl.eNAME, _plus_3);
69 }
70 }
71 }
72 _xblockexpression = InputOutput.<String>println(("output results Ended for: " + outputFolder));
73 }
74 return _xblockexpression;
75 }
76
77 public static void calculateAndOutputMetrics(final EMFGraph model, final String metaModel, final String fileName) {
78 model.setMetaModel(metaModel);
79 boolean _equals = Objects.equal(Main.d, Domain.Ecore);
80 if (_equals) {
81 final Function1<EReference, Boolean> _function = (EReference it) -> {
82 return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) ||
83 it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents")));
84 };
85 Iterator<EReference> refsToRemove = IteratorExtensions.<EReference>filter(Iterators.<EReference>filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function);
86 final Procedure1<EReference> _function_1 = (EReference it) -> {
87 model.removeReference(it);
88 };
89 IteratorExtensions.<EReference>forEach(refsToRemove, _function_1);
90 }
91 ArrayList<ArrayList<String>> outputs = model.evaluateAllMetrics();
92 int violations = ViolationCheck.calculateViolationCounts(model.getRoot(), Main.d);
93 InputOutput.<Integer>println(Integer.valueOf(violations));
94 String _plus = (Integer.valueOf(violations) + "");
95 ArrayList<String> violationsOutput = CollectionLiterals.<String>newArrayList("violations", _plus);
96 outputs.add(violationsOutput);
97 CsvFileWriter.write(outputs, fileName);
98 }
99}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java
new file mode 100644
index 00000000..bb0e3ffb
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java
@@ -0,0 +1,49 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import java.util.HashMap;
4
5@SuppressWarnings("all")
6public class MetricDistanceGroup {
7 private double mpcDistance;
8
9 private double naDistance;
10
11 private double outDegreeDistance;
12
13 private double nodeTypeDistance;
14
15 protected HashMap<String, Double> nodeTypeInfo;
16
17 public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance, final double nodeTypeDistance) {
18 this.mpcDistance = mpcDistance;
19 this.naDistance = naDistance;
20 this.outDegreeDistance = outDegreeDistance;
21 this.nodeTypeDistance = nodeTypeDistance;
22 }
23
24 public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance) {
25 this.mpcDistance = mpcDistance;
26 this.naDistance = naDistance;
27 this.outDegreeDistance = outDegreeDistance;
28 }
29
30 public double getNodeTypeDistance() {
31 return this.nodeTypeDistance;
32 }
33
34 public double getMPCDistance() {
35 return this.mpcDistance;
36 }
37
38 public double getNADistance() {
39 return this.naDistance;
40 }
41
42 public double getOutDegreeDistance() {
43 return this.outDegreeDistance;
44 }
45
46 public double getNodeTypePercentage(final String typeName) {
47 return (this.nodeTypeInfo.getOrDefault(typeName, Double.valueOf(0.0))).doubleValue();
48 }
49}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java
new file mode 100644
index 00000000..d1d75d0d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java
@@ -0,0 +1,54 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
12import java.io.File;
13import java.util.ArrayList;
14import java.util.List;
15
16@SuppressWarnings("all")
17public class PartialInterpretationMetric {
18 private static KSDistance ks;
19
20 private static JSDistance js;
21
22 public static void initPaths() {
23 new File("debug/metric/").mkdir();
24 new File("debug/metric/trajectories/").mkdir();
25 }
26
27 public static void calculateMetric(final PartialInterpretation partial, final String path, final String currentStateId, final Integer counter) {
28 final ArrayList<Metric> metrics = new ArrayList<Metric>();
29 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
30 metrics.add(_outDegreeMetric);
31 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
32 metrics.add(_nodeActivityMetric);
33 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
34 metrics.add(_multiplexParticipationCoefficientMetric);
35 new File(path).mkdir();
36 final String filename = (((((path + "/state_") + currentStateId) + "-") + counter) + ".csv");
37 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId);
38 CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename);
39 }
40
41 public static void outputTrajectories(final PartialInterpretation empty, final /* List<Solution> */Object solutions) {
42 throw new Error("Unresolved compilation problems:"
43 + "\nshortestTrajectory cannot be resolved"
44 + "\nmodel cannot be resolved"
45 + "\ndoNextTransformation cannot be resolved"
46 + "\nstateCoder cannot be resolved"
47 + "\ncreateStateCode cannot be resolved"
48 + "\ntoString cannot be resolved"
49 + "\ngetModel cannot be resolved"
50 + "\nstateCoder cannot be resolved"
51 + "\ncreateStateCode cannot be resolved"
52 + "\ntoString cannot be resolved");
53 }
54}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java
new file mode 100644
index 00000000..c98cbeea
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java
@@ -0,0 +1,180 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.MetricDistanceGroup;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.EuclideanDistance;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
11import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
12import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
13import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
14import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric;
15import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
16import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel;
17import com.google.common.base.Objects;
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
19import java.util.ArrayList;
20import java.util.List;
21import java.util.Map;
22import org.eclipse.xtend.lib.annotations.AccessorType;
23import org.eclipse.xtend.lib.annotations.Accessors;
24import org.eclipse.xtext.xbase.lib.InputOutput;
25import org.eclipse.xtext.xbase.lib.Pure;
26
27@SuppressWarnings("all")
28public class PartialInterpretationMetricDistance {
29 private KSDistance ks;
30
31 private JSDistance js;
32
33 private EuclideanDistance ed;
34
35 private Map<Object, StateData> stateAndHistory;
36
37 private /* OLSMultipleLinearRegression */Object regression;
38
39 private List<StateData> samples;
40
41 private MetricSampleGroup g;
42
43 @Accessors(AccessorType.PUBLIC_GETTER)
44 private LinearModel linearModel;
45
46 public PartialInterpretationMetricDistance(final Domain d) {
47 throw new Error("Unresolved compilation problems:"
48 + "\nOLSMultipleLinearRegression cannot be resolved."
49 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
50 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
51 + "\nnoIntercept cannot be resolved");
52 }
53
54 public MetricDistanceGroup calculateMetricDistanceKS(final PartialInterpretation partial) {
55 final ArrayList<Metric> metrics = new ArrayList<Metric>();
56 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
57 metrics.add(_outDegreeMetric);
58 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
59 metrics.add(_nodeActivityMetric);
60 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
61 metrics.add(_multiplexParticipationCoefficientMetric);
62 NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric();
63 metrics.add(_nodeTypeMetric);
64 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
65 MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples();
66 double mpc = this.ks.mpcDistance(metricSamples.mpcSamples);
67 double na = this.ks.naDistance(metricSamples.naSamples);
68 double outDegree = this.ks.outDegreeDistance(metricSamples.outDegreeSamples);
69 double nodeType = this.ks.nodeTypeDistance(metricSamples.nodeTypeSamples);
70 MetricDistanceGroup distance = new MetricDistanceGroup(mpc, na, outDegree, nodeType);
71 distance.nodeTypeInfo = metricSamples.nodeTypeSamples;
72 return distance;
73 }
74
75 public MetricDistanceGroup calculateMetricEuclidean(final PartialInterpretation partial) {
76 final ArrayList<Metric> metrics = new ArrayList<Metric>();
77 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
78 metrics.add(_outDegreeMetric);
79 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
80 metrics.add(_nodeActivityMetric);
81 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
82 metrics.add(_multiplexParticipationCoefficientMetric);
83 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
84 MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples();
85 double mpc = this.ed.mpcDistance(metricSamples.mpcSamples);
86 double na = this.ed.naDistance(metricSamples.naSamples);
87 double outDegree = this.ed.outDegreeDistance(metricSamples.outDegreeSamples);
88 return new MetricDistanceGroup(mpc, na, outDegree);
89 }
90
91 public MetricDistanceGroup calculateMetricDistance(final PartialInterpretation partial) {
92 final ArrayList<Metric> metrics = new ArrayList<Metric>();
93 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
94 metrics.add(_outDegreeMetric);
95 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
96 metrics.add(_nodeActivityMetric);
97 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
98 metrics.add(_multiplexParticipationCoefficientMetric);
99 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
100 MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples();
101 double mpc = this.js.mpcDistance(metricSamples.mpcSamples);
102 double na = this.js.naDistance(metricSamples.naSamples);
103 double outDegree = this.js.outDegreeDistance(metricSamples.outDegreeSamples);
104 return new MetricDistanceGroup(mpc, na, outDegree);
105 }
106
107 public String resetRegression(final Object state) {
108 String _xblockexpression = null;
109 {
110 this.samples.clear();
111 boolean _containsKey = this.stateAndHistory.containsKey(state);
112 if (_containsKey) {
113 StateData data = this.stateAndHistory.get(state);
114 Object curState = state;
115 this.samples.add(data);
116 while ((this.stateAndHistory.containsKey(data.getLastState()) && (!Objects.equal(data.getLastState(), curState)))) {
117 {
118 curState = data.getLastState();
119 data = this.stateAndHistory.get(data.getLastState());
120 this.samples.add(data);
121 }
122 }
123 int _size = this.samples.size();
124 boolean _equals = (_size == 0);
125 if (_equals) {
126 InputOutput.<String>println(("state: " + state));
127 Object _lastState = data.getLastState();
128 String _plus = ("last state: " + _lastState);
129 InputOutput.<String>println(_plus);
130 }
131 }
132 int _size_1 = this.samples.size();
133 String _plus_1 = ("trajectory sample size:" + Integer.valueOf(_size_1));
134 _xblockexpression = InputOutput.<String>println(_plus_1);
135 }
136 return _xblockexpression;
137 }
138
139 public boolean feedData(final Object state, final double[] features, final double value, final Object lastState) {
140 boolean _xblockexpression = false;
141 {
142 StateData data = new StateData(features, value, lastState);
143 this.stateAndHistory.put(state, data);
144 _xblockexpression = this.samples.add(data);
145 }
146 return _xblockexpression;
147 }
148
149 public Object getPredictionForNextDataSample(final double[] features, final double value, final double[] featuresToPredict) {
150 throw new Error("Unresolved compilation problems:"
151 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
152 + "\nThe method predict(double[]) from the type PartialInterpretationMetricDistance refers to the missing type Object"
153 + "\nnewSampleData cannot be resolved");
154 }
155
156 private Object predict(final double[] featuresToPredict) {
157 throw new Error("Unresolved compilation problems:"
158 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
159 + "\nestimateRegressionParameters cannot be resolved"
160 + "\nget cannot be resolved"
161 + "\n+= cannot be resolved"
162 + "\nget cannot be resolved"
163 + "\n* cannot be resolved");
164 }
165
166 public double[] calculateFeature(final int step, final int violations) {
167 double[] features = new double[2];
168 features[0] = 1;
169 double _sqrt = Math.sqrt(step);
170 double _plus = (_sqrt + 30);
171 features[0] = _plus;
172 features[1] = (1.0 / (step + 30));
173 return features;
174 }
175
176 @Pure
177 public LinearModel getLinearModel() {
178 return this.linearModel;
179 }
180}