From 7595605950a45892af9e19cb8a5968da127479f4 Mon Sep 17 00:00:00 2001 From: 20001LastOrder Date: Mon, 27 May 2019 16:20:40 -0400 Subject: modify generation to log metrics measurements --- .../calculator/app/PartialInterpretationMetric.xtend | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.xtend') 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 5f958cfa..425c9d84 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 @@ -17,33 +17,41 @@ import org.eclipse.viatra.dse.api.Solution class PartialInterpretationMetric { var static state = 0; - def static void calculateMetric(PartialInterpretation partial, String path, int id, String currentStateId){ + + // calculate the metrics for a state + def static void calculateMetric(PartialInterpretation partial, String path, String currentStateId){ val metrics = new ArrayList(); metrics.add(new OutDegreeMetric()); metrics.add(new NodeActivityMetric()); metrics.add(new MultiplexParticipationCoefficientMetric()); + //make dir since the folder can be none existing new File(path).mkdir(); - val filename = path + "/state_"+state+".csv"; + val filename = path + "/state_"+currentStateId+".csv"; state++; val metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId); CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename); } - def static void outputTrajectories(PartialInterpretation empty, List solutions){ - + def static void outputTrajectories(PartialInterpretation empty, List solutions){ for(solution : solutions){ + //need to copy the empty solution because the transition directly worked on the graph val emptySolutionCopy = EcoreUtil.copy(empty) val trajectory = solution.shortestTrajectory; trajectory.modelWithEditingDomain = emptySolutionCopy + + // state codes that will record the trajectory val stateCodes = newArrayList() + //transform and record the state codes for each state while(trajectory.doNextTransformation){ - println(trajectory.stateCoder.createStateCode) + //println(trajectory.stateCoder.createStateCode) stateCodes.add(trajectory.stateCoder.createStateCode.toString) } + + //output the trajectory try{ val path = "debug/metric/trajectories/trajectory"+trajectory.stateCoder.createStateCode.toString+".csv" val PrintWriter writer = new PrintWriter(new File(path)) -- cgit v1.2.3-54-g00ecf