Copyright | (c) Andrew Lelechenko, 2014-2015 |
---|---|
License | GPL-3 |
Maintainer | andrew.lelechenko@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell98 |
Package implements an algorithm to minimize the maximum of a list of rational objective functions over the set of exponent pairs. See full description in A. V. Lelechenko, Linear programming over exponent pairs. Acta Univ. Sapientiae, Inform. 5, No. 2, 271-287 (2013). http://www.acta.sapientia.ro/acta-info/C5-2/info52-7.pdf
A set of useful applications can be found in Math.ExpPairs.Ivic, Math.ExpPairs.Kratzel and Math.ExpPairs.MenzerNowak.
- optimize :: [RationalForm Rational] -> [Constraint Rational] -> OptimizeResult
- data OptimizeResult
- optimalValue :: OptimizeResult -> RationalInf
- optimalPair :: OptimizeResult -> InitPair
- optimalPath :: OptimizeResult -> Path
- simulateOptimize :: Rational -> OptimizeResult
- simulateOptimize' :: RationalInf -> OptimizeResult
- data LinearForm t = LinearForm t t t
- data RationalForm t = RationalForm (LinearForm t) (LinearForm t)
- data IneqType
- data Constraint t = Constraint (LinearForm t) IneqType
- type InitPair = InitPair' Rational
- data Path
- data RatioInf t
- type RationalInf = RatioInf Integer
Documentation
optimize :: [RationalForm Rational] -> [Constraint Rational] -> OptimizeResult Source
This function takes a list of rational forms and a list of constraints and returns an exponent pair, which satisfies all constraints and minimizes the maximum of all rational forms.
data OptimizeResult Source
Container for the result of optimization.
optimalValue :: OptimizeResult -> RationalInf Source
The minimal value of objective function.
optimalPair :: OptimizeResult -> InitPair Source
The initial exponent pair, on which minimal value was achieved.
optimalPath :: OptimizeResult -> Path Source
The sequence of processes, after which minimal value was achieved.
simulateOptimize :: Rational -> OptimizeResult Source
Wrap Rational
into OptimizeResult
.
simulateOptimize' :: RationalInf -> OptimizeResult Source
Wrap RationalInf
into OptimizeResult
.
data LinearForm t Source
Define an affine linear form of two variables: a*k + b*l + c*m.
First argument of LinearForm
stands for a, second for b
and third for c. Linear forms form a monoid by addition.
LinearForm t t t |
Eq t => Eq (LinearForm t) | |
Num t => Num (LinearForm t) | |
(Num t, Eq t, Show t) => Show (LinearForm t) | |
Num t => Monoid (LinearForm t) |
data RationalForm t Source
Define a rational form of two variables, equal to the ratio of two LinearForm
.
RationalForm (LinearForm t) (LinearForm t) |
Num t => Fractional (RationalForm t) | |
Num t => Num (RationalForm t) | |
(Eq t, Num t, Show t) => Show (RationalForm t) |
Constants to specify the strictness of Constraint
.
data Constraint t Source
A linear constraint of two variables.
(Eq t, Num t, Show t) => Show (Constraint t) |
Extends a rational type with positive and negative infinities.
type RationalInf = RatioInf Integer Source
Arbitrary-precision rational numbers with positive and negative infinities.