Copyright | (c) Junaid Rasheed 2021-2022 |
---|---|
License | MPL |
Maintainer | jrasheed178@gmail.com |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Module defining linearisations for conjunctions of ESafe
terms.
Synopsis
- removeConjunctionUnsatAreaWithSimplex :: [(CN MPBall, CN MPBall, Box)] -> VarMap -> (Maybe Bool, Maybe VarMap)
- findConjunctionSatAreaWithSimplex :: [(CN MPBall, CN MPBall, Box)] -> VarMap -> Bool -> Maybe VarMap
- createConstraintsToRemoveConjunctionUnsatArea :: [(CN MPBall, CN MPBall, Box)] -> VarMap -> [Constraint]
- createConstraintsToFindSatSolution :: [(CN MPBall, CN MPBall, Box)] -> VarMap -> Bool -> [Constraint]
Documentation
removeConjunctionUnsatAreaWithSimplex Source #
:: [(CN MPBall, CN MPBall, Box)] | A list of values needed to linearise each term in the conjunction.
In each triple, the first item is the value of the term from the |
-> VarMap | The VarMap over which we are examining the conjunction. |
-> (Maybe Bool, Maybe VarMap) | The result of the simplex method on the resulting linear system.
(Just False, Nothing) is returned if the system is infeasible.
(Nothing, Just newArea) is returned if the system is feasible: newArea is an optimisation of the given |
Remove unsat areas from a conjunction arising from a DNF by weakening the conjunction using createConstraintsToRemoveConjunctionUnsatArea
.
The resulting linear system is solved and optimised by the two-phase simplex method.
If the linear system is infeasible, the entire conjunction was unsatisfiable.
findConjunctionSatAreaWithSimplex Source #
:: [(CN MPBall, CN MPBall, Box)] | A list of values needed to linearise each term in the conjunction.
In each triple, the first item is the value of the term from the |
-> VarMap | The VarMap over which we are examining the conjunction. |
-> Bool | A boolean used to determine which |
-> Maybe VarMap | The result. If this is Nothing, no satisfiable point was found. |
Find a satisfiable point from a conjunction arising from a DNF by strengthening the conjunction using createConstraintsToFindSatSolution
.
The resulting linear system is solved by the first phase of the two-phase simplex method.
createConstraintsToRemoveConjunctionUnsatArea Source #
:: [(CN MPBall, CN MPBall, Box)] | A list of values needed to linearise each term in the conjunction.
In each triple, the first item is the value of the term from the |
-> VarMap | The VarMap over which we are examining the conjunction. |
-> [Constraint] | An implicit linear system that is a weakening of the conjunction. |
Linearisations that weaken a conjunction of terms over some box.
createConstraintsToFindSatSolution Source #
:: [(CN MPBall, CN MPBall, Box)] | A list of values needed to linearise each term in the conjunction.
In each triple, the first item is the value of the term from the |
-> VarMap | The VarMap over which we are examining the conjunction. |
-> Bool | A boolean used to determine which |
-> [Constraint] | An implicit linear system that is a weakening of the conjunction. |
Linearisations that strengthen a conjunction of terms over some box.