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 | 13 |
1 files changed, 9 insertions, 4 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 b58033d7..fd871615 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 | |||
@@ -28,11 +28,13 @@ import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.LoggerSolutionFoundH | |||
28 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.ModelGenerationCompositeObjective | 28 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.ModelGenerationCompositeObjective |
29 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.NumericSolver | 29 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.NumericSolver |
30 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PartialModelAsLogicInterpretation | 30 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PartialModelAsLogicInterpretation |
31 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PunishSizeObjective | ||
31 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.ScopeObjective | 32 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.ScopeObjective |
32 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.SurelyViolatedObjectiveGlobalConstraint | 33 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.SurelyViolatedObjectiveGlobalConstraint |
33 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.UnfinishedMultiplicityObjective | 34 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.UnfinishedMultiplicityObjective |
34 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.ViatraReasonerSolutionSaver | 35 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.ViatraReasonerSolutionSaver |
35 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.WF2ObjectiveConverter | 36 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.WF2ObjectiveConverter |
37 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ObjectiveKind | ||
36 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ThreeValuedCostElement | 38 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ThreeValuedCostElement |
37 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ThreeValuedCostObjective | 39 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.optimization.ThreeValuedCostObjective |
38 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | 40 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace |
@@ -43,7 +45,6 @@ import org.eclipse.viatra.dse.api.DesignSpaceExplorer | |||
43 | import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel | 45 | import org.eclipse.viatra.dse.api.DesignSpaceExplorer.DseLoggingLevel |
44 | import org.eclipse.viatra.dse.solutionstore.SolutionStore | 46 | import org.eclipse.viatra.dse.solutionstore.SolutionStore |
45 | import org.eclipse.viatra.dse.statecode.IStateCoderFactory | 47 | import org.eclipse.viatra.dse.statecode.IStateCoderFactory |
46 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse.PunishSizeObjective | ||
47 | 48 | ||
48 | class ViatraReasoner extends LogicReasoner { | 49 | class ViatraReasoner extends LogicReasoner { |
49 | val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser() | 50 | val PartialInterpretationInitialiser initialiser = new PartialInterpretationInitialiser() |
@@ -100,9 +101,13 @@ class ViatraReasoner extends LogicReasoner { | |||
100 | viatraConfig | 101 | viatraConfig |
101 | ) | 102 | ) |
102 | dse.addObjective(compositeObjective) | 103 | dse.addObjective(compositeObjective) |
103 | if (viatraConfig.punishSize) { | 104 | if (viatraConfig.punishSize != PunishSizeStrategy.NONE) { |
104 | val punishObjective = new PunishSizeObjective | 105 | val punishSizeStrategy = switch (viatraConfig.punishSize) { |
105 | punishObjective.level = compositeObjective.level + 1 | 106 | case SMALLER_IS_BETTER: ObjectiveKind.LOWER_IS_BETTER |
107 | case LARGER_IS_BETTER: ObjectiveKind.HIGHER_IS_BETTER | ||
108 | default: throw new IllegalArgumentException("Unknown PunishSizeStrategy: " + viatraConfig.punishSize) | ||
109 | } | ||
110 | val punishObjective = new PunishSizeObjective(punishSizeStrategy, compositeObjective.level + 1) | ||
106 | dse.addObjective(punishObjective) | 111 | dse.addObjective(punishObjective) |
107 | } | 112 | } |
108 | 113 | ||