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:
authorLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-17 01:35:57 +0200
committerLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-17 01:35:57 +0200
commitd03c841f2e4114a442deb08946c391c823745953 (patch)
tree334294a46f4b7bfe3aad8dbda368fb7ea5e5b6c0 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java
parentSetting delimier in every printing mode to ',' (diff)
downloadVIATRA-Generator-d03c841f2e4114a442deb08946c391c823745953.tar.gz
VIATRA-Generator-d03c841f2e4114a442deb08946c391c823745953.tar.zst
VIATRA-Generator-d03c841f2e4114a442deb08946c391c823745953.zip
detailed runtimes + counting defined objects only
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.java35
1 files changed, 27 insertions, 8 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 75ce7f10..710996a9 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
@@ -44,6 +44,7 @@ import hu.bme.mit.inf.dslreasoner.viatra2logic.NumericProblemSolver;
44import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod; 44import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod;
45import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.PartialInterpretation2Logic; 45import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.PartialInterpretation2Logic;
46import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; 46import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
47import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.statecoder.NeighbourhoodBasedPartialInterpretationStateCoder;
47import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation; 48import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation;
48import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser; 49import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser;
49import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration; 50import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration;
@@ -112,7 +113,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
112 public int getNumberOfStatecoderFail() { 113 public int getNumberOfStatecoderFail() {
113 return numberOfStatecoderFail; 114 return numberOfStatecoderFail;
114 } 115 }
115 116 //LinkedList<ViatraQueryMatcher<? extends IPatternMatch>> matchers;
116 @Override 117 @Override
117 public void initStrategy(ThreadContext context) { 118 public void initStrategy(ThreadContext context) {
118 this.context = context; 119 this.context = context;
@@ -120,7 +121,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
120 121
121// ViatraQueryEngine engine = context.getQueryEngine(); 122// ViatraQueryEngine engine = context.getQueryEngine();
122// // TODO: visualisation 123// // TODO: visualisation
123// LinkedList<ViatraQueryMatcher<? extends IPatternMatch>> matchers = new LinkedList<ViatraQueryMatcher<? extends IPatternMatch>>(); 124// matchers = new LinkedList<ViatraQueryMatcher<? extends IPatternMatch>>();
124// for(IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> p : this.method.getAllPatterns()) { 125// for(IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> p : this.method.getAllPatterns()) {
125// //System.out.println(p.getSimpleName()); 126// //System.out.println(p.getSimpleName());
126// ViatraQueryMatcher<? extends IPatternMatch> matcher = p.getMatcher(engine); 127// ViatraQueryMatcher<? extends IPatternMatch> matcher = p.getMatcher(engine);
@@ -213,12 +214,11 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
213 214
214 visualiseCurrentState(); 215 visualiseCurrentState();
215// for(ViatraQueryMatcher<? extends IPatternMatch> matcher : matchers) { 216// for(ViatraQueryMatcher<? extends IPatternMatch> matcher : matchers) {
216// System.out.println(matcher.getPatternName()); 217// int c = matcher.countMatches();
217// System.out.println("---------"); 218// if(c>=100) {
218// for(IPatternMatch m : matcher.getAllMatches()) { 219// System.out.println(c+ " " +matcher.getPatternName());
219// System.out.println(m);
220// } 220// }
221// System.out.println("---------"); 221//
222// } 222// }
223 223
224 boolean consistencyCheckResult = checkConsistency(currentTrajectoryWithFittness); 224 boolean consistencyCheckResult = checkConsistency(currentTrajectoryWithFittness);
@@ -292,12 +292,31 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
292 solutionStoreWithDiversityDescriptor.newSolution(context); 292 solutionStoreWithDiversityDescriptor.newSolution(context);
293 solutionStore.newSolution(context); 293 solutionStore.newSolution(context);
294 configuration.progressMonitor.workedModelFound(configuration.solutionScope.numberOfRequiredSolution); 294 configuration.progressMonitor.workedModelFound(configuration.solutionScope.numberOfRequiredSolution);
295 295 saveTimes();
296 logger.debug("Found a solution."); 296 logger.debug("Found a solution.");
297 } 297 }
298 } 298 }
299 } 299 }
300 } 300 }
301 public List<String> times = new LinkedList<String>();
302 private void saveTimes() {
303 long statecoderTime = ((NeighbourhoodBasedPartialInterpretationStateCoder)this.context.getStateCoder()).getStatecoderRuntime()/1000000;
304 long solutionCopy = solutionStoreWithCopy.getSumRuntime()/1000000;
305 long activationSelection = this.activationSelector.getRuntime()/1000000;
306 long numericalSolverSumTime = this.numericSolver.getRuntime()/1000000;
307 long numericalSolverProblemForming = this.numericSolver.getSolverSolvingProblem()/1000000;
308 long numericalSolverSolving = this.numericSolver.getSolverSolvingProblem()/1000000;
309 long numericalSolverInterpreting = this.numericSolver.getSolverSolution()/1000000;
310 this.times.add(
311 "(StateCoderTime:"+statecoderTime+
312 "|SolutionCopyTime:"+solutionCopy+
313 "|ActivationSelectionTime:"+activationSelection+
314 "|NumericalSolverSumTime:"+numericalSolverSumTime+
315 "|NumericalSolverProblemFormingTime:"+numericalSolverProblemForming+
316 "|NumericalSolverSolvingTime:"+numericalSolverSolving+
317 "|NumericalSolverInterpretingSolution:"+numericalSolverInterpreting+")");
318
319 }
301 320
302 @Override 321 @Override
303 public void interruptStrategy() { 322 public void interruptStrategy() {