diff options
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend')
-rw-r--r-- | Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend | 12 |
1 files changed, 10 insertions, 2 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 b9056685..b58033d7 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 | |||
@@ -43,6 +43,7 @@ import org.eclipse.viatra.dse.api.DesignSpaceExplorer | |||
43 | import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel | 43 | import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel |
44 | import org.eclipse.viatra.dse.solutionstore.SolutionStore | 44 | import org.eclipse.viatra.dse.solutionstore.SolutionStore |
45 | import org.eclipse.viatra.dse.statecode.IStateCoderFactory | 45 | import org.eclipse.viatra.dse.statecode.IStateCoderFactory |
46 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PunishSizeObjective | ||
46 | 47 | ||
47 | class ViatraReasoner extends LogicReasoner { | 48 | class ViatraReasoner extends LogicReasoner { |
48 | val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser() | 49 | val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser() |
@@ -86,17 +87,24 @@ class ViatraReasoner extends LogicReasoner { | |||
86 | workspace, | 87 | workspace, |
87 | viatraConfig.nameNewElements, | 88 | viatraConfig.nameNewElements, |
88 | viatraConfig.typeInferenceMethod, | 89 | viatraConfig.typeInferenceMethod, |
90 | viatraConfig.calculateObjectCreationCosts, | ||
89 | viatraConfig.scopePropagatorStrategy, | 91 | viatraConfig.scopePropagatorStrategy, |
90 | viatraConfig.hints, | 92 | viatraConfig.hints, |
91 | viatraConfig.documentationLevel | 93 | viatraConfig.documentationLevel |
92 | ) | 94 | ) |
93 | 95 | ||
94 | dse.addObjective(new ModelGenerationCompositeObjective( | 96 | val compositeObjective = new ModelGenerationCompositeObjective( |
95 | basicScopeGlobalConstraint ?: new ScopeObjective, | 97 | basicScopeGlobalConstraint ?: new ScopeObjective, |
96 | method.unfinishedMultiplicities.map[new UnfinishedMultiplicityObjective(it)], | 98 | method.unfinishedMultiplicities.map[new UnfinishedMultiplicityObjective(it)], |
97 | wf2ObjectiveConverter.createCompletenessObjective(method.unfinishedWF), | 99 | wf2ObjectiveConverter.createCompletenessObjective(method.unfinishedWF), |
98 | viatraConfig | 100 | viatraConfig |
99 | )) | 101 | ) |
102 | dse.addObjective(compositeObjective) | ||
103 | if (viatraConfig.punishSize) { | ||
104 | val punishObjective = new PunishSizeObjective | ||
105 | punishObjective.level = compositeObjective.level + 1 | ||
106 | dse.addObjective(punishObjective) | ||
107 | } | ||
100 | 108 | ||
101 | val extremalObjectives = Lists.newArrayListWithExpectedSize(viatraConfig.costObjectives.size) | 109 | val extremalObjectives = Lists.newArrayListWithExpectedSize(viatraConfig.costObjectives.size) |
102 | for (entry : viatraConfig.costObjectives.indexed) { | 110 | for (entry : viatraConfig.costObjectives.indexed) { |