From 3016134a4e49fdbbde62c96660e35297f5a5de96 Mon Sep 17 00:00:00 2001 From: 20001LastOrder Date: Wed, 29 May 2019 10:36:18 -0400 Subject: fix the metric calculation could mix edge types and constraints --- .../metrics/calculator/app/PartialInterpretationMetric.xtend | 5 +++++ .../calculator/graph/PartialInterpretationGraph.xtend | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src') 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 d786e6f0..0e505d30 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 @@ -18,6 +18,11 @@ import org.eclipse.viatra.dse.api.Solution class PartialInterpretationMetric { var static state = 0; + def static void initPaths(){ + new File("debug/metric/").mkdir(); + new File("debug/metric/trajectories/").mkdir(); + } + // calculate the metrics for a state def static void calculateMetric(PartialInterpretation partial, String path, String currentStateId, Integer counter){ val metrics = new ArrayList(); diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend index 074a75da..14337ab0 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.xtend @@ -1,6 +1,7 @@ package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.BooleanElementImpl @@ -8,10 +9,13 @@ import java.util.ArrayList import java.util.List class PartialInterpretationGraph extends Graph{ - var lastStateId=""; - new(PartialInterpretation partial, List metrics, String name){ - partial.problem.relations.forEach[ + /** + * Define a new PartialInterpretationGraph by parse every element from a PartialInterpretation + */ + new(PartialInterpretation partial, List metrics, String name){ + //the edge types are defined in terms of RelationDeclaration + partial.problem.relations.filter(RelationDeclaration).forEach[ this.statistic.addType(it.name); ] // add all elements @@ -32,7 +36,7 @@ class PartialInterpretationGraph extends Graph{ this.metrics = metrics; } - /** + /** * Set basic information for the output */ override setBasicInformation(ArrayList> output){ -- cgit v1.2.3-54-g00ecf