From b09c2d7aa73aeece866f0cfe65a8db25b5c58834 Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Thu, 14 Jun 2018 16:17:45 +0200 Subject: Visualisation potentionally gets the patterns --- .../viatrasolver/reasoner/ViatraReasoner.xtend | 2 +- .../dse/BestFirstStrategyForModelGeneration.java | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend index 198beabb..45379e36 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend @@ -99,7 +99,7 @@ class ViatraReasoner extends LogicReasoner{ dse.addTransformationRule(rule) } - val strategy = new BestFirstStrategyForModelGeneration(workspace,viatraConfig) + val strategy = new BestFirstStrategyForModelGeneration(workspace,viatraConfig,method) viatraConfig.progressMonitor.workedForwardTransformation val transformationTime = System.nanoTime - transformationStartTime 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; import org.eclipse.viatra.dse.objectives.Fitness; import org.eclipse.viatra.dse.objectives.ObjectiveComparatorHelper; import org.eclipse.viatra.dse.solutionstore.SolutionStore; +import org.eclipse.viatra.query.runtime.api.IPatternMatch; +import org.eclipse.viatra.query.runtime.api.IQuerySpecification; +import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; +import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.InconsistencyResult; import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; +import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethod; import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.PartialInterpretation2Logic; import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation; @@ -59,6 +64,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { private ThreadContext context; private ReasonerWorkspace workspace; private ViatraReasonerConfiguration configuration; + private ModelGenerationMethod method; private PartialInterpretation2Logic partialInterpretation2Logic = new PartialInterpretation2Logic(); private Comparator comparator; private Logger logger = Logger.getLogger(IStrategy.class); @@ -79,10 +85,12 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { public BestFirstStrategyForModelGeneration( ReasonerWorkspace workspace, - ViatraReasonerConfiguration configuration) + ViatraReasonerConfiguration configuration, + ModelGenerationMethod method) { this.workspace = workspace; this.configuration = configuration; + this.method = method; } public SolutionStoreWithCopy getSolutionStoreWithCopy() { @@ -99,6 +107,14 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { public void initStrategy(ThreadContext context) { this.context = context; this.solutionStore = context.getGlobalContext().getSolutionStore(); + + ViatraQueryEngine engine = context.getQueryEngine(); + // TODO: visualisation +// for(IQuerySpecification> p : this.method.getAllPatterns()) { +// ViatraQueryMatcher matcher = p.getMatcher(engine); +// matcher.getAllMatches(); +// } + this.solutionStoreWithCopy = new SolutionStoreWithCopy(); this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement); @@ -275,7 +291,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { int id = ++numberOfPrintedModel; if (id % configuration.debugCongiguration.partalInterpretationVisualisationFrequency == 0) { PartialInterpretationVisualisation visualisation = partialInterpretatioVisualiser.visualiseConcretization(p); - visualisation.writeToFile(workspace, String.format("state%09d", id)); + visualisation.writeToFile(workspace, String.format("state%09d.png", id)); } } } -- cgit v1.2.3-54-g00ecf