diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-08-28 05:56:34 -0400 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-08-28 05:56:34 -0400 |
commit | 6b70878a56052e1c254ba8c66485f217d22db3f8 (patch) | |
tree | 66088b97e5b6c0194f1a45f70f5f05315aba9e43 /Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app | |
parent | Pre-realisticBranchCreation Commit (diff) | |
download | VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.gz VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.zst VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.zip |
VAMPIRE: integrate local Vampire executeable #32
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app')
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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | @SuppressWarnings("all") | ||
4 | public 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation.ViolationCheck; | ||
8 | import com.google.common.base.Objects; | ||
9 | import com.google.common.collect.Iterators; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl; | ||
11 | import java.io.File; | ||
12 | import java.util.ArrayList; | ||
13 | import java.util.Iterator; | ||
14 | import org.eclipse.emf.ecore.EReference; | ||
15 | import org.eclipse.emf.ecore.impl.EcorePackageImpl; | ||
16 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
17 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
18 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
19 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
20 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
21 | |||
22 | @SuppressWarnings("all") | ||
23 | public 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import java.util.HashMap; | ||
4 | |||
5 | @SuppressWarnings("all") | ||
6 | public 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; | ||
11 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; | ||
12 | import java.io.File; | ||
13 | import java.util.ArrayList; | ||
14 | import java.util.List; | ||
15 | |||
16 | @SuppressWarnings("all") | ||
17 | public 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.MetricDistanceGroup; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.EuclideanDistance; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData; | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph; | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; | ||
13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; | ||
14 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric; | ||
15 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; | ||
16 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel; | ||
17 | import com.google.common.base.Objects; | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; | ||
19 | import java.util.ArrayList; | ||
20 | import java.util.List; | ||
21 | import java.util.Map; | ||
22 | import org.eclipse.xtend.lib.annotations.AccessorType; | ||
23 | import org.eclipse.xtend.lib.annotations.Accessors; | ||
24 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
25 | import org.eclipse.xtext.xbase.lib.Pure; | ||
26 | |||
27 | @SuppressWarnings("all") | ||
28 | public 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 | } | ||