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-06-14 16:17:45 +0200
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-06-14 16:17:45 +0200
commitb09c2d7aa73aeece866f0cfe65a8db25b5c58834 (patch)
treedc3c993cd4fcb441470162cf43f906d82549bb66 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java
parentSupport for updated partial model representation during generation (diff)
downloadVIATRA-Generator-b09c2d7aa73aeece866f0cfe65a8db25b5c58834.tar.gz
VIATRA-Generator-b09c2d7aa73aeece866f0cfe65a8db25b5c58834.tar.zst
VIATRA-Generator-b09c2d7aa73aeece866f0cfe65a8db25b5c58834.zip
Visualisation potentionally gets the patterns
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.java20
1 files changed, 18 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 63697887..63bd3b17 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,12 +25,17 @@ 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.viatra.query.runtime.api.IPatternMatch;
29import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
30import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
31import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
28 32
29import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 33import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
30import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 34import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
31import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.InconsistencyResult; 35import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.InconsistencyResult;
32import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; 36import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
33import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; 37import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
38import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod;
34import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.PartialInterpretation2Logic; 39import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.PartialInterpretation2Logic;
35import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; 40import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
36import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation; 41import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation;
@@ -59,6 +64,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
59 private ThreadContext context; 64 private ThreadContext context;
60 private ReasonerWorkspace workspace; 65 private ReasonerWorkspace workspace;
61 private ViatraReasonerConfiguration configuration; 66 private ViatraReasonerConfiguration configuration;
67 private ModelGenerationMethod method;
62 private PartialInterpretation2Logic partialInterpretation2Logic = new PartialInterpretation2Logic(); 68 private PartialInterpretation2Logic partialInterpretation2Logic = new PartialInterpretation2Logic();
63 private Comparator<TrajectoryWithFitness> comparator; 69 private Comparator<TrajectoryWithFitness> comparator;
64 private Logger logger = Logger.getLogger(IStrategy.class); 70 private Logger logger = Logger.getLogger(IStrategy.class);
@@ -79,10 +85,12 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
79 85
80 public BestFirstStrategyForModelGeneration( 86 public BestFirstStrategyForModelGeneration(
81 ReasonerWorkspace workspace, 87 ReasonerWorkspace workspace,
82 ViatraReasonerConfiguration configuration) 88 ViatraReasonerConfiguration configuration,
89 ModelGenerationMethod method)
83 { 90 {
84 this.workspace = workspace; 91 this.workspace = workspace;
85 this.configuration = configuration; 92 this.configuration = configuration;
93 this.method = method;
86 } 94 }
87 95
88 public SolutionStoreWithCopy getSolutionStoreWithCopy() { 96 public SolutionStoreWithCopy getSolutionStoreWithCopy() {
@@ -99,6 +107,14 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
99 public void initStrategy(ThreadContext context) { 107 public void initStrategy(ThreadContext context) {
100 this.context = context; 108 this.context = context;
101 this.solutionStore = context.getGlobalContext().getSolutionStore(); 109 this.solutionStore = context.getGlobalContext().getSolutionStore();
110
111 ViatraQueryEngine engine = context.getQueryEngine();
112 // TODO: visualisation
113// for(IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> p : this.method.getAllPatterns()) {
114// ViatraQueryMatcher<? extends IPatternMatch> matcher = p.getMatcher(engine);
115// matcher.getAllMatches();
116// }
117
102 this.solutionStoreWithCopy = new SolutionStoreWithCopy(); 118 this.solutionStoreWithCopy = new SolutionStoreWithCopy();
103 this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement); 119 this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement);
104 120
@@ -275,7 +291,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
275 int id = ++numberOfPrintedModel; 291 int id = ++numberOfPrintedModel;
276 if (id % configuration.debugCongiguration.partalInterpretationVisualisationFrequency == 0) { 292 if (id % configuration.debugCongiguration.partalInterpretationVisualisationFrequency == 0) {
277 PartialInterpretationVisualisation visualisation = partialInterpretatioVisualiser.visualiseConcretization(p); 293 PartialInterpretationVisualisation visualisation = partialInterpretatioVisualiser.visualiseConcretization(p);
278 visualisation.writeToFile(workspace, String.format("state%09d", id)); 294 visualisation.writeToFile(workspace, String.format("state%09d.png", id));
279 } 295 }
280 } 296 }
281 } 297 }