aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-06-25 00:16:48 +0200
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-06-25 00:16:48 +0200
commit6bd475a3eced9d9a912f76e24f91d2ad8da13d54 (patch)
tree66b3fbfb52e204d605225d1eac7e371eecea791e /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner
parentFixing multiple "true" and "false" objects (diff)
downloadVIATRA-Generator-6bd475a3eced9d9a912f76e24f91d2ad8da13d54.tar.gz
VIATRA-Generator-6bd475a3eced9d9a912f76e24f91d2ad8da13d54.tar.zst
VIATRA-Generator-6bd475a3eced9d9a912f76e24f91d2ad8da13d54.zip
Fixing multiple true/false + bug preventing generation without PS
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend5
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/BestFirstStrategyForModelGeneration.java35
2 files changed, 30 insertions, 10 deletions
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 45379e36..378adf65 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
@@ -1,5 +1,6 @@
1package hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner 1package hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner
2 2
3import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
3import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner 4import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
4import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException 5import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException
5import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration 6import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
@@ -29,7 +30,6 @@ import org.eclipse.viatra.dse.api.DesignSpaceExplorer
29import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel 30import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel
30import org.eclipse.viatra.dse.solutionstore.SolutionStore 31import org.eclipse.viatra.dse.solutionstore.SolutionStore
31import org.eclipse.viatra.dse.statecode.IStateCoderFactory 32import org.eclipse.viatra.dse.statecode.IStateCoderFactory
32import javax.security.auth.login.Configuration.Parameters
33 33
34class ViatraReasoner extends LogicReasoner{ 34class ViatraReasoner extends LogicReasoner{
35 val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser() 35 val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser()
@@ -56,6 +56,9 @@ class ViatraReasoner extends LogicReasoner{
56 val transformationStartTime = System.nanoTime 56 val transformationStartTime = System.nanoTime
57 57
58 val emptySolution = initialiser.initialisePartialInterpretation(problem,viatraConfig.typeScopes).output 58 val emptySolution = initialiser.initialisePartialInterpretation(problem,viatraConfig.typeScopes).output
59 if(viatraConfig.documentationLevel == DocumentationLevel::FULL && workspace !== null) {
60 workspace.writeModel(emptySolution,"init.partialmodel")
61 }
59 emptySolution.problemConainer = problem 62 emptySolution.problemConainer = problem
60 63
61 val method = modelGenerationMethodProvider.createModelGenerationMethod( 64 val method = modelGenerationMethodProvider.createModelGenerationMethod(
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 7862262b..effc37f8 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 hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
35import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 36import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
36import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 37import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
37import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.InconsistencyResult; 38import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.InconsistencyResult;
@@ -113,12 +114,12 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
113 114
114 ViatraQueryEngine engine = context.getQueryEngine(); 115 ViatraQueryEngine engine = context.getQueryEngine();
115// // TODO: visualisation 116// // TODO: visualisation
116// matchers = new LinkedList<ViatraQueryMatcher<? extends IPatternMatch>>(); 117 matchers = new LinkedList<ViatraQueryMatcher<? extends IPatternMatch>>();
117// for(IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> p : this.method.getAllPatterns()) { 118 for(IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> p : this.method.getAllPatterns()) {
118// System.out.println(p.getSimpleName()); 119 //System.out.println(p.getSimpleName());
119// ViatraQueryMatcher<? extends IPatternMatch> matcher = p.getMatcher(engine); 120 ViatraQueryMatcher<? extends IPatternMatch> matcher = p.getMatcher(engine);
120// matchers.add(matcher); 121 matchers.add(matcher);
121// } 122 }
122 123
123 this.solutionStoreWithCopy = new SolutionStoreWithCopy(); 124 this.solutionStoreWithCopy = new SolutionStoreWithCopy();
124 this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement); 125 this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement);
@@ -152,7 +153,18 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
152 final Object[] firstTrajectory = context.getTrajectory().toArray(new Object[0]); 153 final Object[] firstTrajectory = context.getTrajectory().toArray(new Object[0]);
153 TrajectoryWithFitness currentTrajectoryWithFittness = new TrajectoryWithFitness(firstTrajectory, firstFittness); 154 TrajectoryWithFitness currentTrajectoryWithFittness = new TrajectoryWithFitness(firstTrajectory, firstFittness);
154 trajectoiresToExplore.add(currentTrajectoryWithFittness); 155 trajectoiresToExplore.add(currentTrajectoryWithFittness);
155 156
157 //if(configuration)
158 visualiseCurrentState();
159// for(ViatraQueryMatcher<? extends IPatternMatch> matcher : matchers) {
160// System.out.println(matcher.getPatternName());
161// System.out.println("---------");
162// for(IPatternMatch m : matcher.getAllMatches()) {
163// System.out.println(m);
164// }
165// System.out.println("---------");
166// }
167
156 mainLoop: while (!isInterrupted && !configuration.progressMonitor.isCancelled()) { 168 mainLoop: while (!isInterrupted && !configuration.progressMonitor.isCancelled()) {
157 169
158 if (currentTrajectoryWithFittness == null) { 170 if (currentTrajectoryWithFittness == null) {
@@ -189,7 +201,12 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
189 201
190 visualiseCurrentState(); 202 visualiseCurrentState();
191// for(ViatraQueryMatcher<? extends IPatternMatch> matcher : matchers) { 203// for(ViatraQueryMatcher<? extends IPatternMatch> matcher : matchers) {
192// System.out.println(matcher.getPatternName() + " - " + matcher.getAllValues("element")); 204// System.out.println(matcher.getPatternName());
205// System.out.println("---------");
206// for(IPatternMatch m : matcher.getAllMatches()) {
207// System.out.println(m);
208// }
209// System.out.println("---------");
193// } 210// }
194 211
195 boolean consistencyCheckResult = checkConsistency(currentTrajectoryWithFittness); 212 boolean consistencyCheckResult = checkConsistency(currentTrajectoryWithFittness);
@@ -295,7 +312,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy {
295 312
296 public void visualiseCurrentState() { 313 public void visualiseCurrentState() {
297 PartialInterpretationVisualiser partialInterpretatioVisualiser = configuration.debugCongiguration.partialInterpretatioVisualiser; 314 PartialInterpretationVisualiser partialInterpretatioVisualiser = configuration.debugCongiguration.partialInterpretatioVisualiser;
298 if(partialInterpretatioVisualiser != null) { 315 if(partialInterpretatioVisualiser != null && this.configuration.documentationLevel == DocumentationLevel.FULL && workspace != null) {
299 PartialInterpretation p = (PartialInterpretation) (context.getModel()); 316 PartialInterpretation p = (PartialInterpretation) (context.getModel());
300 int id = ++numberOfPrintedModel; 317 int id = ++numberOfPrintedModel;
301 if (id % configuration.debugCongiguration.partalInterpretationVisualisationFrequency == 0) { 318 if (id % configuration.debugCongiguration.partalInterpretationVisualisationFrequency == 0) {