diff options
author | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2019-05-27 16:20:40 -0400 |
---|---|---|
committer | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2019-05-27 16:20:40 -0400 |
commit | 7595605950a45892af9e19cb8a5968da127479f4 (patch) | |
tree | 459803af05a916cd9d2e991358a816b242a44029 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java | |
parent | add project for metric calculator (diff) | |
download | VIATRA-Generator-7595605950a45892af9e19cb8a5968da127479f4.tar.gz VIATRA-Generator-7595605950a45892af9e19cb8a5968da127479f4.tar.zst VIATRA-Generator-7595605950a45892af9e19cb8a5968da127479f4.zip |
modify generation to log metrics measurements
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java')
-rw-r--r-- | Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java index 60f46033..21efd7ba 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java | |||
@@ -32,6 +32,7 @@ import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | |||
32 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | 32 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; |
33 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | 33 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; |
34 | 34 | ||
35 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.PartialInterpretationMetric; | ||
35 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; | 36 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; |
36 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | 37 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; |
37 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | 38 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; |
@@ -190,6 +191,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { | |||
190 | List<Object> activationIds = selectActivation(); | 191 | List<Object> activationIds = selectActivation(); |
191 | Iterator<Object> iterator = activationIds.iterator(); | 192 | Iterator<Object> iterator = activationIds.iterator(); |
192 | 193 | ||
194 | |||
193 | while (!isInterrupted && !configuration.progressMonitor.isCancelled() && iterator.hasNext()) { | 195 | while (!isInterrupted && !configuration.progressMonitor.isCancelled() && iterator.hasNext()) { |
194 | final Object nextActivation = iterator.next(); | 196 | final Object nextActivation = iterator.next(); |
195 | // if (!iterator.hasNext()) { | 197 | // if (!iterator.hasNext()) { |
@@ -198,7 +200,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { | |||
198 | // } | 200 | // } |
199 | logger.debug("Executing new activation: " + nextActivation); | 201 | logger.debug("Executing new activation: " + nextActivation); |
200 | context.executeAcitvationId(nextActivation); | 202 | context.executeAcitvationId(nextActivation); |
201 | 203 | ||
202 | visualiseCurrentState(); | 204 | visualiseCurrentState(); |
203 | // for(ViatraQueryMatcher<? extends IPatternMatch> matcher : matchers) { | 205 | // for(ViatraQueryMatcher<? extends IPatternMatch> matcher : matchers) { |
204 | // System.out.println(matcher.getPatternName()); | 206 | // System.out.println(matcher.getPatternName()); |
@@ -209,6 +211,9 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { | |||
209 | // System.out.println("---------"); | 211 | // System.out.println("---------"); |
210 | // } | 212 | // } |
211 | 213 | ||
214 | //calculate the metrics for each state | ||
215 | logCurrentStateMetric(); | ||
216 | |||
212 | boolean consistencyCheckResult = checkConsistency(currentTrajectoryWithFittness); | 217 | boolean consistencyCheckResult = checkConsistency(currentTrajectoryWithFittness); |
213 | if(consistencyCheckResult == true) { continue mainLoop; } | 218 | if(consistencyCheckResult == true) { continue mainLoop; } |
214 | 219 | ||
@@ -248,7 +253,6 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { | |||
248 | } | 253 | } |
249 | } | 254 | } |
250 | } | 255 | } |
251 | |||
252 | logger.debug("State is fully traversed."); | 256 | logger.debug("State is fully traversed."); |
253 | trajectoiresToExplore.remove(currentTrajectoryWithFittness); | 257 | trajectoiresToExplore.remove(currentTrajectoryWithFittness); |
254 | currentTrajectoryWithFittness = null; | 258 | currentTrajectoryWithFittness = null; |
@@ -309,6 +313,15 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { | |||
309 | return trajectoiresToExplore.element(); | 313 | return trajectoiresToExplore.element(); |
310 | } | 314 | } |
311 | } | 315 | } |
316 | |||
317 | private void logCurrentStateMetric() { | ||
318 | if(this.configuration.documentationLevel != DocumentationLevel.METRICS || workspace == null) { | ||
319 | return; | ||
320 | } | ||
321 | |||
322 | PartialInterpretation interpretation = (PartialInterpretation)context.getModel(); //pattern.get("interpretation"); | ||
323 | PartialInterpretationMetric.calculateMetric(interpretation, "debug/metric/" + context.getModel().hashCode(), context.getCurrentStateId().toString()); | ||
324 | } | ||
312 | 325 | ||
313 | public void visualiseCurrentState() { | 326 | public void visualiseCurrentState() { |
314 | PartialInterpretationVisualiser partialInterpretatioVisualiser = configuration.debugCongiguration.partialInterpretatioVisualiser; | 327 | PartialInterpretationVisualiser partialInterpretatioVisualiser = configuration.debugCongiguration.partialInterpretatioVisualiser; |