diff options
author | Kristóf Marussy <kris7topher@gmail.com> | 2019-10-29 17:33:15 +0100 |
---|---|---|
committer | Kristóf Marussy <kris7topher@gmail.com> | 2019-10-29 17:33:15 +0100 |
commit | 6dca5681757fef7d65ffa051ff59ba8332c74a83 (patch) | |
tree | 5aff31bf64cd8143760ac9e65c25baaae67d7e33 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu | |
parent | Alloy cardinality fixes (diff) | |
download | VIATRA-Generator-6dca5681757fef7d65ffa051ff59ba8332c74a83.tar.gz VIATRA-Generator-6dca5681757fef7d65ffa051ff59ba8332c74a83.tar.zst VIATRA-Generator-6dca5681757fef7d65ffa051ff59ba8332c74a83.zip |
Polyhedron solver SAT fix and initial scope filtering
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu')
2 files changed, 7 insertions, 1 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/CbcPolyhedronSolver.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/CbcPolyhedronSolver.xtend index 75c396b4..708f93dc 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/CbcPolyhedronSolver.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/CbcPolyhedronSolver.xtend | |||
@@ -193,7 +193,11 @@ class CbcSaturationOperator extends AbstractPolyhedronSaturationOperator { | |||
193 | setBound(expressionToSaturate, constraints, Double.POSITIVE_INFINITY, columnUpperBounds, rowUpperBounds) | 193 | setBound(expressionToSaturate, constraints, Double.POSITIVE_INFINITY, columnUpperBounds, rowUpperBounds) |
194 | } | 194 | } |
195 | case CbcResult.UNSAT: | 195 | case CbcResult.UNSAT: |
196 | throw new RuntimeException("Minimization was SAT, but maximization is UNSAT") | 196 | if (lpRelaxation) { |
197 | return PolyhedronSaturationResult.EMPTY | ||
198 | } else { | ||
199 | throw new RuntimeException("Minimization was SAT, but maximization is UNSAT") | ||
200 | } | ||
197 | case CbcResult.ABANDONED, | 201 | case CbcResult.ABANDONED, |
198 | case CbcResult.TIMEOUT: | 202 | case CbcResult.TIMEOUT: |
199 | return PolyhedronSaturationResult.UNKNOWN | 203 | return PolyhedronSaturationResult.UNKNOWN |
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/RelationConstraintCalculator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/RelationConstraintCalculator.xtend index c92260ea..3e4fea8a 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/RelationConstraintCalculator.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/cardinality/RelationConstraintCalculator.xtend | |||
@@ -44,6 +44,8 @@ class RelationMultiplicityConstraint { | |||
44 | } | 44 | } |
45 | 45 | ||
46 | def constrainsUnrepairable() { | 46 | def constrainsUnrepairable() { |
47 | // TODO Optimize the unrepairable matches computation, | ||
48 | // or come up with a heuristic when does computing unrepairables worth the overhead. | ||
47 | constrainsUnfinished && canHaveMultipleSourcesPerTarget && false | 49 | constrainsUnfinished && canHaveMultipleSourcesPerTarget && false |
48 | } | 50 | } |
49 | 51 | ||