From 6bd475a3eced9d9a912f76e24f91d2ad8da13d54 Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Mon, 25 Jun 2018 00:16:48 +0200 Subject: Fixing multiple true/false + bug preventing generation without PS --- .../viatrasolver/reasoner/ViatraReasoner.xtend | 5 +++- .../dse/BestFirstStrategyForModelGeneration.java | 35 ++++++++++++++++------ 2 files changed, 30 insertions(+), 10 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/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 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 @@ package hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner +import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration @@ -29,7 +30,6 @@ import org.eclipse.viatra.dse.api.DesignSpaceExplorer import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel import org.eclipse.viatra.dse.solutionstore.SolutionStore import org.eclipse.viatra.dse.statecode.IStateCoderFactory -import javax.security.auth.login.Configuration.Parameters class ViatraReasoner extends LogicReasoner{ val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser() @@ -56,6 +56,9 @@ class ViatraReasoner extends LogicReasoner{ val transformationStartTime = System.nanoTime val emptySolution = initialiser.initialisePartialInterpretation(problem,viatraConfig.typeScopes).output + if(viatraConfig.documentationLevel == DocumentationLevel::FULL && workspace !== null) { + workspace.writeModel(emptySolution,"init.partialmodel") + } emptySolution.problemConainer = problem 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; 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.DocumentationLevel; 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; @@ -113,12 +114,12 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { ViatraQueryEngine engine = context.getQueryEngine(); // // TODO: visualisation -// matchers = new LinkedList>(); -// for(IQuerySpecification> p : this.method.getAllPatterns()) { -// System.out.println(p.getSimpleName()); -// ViatraQueryMatcher matcher = p.getMatcher(engine); -// matchers.add(matcher); -// } + matchers = new LinkedList>(); + for(IQuerySpecification> p : this.method.getAllPatterns()) { + //System.out.println(p.getSimpleName()); + ViatraQueryMatcher matcher = p.getMatcher(engine); + matchers.add(matcher); + } this.solutionStoreWithCopy = new SolutionStoreWithCopy(); this.solutionStoreWithDiversityDescriptor = new SolutionStoreWithDiversityDescriptor(configuration.diversityRequirement); @@ -152,7 +153,18 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { final Object[] firstTrajectory = context.getTrajectory().toArray(new Object[0]); TrajectoryWithFitness currentTrajectoryWithFittness = new TrajectoryWithFitness(firstTrajectory, firstFittness); trajectoiresToExplore.add(currentTrajectoryWithFittness); - + + //if(configuration) + visualiseCurrentState(); +// for(ViatraQueryMatcher matcher : matchers) { +// System.out.println(matcher.getPatternName()); +// System.out.println("---------"); +// for(IPatternMatch m : matcher.getAllMatches()) { +// System.out.println(m); +// } +// System.out.println("---------"); +// } + mainLoop: while (!isInterrupted && !configuration.progressMonitor.isCancelled()) { if (currentTrajectoryWithFittness == null) { @@ -189,7 +201,12 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { visualiseCurrentState(); // for(ViatraQueryMatcher matcher : matchers) { -// System.out.println(matcher.getPatternName() + " - " + matcher.getAllValues("element")); +// System.out.println(matcher.getPatternName()); +// System.out.println("---------"); +// for(IPatternMatch m : matcher.getAllMatches()) { +// System.out.println(m); +// } +// System.out.println("---------"); // } boolean consistencyCheckResult = checkConsistency(currentTrajectoryWithFittness); @@ -295,7 +312,7 @@ public class BestFirstStrategyForModelGeneration implements IStrategy { public void visualiseCurrentState() { PartialInterpretationVisualiser partialInterpretatioVisualiser = configuration.debugCongiguration.partialInterpretatioVisualiser; - if(partialInterpretatioVisualiser != null) { + if(partialInterpretatioVisualiser != null && this.configuration.documentationLevel == DocumentationLevel.FULL && workspace != null) { PartialInterpretation p = (PartialInterpretation) (context.getModel()); int id = ++numberOfPrintedModel; if (id % configuration.debugCongiguration.partalInterpretationVisualisationFrequency == 0) { -- cgit v1.2.3-54-g00ecf