-- 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.2.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 -- | Equality constraint. (.==.) :: Num c => Expr c -> Expr c -> Constraint c infix 4 .==. -- | Inequality constraint (≤). (.<=.) :: Num c => Expr c -> Expr c -> Constraint c infix 4 .<=. -- | Inequality constraint (≥). (.>=.) :: 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)] -- | Type for representing a solution of MIP problem. 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 -- | meet (greatest lower bound) operator of the partial order of -- Status type. -- -- If the version of lattices is <2, then -- MeetSemiLattice instance can also be used. meetStatus :: Status -> Status -> Status data FileOptions FileOptions :: Maybe TextEncoding -> FileOptions [optFileEncoding] :: FileOptions -> Maybe TextEncoding -- | A class for types with a default value. class () => Default a -- | The default value for this type. def :: Default a => a 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.VarType instance GHC.Classes.Ord Numeric.Optimization.MIP.Base.VarType instance GHC.Classes.Eq Numeric.Optimization.MIP.Base.VarType 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 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.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.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 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.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 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.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 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.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.FileOptions 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 -- | Error type for parsing. -- -- The definition is slightly different based on the megaparsec -- version. type ParseError s = ParseErrorBundle s Void -- | A CPLEX .lp format parser library. -- -- References: -- --