From 4fe7fce97aedbd516109ef81afc33e00112b7b68 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 28 Aug 2020 18:58:37 +0200 Subject: Must unit propagation --- .../viatrasolver/logic2viatra/patterns/PatternProvider.xtend | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend index 21fd1989..2e786286 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend @@ -38,7 +38,8 @@ import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* public IQuerySpecification> hasElementInContainmentQuery public Map>> refineObjectQueries public Map>> refineTypeQueries - public Map, IQuerySpecification>> refinerelationQueries + public Map, IQuerySpecification>> refineRelationQueries + public Map, IQuerySpecification>> mustRelationPropagationQueries public Map>> mustUnitPropagationPreconditionPatterns public Map>> currentUnitPropagationPreconditionPatterns public Map modalRelationQueries @@ -70,7 +71,6 @@ class UnifinishedMultiplicityQueries { } class PatternProvider { - val TypeAnalysis typeAnalysis = new TypeAnalysis def generateQueries(LogicProblem problem, PartialInterpretation emptySolution, ModelGenerationStatistics statistics, @@ -98,7 +98,8 @@ class PatternProvider { val generatedQueries = parseUtil.parse(patternGeneratorResult.patternText) val runtimeQueries = calclulateRuntimeQueries(patternGenerator, problem, emptySolution, typeAnalysisResult, patternGeneratorResult.constraint2MustPreconditionName, - patternGeneratorResult.constraint2CurrentPreconditionName, relationConstraints, generatedQueries) + patternGeneratorResult.constraint2CurrentPreconditionName, relationConstraints, + unitPropagationPatternGenerators, generatedQueries) return runtimeQueries } @@ -110,6 +111,7 @@ class PatternProvider { HashMap mustUnitPropagationTrace, HashMap currentUnitPropagationTrace, RelationConstraints relationConstraints, + Collection unitPropagationPatternGenerators, Map>> queries ) { val Map>> invalidWFQueries = patternGenerator. @@ -136,6 +138,8 @@ class PatternProvider { ] val Map, IQuerySpecification>> refineRelationQueries = patternGenerator. relationRefinementGenerator.getRefineRelationQueries(problem).mapValues[it.lookup(queries)] + val Map, IQuerySpecification>> mustRelationPropagationQueries = patternGenerator. + relationRefinementGenerator.getMustPropagationQueries(problem, unitPropagationPatternGenerators).mapValues[it.lookup(queries)] val Map>> mustUnitPropagationPreconditionPatterns = mustUnitPropagationTrace. mapValues[it.lookup(queries)] val Map>> currentUnitPropagationPreconditionPatterns = currentUnitPropagationTrace. @@ -158,6 +162,7 @@ class PatternProvider { refineObjectsQueries, refineTypeQueries, refineRelationQueries, + mustRelationPropagationQueries, mustUnitPropagationPreconditionPatterns, currentUnitPropagationPreconditionPatterns, modalRelationQueries, -- cgit v1.2.3-70-g09d2