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

Copyright(c) Masahiro Sakai 2012
LicenseBSD-style
Maintainermasahiro.sakai@gmail.com
Stabilityprovisional
Portabilitynon-portable (ScopedTypeVariables, Rank2Types, TypeOperators, TypeSynonymInstances, FlexibleInstances, TypeFamilies, CPP)
Safe HaskellNone
LanguageHaskell2010

ToySolver.Arith.Simplex

Contents

Description

Naïve implementation of Simplex method

Reference:

Synopsis

The Solver type

Problem specification

type Var = Int Source #

data RelOp Source #

relational operators

Constructors

Lt 
Le 
Ge 
Gt 
Eql 
NEq 
Instances
Eq RelOp Source # 
Instance details

Defined in ToySolver.Data.OrdRel

Methods

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

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

Ord RelOp Source # 
Instance details

Defined in ToySolver.Data.OrdRel

Methods

compare :: RelOp -> RelOp -> Ordering #

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

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

(>) :: RelOp -> RelOp -> Bool #

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

max :: RelOp -> RelOp -> RelOp #

min :: RelOp -> RelOp -> RelOp #

Show RelOp Source # 
Instance details

Defined in ToySolver.Data.OrdRel

Methods

showsPrec :: Int -> RelOp -> ShowS #

show :: RelOp -> String #

showList :: [RelOp] -> ShowS #

(.<.), (.<=.), (.>.), (.>=.) :: IsOrdRel e r => e -> e -> r infix 4 .<., .<=., .>., .>=. Source #

(.<.), (.<=.), (.>.), (.>=.) :: IsOrdRel e r => e -> e -> r infix 4 .<., .<=., .>., .>=. Source #

(.==.) :: IsEqRel e r => e -> e -> r infix 4 Source #

(.<.), (.<=.), (.>.), (.>=.) :: IsOrdRel e r => e -> e -> r infix 4 .<., .<=., .>., .>=. Source #

(.<.), (.<=.), (.>.), (.>=.) :: IsOrdRel e r => e -> e -> r infix 4 .<., .<=., .>., .>=. Source #

type Atom r = OrdRel (Expr r) Source #

Atomic Formula of Linear Arithmetics

assertLower :: (PrimMonad m, SolverValue v) => GenericSolverM m v -> Var -> v -> m () Source #

assertUpper :: (PrimMonad m, SolverValue v) => GenericSolverM m v -> Var -> v -> m () Source #

data OptDir #

The OptDir type represents optimization directions.

Constructors

OptMin

minimization

OptMax

maximization

Instances
Bounded OptDir 
Instance details

Defined in Data.OptDir

Enum OptDir 
Instance details

Defined in Data.OptDir

Eq OptDir 
Instance details

Defined in Data.OptDir

Methods

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

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

Data OptDir 
Instance details

Defined in 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 
Instance details

Defined in Data.OptDir

Read OptDir 
Instance details

Defined in Data.OptDir

Show OptDir 
Instance details

Defined in Data.OptDir

Ix OptDir 
Instance details

Defined in Data.OptDir

Hashable OptDir 
Instance details

Defined in Data.OptDir

Methods

hashWithSalt :: Int -> OptDir -> Int #

hash :: OptDir -> Int #

Solving

check :: forall m v. (PrimMonad m, SolverValue v) => GenericSolverM m v -> m Bool Source #

data Options Source #

Options for solving.

The default option can be obtained by def.

Constructors

Options 
Instances
Eq Options Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Methods

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

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

Ord Options Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Show Options Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Default Options Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Methods

def :: Options #

data OptResult Source #

results of optimization

Constructors

Optimum 
Unsat 
Unbounded 
ObjLimit 

Extract results

type RawModel v = IntMap v Source #

Reading status

nVars :: PrimMonad m => GenericSolverM m v -> m Int Source #

Deprecated: Use setConfig instead

getLB :: PrimMonad m => GenericSolverM m v -> Var -> m (Bound v) Source #

getUB :: PrimMonad m => GenericSolverM m v -> Var -> m (Bound v) Source #

Configulation

setLogger :: PrimMonad m => GenericSolverM m v -> (String -> m ()) -> m () Source #

set callback function for receiving messages.

data Config Source #

Instances
Eq Config Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Methods

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

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

Ord Config Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Show Config Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Default Config Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Methods

def :: Config #

data PivotStrategy Source #

Instances
Bounded PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Enum PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Eq PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Ord PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Read PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Show PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Debug

dump :: PrimMonad m => SolverValue v => GenericSolverM m v -> m () Source #

Misc