-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Library for using Mixed Integer Programming (MIP) -- -- Please see the README on GitHub at -- https://github.com/msakai/haskell-MIP/tree/master/MIP#readme @package MIP @version 0.1.0.0 -- | Mixed-Integer Programming Problems with some commmonly used extensions module Numeric.Optimization.MIP.Base -- | Problem data Problem c Problem :: Maybe Text -> ObjectiveFunction c -> [Constraint c] -> [SOSConstraint c] -> [Constraint c] -> Map Var VarType -> Map Var (Bounds c) -> Problem c [name] :: Problem c -> Maybe Text [objectiveFunction] :: Problem c -> ObjectiveFunction c [constraints] :: Problem c -> [Constraint c] [sosConstraints] :: Problem c -> [SOSConstraint c] [userCuts] :: Problem c -> [Constraint c] [varType] :: Problem c -> Map Var VarType [varBounds] :: Problem c -> Map Var (Bounds c) -- | label type Label = Text -- | variable type Var = InternedText -- | convert a string into a variable toVar :: String -> Var -- | convert a variable into a string fromVar :: Var -> String data VarType ContinuousVariable :: VarType IntegerVariable :: VarType SemiContinuousVariable :: VarType SemiIntegerVariable :: VarType -- | looking up bounds for a variable getVarType :: Problem c -> Var -> VarType -- | type for representing lower/upper bound of variables type BoundExpr c = Extended c -- | Extended r is an extension of r with positive/negative -- infinity (±∞). data Extended r -- | negative infinity (-∞) NegInf :: Extended r -- | finite value Finite :: !r -> Extended r -- | positive infinity (+∞) PosInf :: Extended r -- | type for representing lower/upper bound of variables type Bounds c = (BoundExpr c, BoundExpr c) -- | default bounds defaultBounds :: Num c => Bounds c -- | default lower bound (0) defaultLB :: Num c => BoundExpr c -- | default upper bound (+∞) defaultUB :: BoundExpr c -- | looking up bounds for a variable getBounds :: Num c => Problem c -> Var -> Bounds c variables :: Problem c -> Set Var integerVariables :: Problem c -> Set Var semiContinuousVariables :: Problem c -> Set Var semiIntegerVariables :: Problem c -> Set Var -- | expressions newtype Expr c Expr :: [Term c] -> Expr c varExpr :: Num c => Var -> Expr c constExpr :: (Eq c, Num c) => c -> Expr c terms :: Expr c -> [Term c] -- | terms data Term c Term :: c -> [Var] -> Term c -- | The OptDir type represents optimization directions. data OptDir -- | minimization OptMin :: OptDir -- | maximization OptMax :: OptDir -- | objective function data ObjectiveFunction c ObjectiveFunction :: Maybe Label -> OptDir -> Expr c -> ObjectiveFunction c [objLabel] :: ObjectiveFunction c -> Maybe Label [objDir] :: ObjectiveFunction c -> OptDir [objExpr] :: ObjectiveFunction c -> Expr c -- | constraint data Constraint c Constraint :: Maybe Label -> Maybe (Var, c) -> Expr c -> BoundExpr c -> BoundExpr c -> Bool -> Constraint c [constrLabel] :: Constraint c -> Maybe Label [constrIndicator] :: Constraint c -> Maybe (Var, c) [constrExpr] :: Constraint c -> Expr c [constrLB] :: Constraint c -> BoundExpr c [constrUB] :: Constraint c -> BoundExpr c [constrIsLazy] :: Constraint c -> Bool (.==.) :: Num c => Expr c -> Expr c -> Constraint c infix 4 .==. (.<=.) :: Num c => Expr c -> Expr c -> Constraint c infix 4 .<=. (.>=.) :: Num c => Expr c -> Expr c -> Constraint c infix 4 .>=. -- | relational operators data RelOp Le :: RelOp Ge :: RelOp Eql :: RelOp -- | types of SOS (special ordered sets) constraints data SOSType -- | Type 1 SOS constraint S1 :: SOSType -- | Type 2 SOS constraint S2 :: SOSType -- | SOS (special ordered sets) constraints data SOSConstraint c SOSConstraint :: Maybe Label -> SOSType -> [(Var, c)] -> SOSConstraint c [sosLabel] :: SOSConstraint c -> Maybe Label [sosType] :: SOSConstraint c -> SOSType [sosBody] :: SOSConstraint c -> [(Var, c)] data Solution r Solution :: Status -> Maybe r -> Map Var r -> Solution r [solStatus] :: Solution r -> Status [solObjectiveValue] :: Solution r -> Maybe r [solVariables] :: Solution r -> Map Var r -- | MIP status with the following partial order: -- data Status StatusUnknown :: Status StatusFeasible :: Status StatusOptimal :: Status StatusInfeasibleOrUnbounded :: Status StatusInfeasible :: Status StatusUnbounded :: Status meetStatus :: Status -> Status -> Status data FileOptions FileOptions :: Maybe TextEncoding -> FileOptions [optFileEncoding] :: FileOptions -> Maybe TextEncoding class Variables a vars :: Variables a => a -> Set Var intersectBounds :: Ord c => Bounds c -> Bounds c -> Bounds c instance GHC.Show.Show Numeric.Optimization.MIP.Base.FileOptions instance GHC.Show.Show r => GHC.Show.Show (Numeric.Optimization.MIP.Base.Solution r) instance GHC.Classes.Ord r => GHC.Classes.Ord (Numeric.Optimization.MIP.Base.Solution r) instance GHC.Classes.Eq r => GHC.Classes.Eq (Numeric.Optimization.MIP.Base.Solution r) instance GHC.Show.Show Numeric.Optimization.MIP.Base.Status instance GHC.Enum.Bounded Numeric.Optimization.MIP.Base.Status instance GHC.Enum.Enum Numeric.Optimization.MIP.Base.Status instance GHC.Classes.Ord Numeric.Optimization.MIP.Base.Status instance GHC.Classes.Eq Numeric.Optimization.MIP.Base.Status instance GHC.Classes.Ord c => GHC.Classes.Ord (Numeric.Optimization.MIP.Base.Problem c) instance GHC.Classes.Eq c => GHC.Classes.Eq (Numeric.Optimization.MIP.Base.Problem c) instance GHC.Show.Show c => GHC.Show.Show (Numeric.Optimization.MIP.Base.Problem c) instance GHC.Show.Show c => GHC.Show.Show (Numeric.Optimization.MIP.Base.SOSConstraint c) instance GHC.Classes.Ord c => GHC.Classes.Ord (Numeric.Optimization.MIP.Base.SOSConstraint c) instance GHC.Classes.Eq c => GHC.Classes.Eq (Numeric.Optimization.MIP.Base.SOSConstraint c) instance GHC.Read.Read Numeric.Optimization.MIP.Base.SOSType instance GHC.Show.Show Numeric.Optimization.MIP.Base.SOSType instance GHC.Enum.Enum Numeric.Optimization.MIP.Base.SOSType instance GHC.Classes.Ord Numeric.Optimization.MIP.Base.SOSType instance GHC.Classes.Eq Numeric.Optimization.MIP.Base.SOSType instance GHC.Show.Show Numeric.Optimization.MIP.Base.RelOp instance GHC.Enum.Enum Numeric.Optimization.MIP.Base.RelOp instance GHC.Classes.Ord Numeric.Optimization.MIP.Base.RelOp instance GHC.Classes.Eq Numeric.Optimization.MIP.Base.RelOp instance GHC.Show.Show c => GHC.Show.Show (Numeric.Optimization.MIP.Base.Constraint c) instance GHC.Classes.Ord c => GHC.Classes.Ord (Numeric.Optimization.MIP.Base.Constraint c) instance GHC.Classes.Eq c => GHC.Classes.Eq (Numeric.Optimization.MIP.Base.Constraint c) instance GHC.Show.Show c => GHC.Show.Show (Numeric.Optimization.MIP.Base.ObjectiveFunction c) instance GHC.Classes.Ord c => GHC.Classes.Ord (Numeric.Optimization.MIP.Base.ObjectiveFunction c) instance GHC.Classes.Eq c => GHC.Classes.Eq (Numeric.Optimization.MIP.Base.ObjectiveFunction c) instance GHC.Show.Show c => GHC.Show.Show (Numeric.Optimization.MIP.Base.Expr c) instance GHC.Classes.Ord c => GHC.Classes.Ord (Numeric.Optimization.MIP.Base.Expr c) instance GHC.Classes.Eq c => GHC.Classes.Eq (Numeric.Optimization.MIP.Base.Expr c) instance GHC.Show.Show c => GHC.Show.Show (Numeric.Optimization.MIP.Base.Term c) instance GHC.Classes.Ord c => GHC.Classes.Ord (Numeric.Optimization.MIP.Base.Term c) instance GHC.Classes.Eq c => GHC.Classes.Eq (Numeric.Optimization.MIP.Base.Term c) instance GHC.Show.Show Numeric.Optimization.MIP.Base.VarType instance GHC.Classes.Ord Numeric.Optimization.MIP.Base.VarType instance GHC.Classes.Eq Numeric.Optimization.MIP.Base.VarType instance Data.Default.Class.Default Numeric.Optimization.MIP.Base.FileOptions instance Numeric.Optimization.MIP.Base.Variables a => Numeric.Optimization.MIP.Base.Variables [a] instance (Numeric.Optimization.MIP.Base.Variables a, Numeric.Optimization.MIP.Base.Variables b) => Numeric.Optimization.MIP.Base.Variables (Data.Either.Either a b) instance Numeric.Optimization.MIP.Base.Variables (Numeric.Optimization.MIP.Base.Problem c) instance Numeric.Optimization.MIP.Base.Variables (Numeric.Optimization.MIP.Base.Expr c) instance Numeric.Optimization.MIP.Base.Variables (Numeric.Optimization.MIP.Base.Term c) instance Numeric.Optimization.MIP.Base.Variables (Numeric.Optimization.MIP.Base.ObjectiveFunction c) instance Numeric.Optimization.MIP.Base.Variables (Numeric.Optimization.MIP.Base.Constraint c) instance Numeric.Optimization.MIP.Base.Variables (Numeric.Optimization.MIP.Base.SOSConstraint c) instance GHC.Base.Functor Numeric.Optimization.MIP.Base.Solution instance Data.Default.Class.Default (Numeric.Optimization.MIP.Base.Solution r) instance Algebra.PartialOrd.PartialOrd Numeric.Optimization.MIP.Base.Status instance Data.Default.Class.Default (Numeric.Optimization.MIP.Base.Problem c) instance GHC.Base.Functor Numeric.Optimization.MIP.Base.Problem instance GHC.Base.Functor Numeric.Optimization.MIP.Base.SOSConstraint instance Data.Default.Class.Default (Numeric.Optimization.MIP.Base.Constraint c) instance GHC.Base.Functor Numeric.Optimization.MIP.Base.Constraint instance Data.Default.Class.Default (Numeric.Optimization.MIP.Base.ObjectiveFunction c) instance GHC.Base.Functor Numeric.Optimization.MIP.Base.ObjectiveFunction instance GHC.Num.Num c => GHC.Num.Num (Numeric.Optimization.MIP.Base.Expr c) instance GHC.Base.Functor Numeric.Optimization.MIP.Base.Expr instance GHC.Base.Functor Numeric.Optimization.MIP.Base.Term instance Data.Default.Class.Default Numeric.Optimization.MIP.Base.VarType module Numeric.Optimization.MIP.FileUtils type ParseError s = ParseErrorBundle s Void -- | A CPLEX .lp format parser library. -- -- References: -- --