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 OszkarSemerath <oszkar.semerath@gmail.com>2018-03-03 02:02:21 -0500
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-03-03 02:02:21 -0500
commita575e7d063ef1776d620fe6318b8ba2f30d82a11 (patch)
tree98e252632ce04fc0ec80cd0e204f58dbcdb91130 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java
parent+SolverProcessMonitor to (optionally) report process and request cancel (diff)
downloadVIATRA-Generator-a575e7d063ef1776d620fe6318b8ba2f30d82a11.tar.gz
VIATRA-Generator-a575e7d063ef1776d620fe6318b8ba2f30d82a11.tar.zst
VIATRA-Generator-a575e7d063ef1776d620fe6318b8ba2f30d82a11.zip
ViatraSolver reports progress and stops at cancel
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.java11
1 files changed, 3 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 f7a840f0..63697887 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
@@ -25,22 +25,16 @@ import org.eclipse.viatra.dse.base.ThreadContext;
25import org.eclipse.viatra.dse.objectives.Fitness; 25import org.eclipse.viatra.dse.objectives.Fitness;
26import org.eclipse.viatra.dse.objectives.ObjectiveComparatorHelper; 26import org.eclipse.viatra.dse.objectives.ObjectiveComparatorHelper;
27import org.eclipse.viatra.dse.solutionstore.SolutionStore; 27import org.eclipse.viatra.dse.solutionstore.SolutionStore;
28import org.eclipse.xtend.lib.annotations.AccessorType;
29import org.eclipse.xtend.lib.annotations.Accessors;
30 28
31import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 29import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
32import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration;
33import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 30import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
34import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.InconsistencyResult; 31import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.InconsistencyResult;
35import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; 32import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
36import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; 33import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
37import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.PartialInterpretation2Logic; 34import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.PartialInterpretation2Logic;
38import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; 35import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
39import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml;
40import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation; 36import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation;
41import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser; 37import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualiser;
42import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.DebugConfiguration;
43import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.DiversityDescriptor;
44import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration; 38import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration;
45import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; 39import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
46 40
@@ -138,7 +132,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
138 TrajectoryWithFitness currentTrajectoryWithFittness = new TrajectoryWithFitness(firstTrajectory, firstFittness); 132 TrajectoryWithFitness currentTrajectoryWithFittness = new TrajectoryWithFitness(firstTrajectory, firstFittness);
139 trajectoiresToExplore.add(currentTrajectoryWithFittness); 133 trajectoiresToExplore.add(currentTrajectoryWithFittness);
140 134
141 mainLoop: while (!isInterrupted) { 135 mainLoop: while (!isInterrupted && !configuration.progressMonitor.isCancelled()) {
142 136
143 if (currentTrajectoryWithFittness == null) { 137 if (currentTrajectoryWithFittness == null) {
144 if (trajectoiresToExplore.isEmpty()) { 138 if (trajectoiresToExplore.isEmpty()) {
@@ -163,7 +157,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
163 List<Object> activationIds = selectActivation(); 157 List<Object> activationIds = selectActivation();
164 Iterator<Object> iterator = activationIds.iterator(); 158 Iterator<Object> iterator = activationIds.iterator();
165 159
166 while (!isInterrupted && iterator.hasNext()) { 160 while (!isInterrupted && !configuration.progressMonitor.isCancelled() && iterator.hasNext()) {
167 final Object nextActivation = iterator.next(); 161 final Object nextActivation = iterator.next();
168// if (!iterator.hasNext()) { 162// if (!iterator.hasNext()) {
169// logger.debug("Last untraversed activation of the state."); 163// logger.debug("Last untraversed activation of the state.");
@@ -239,6 +233,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
239 solutionStoreWithCopy.newSolution(context); 233 solutionStoreWithCopy.newSolution(context);
240 solutionStoreWithDiversityDescriptor.newSolution(context); 234 solutionStoreWithDiversityDescriptor.newSolution(context);
241 solutionStore.newSolution(context); 235 solutionStore.newSolution(context);
236 configuration.progressMonitor.workedModelFound(configuration.solutionScope.numberOfRequiredSolution);
242 237
243 logger.debug("Found a solution."); 238 logger.debug("Found a solution.");
244 } 239 }