aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/ViatraReasoner.xtend
diff options
context:
space:
mode:
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.xtend12
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
43import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel 43import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel
44import org.eclipse.viatra.dse.solutionstore.SolutionStore 44import org.eclipse.viatra.dse.solutionstore.SolutionStore
45import org.eclipse.viatra.dse.statecode.IStateCoderFactory 45import org.eclipse.viatra.dse.statecode.IStateCoderFactory
46import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PunishSizeObjective
46 47
47class ViatraReasoner extends LogicReasoner { 48class 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) {