aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java
diff options
context:
space:
mode:
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.java17
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;
32import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; 32import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
33import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; 33import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
34 34
35import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.PartialInterpretationMetric;
35import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; 36import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
36import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 37import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
37import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 38import 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;