toysolver-0.4.0: Assorted decision procedures for SAT, Max-SAT, PB, MIP, etc

Copyright(c) Masahiro Sakai 2011-2014
LicenseBSD-style
Maintainermasahiro.sakai@gmail.com
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

ToySolver.Data.MIP.Base

Contents

Description

Mixed-Integer Programming Problems with some commmonly used extensions

Synopsis

Documentation

newtype Expr Source #

expressions

Constructors

Expr [Term] 

Instances

Eq Expr Source # 

Methods

(==) :: Expr -> Expr -> Bool #

(/=) :: Expr -> Expr -> Bool #

Num Expr Source # 

Methods

(+) :: Expr -> Expr -> Expr #

(-) :: Expr -> Expr -> Expr #

(*) :: Expr -> Expr -> Expr #

negate :: Expr -> Expr #

abs :: Expr -> Expr #

signum :: Expr -> Expr #

fromInteger :: Integer -> Expr #

Ord Expr Source # 

Methods

compare :: Expr -> Expr -> Ordering #

(<) :: Expr -> Expr -> Bool #

(<=) :: Expr -> Expr -> Bool #

(>) :: Expr -> Expr -> Bool #

(>=) :: Expr -> Expr -> Bool #

max :: Expr -> Expr -> Expr #

min :: Expr -> Expr -> Expr #

Show Expr Source # 

Methods

showsPrec :: Int -> Expr -> ShowS #

show :: Expr -> String #

showList :: [Expr] -> ShowS #

Variables Expr Source # 

Methods

vars :: Expr -> Set Var Source #

data Term Source #

terms

Constructors

Term Rational [Var] 

Instances

Eq Term Source # 

Methods

(==) :: Term -> Term -> Bool #

(/=) :: Term -> Term -> Bool #

Ord Term Source # 

Methods

compare :: Term -> Term -> Ordering #

(<) :: Term -> Term -> Bool #

(<=) :: Term -> Term -> Bool #

(>) :: Term -> Term -> Bool #

(>=) :: Term -> Term -> Bool #

max :: Term -> Term -> Term #

min :: Term -> Term -> Term #

Show Term Source # 

Methods

showsPrec :: Int -> Term -> ShowS #

show :: Term -> String #

showList :: [Term] -> ShowS #

Variables Term Source # 

Methods

vars :: Term -> Set Var Source #

data OptDir :: * #

The OptDir type represents optimization directions.

Constructors

OptMin

minimization

OptMax

maximization

Instances

Bounded OptDir 
Enum OptDir 
Eq OptDir 

Methods

(==) :: OptDir -> OptDir -> Bool #

(/=) :: OptDir -> OptDir -> Bool #

Data OptDir 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OptDir -> c OptDir #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OptDir #

toConstr :: OptDir -> Constr #

dataTypeOf :: OptDir -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c OptDir) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OptDir) #

gmapT :: (forall b. Data b => b -> b) -> OptDir -> OptDir #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OptDir -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OptDir -> r #

gmapQ :: (forall d. Data d => d -> u) -> OptDir -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> OptDir -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> OptDir -> m OptDir #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OptDir -> m OptDir #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OptDir -> m OptDir #

Ord OptDir 
Read OptDir 
Show OptDir 
Ix OptDir 
Hashable OptDir 

Methods

hashWithSalt :: Int -> OptDir -> Int #

hash :: OptDir -> Int #

(.==.) :: Expr -> Expr -> Constraint infix 4 Source #

(.<=.) :: Expr -> Expr -> Constraint infix 4 Source #

(.>=.) :: Expr -> Expr -> Constraint infix 4 Source #

type Bounds = (BoundExpr, BoundExpr) Source #

type for representing lower/upper bound of variables

type Label = String Source #

label

type Var = InternedString Source #

variable

type BoundExpr = Extended Rational Source #

type for representing lower/upper bound of variables

data Extended r :: * -> * #

Extended r is an extension of r with positive/negative infinity (±∞).

Constructors

NegInf

negative infinity (-∞)

Finite ~r

finite value

PosInf

positive infinity (+∞)

Instances

Functor Extended 

Methods

fmap :: (a -> b) -> Extended a -> Extended b #

(<$) :: a -> Extended b -> Extended a #

Bounded (Extended r) 
Eq r => Eq (Extended r) 

Methods

(==) :: Extended r -> Extended r -> Bool #

(/=) :: Extended r -> Extended r -> Bool #

(Fractional r, Ord r) => Fractional (Extended r)

Note that Extended r is not a field, nor a ring.

Data r => Data (Extended r) 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Extended r -> c (Extended r) #

gunfold :: (forall b a. Data b => c (b -> a) -> c a) -> (forall a. a -> c a) -> Constr -> c (Extended r) #

toConstr :: Extended r -> Constr #

dataTypeOf :: Extended r -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Extended r)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Extended r)) #

gmapT :: (forall b. Data b => b -> b) -> Extended r -> Extended r #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Extended r -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Extended r -> r #

gmapQ :: (forall d. Data d => d -> u) -> Extended r -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Extended r -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Extended r -> m (Extended r) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Extended r -> m (Extended r) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Extended r -> m (Extended r) #

(Num r, Ord r) => Num (Extended r)

Note that Extended r is not a field, nor a ring.

PosInf + NegInf is left undefined as usual, but we define 0 * PosInf = 0 * NegInf = 0 by following the convention of probability or measure theory.

Ord r => Ord (Extended r) 

Methods

compare :: Extended r -> Extended r -> Ordering #

(<) :: Extended r -> Extended r -> Bool #

(<=) :: Extended r -> Extended r -> Bool #

(>) :: Extended r -> Extended r -> Bool #

(>=) :: Extended r -> Extended r -> Bool #

max :: Extended r -> Extended r -> Extended r #

min :: Extended r -> Extended r -> Extended r #

Read r => Read (Extended r) 
Show r => Show (Extended r) 

Methods

showsPrec :: Int -> Extended r -> ShowS #

show :: Extended r -> String #

showList :: [Extended r] -> ShowS #

NFData r => NFData (Extended r) 

Methods

rnf :: Extended r -> () #

Hashable r => Hashable (Extended r) 

Methods

hashWithSalt :: Int -> Extended r -> Int #

hash :: Extended r -> Int #

data RelOp Source #

relational operators

Constructors

Le 
Ge 
Eql 

data SOSType Source #

types of SOS (special ordered sets) constraints

Constructors

S1

Type 1 SOS constraint

S2

Type 2 SOS constraint

defaultBounds :: Bounds Source #

default bounds

defaultLB :: BoundExpr Source #

default lower bound (0)

defaultUB :: BoundExpr Source #

default upper bound (+∞)

toVar :: String -> Var Source #

convert a string into a variable

fromVar :: Var -> String Source #

convert a variable into a string

getVarType :: Problem -> Var -> VarType Source #

looking up bounds for a variable

getBounds :: Problem -> Var -> Bounds Source #

looking up bounds for a variable

Utilities