toysolver-0.8.1: 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
Safe HaskellSafe-Inferred
LanguageHaskell2010
Extensions
  • MonoLocalBinds
  • ScopedTypeVariables
  • BangPatterns
  • TypeFamilies
  • TypeSynonymInstances
  • FlexibleInstances
  • KindSignatures
  • RankNTypes
  • TypeOperators
  • ExplicitNamespaces
  • ExplicitForAll

ToySolver.Arith.Simplex

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

Instances details
Show RelOp Source # 
Instance details

Defined in ToySolver.Data.OrdRel

Methods

showsPrec :: Int -> RelOp -> ShowS #

show :: RelOp -> String #

showList :: [RelOp] -> ShowS #

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 #

(.<.), (.<=.), (.>.), (.>=.) :: 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

Instances details
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 :: forall r r'. (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 #

Bounded OptDir 
Instance details

Defined in Data.OptDir

Enum OptDir 
Instance details

Defined in Data.OptDir

Generic OptDir 
Instance details

Defined in Data.OptDir

Associated Types

type Rep OptDir :: Type -> Type #

Methods

from :: OptDir -> Rep OptDir x #

to :: Rep OptDir x -> OptDir #

Ix OptDir 
Instance details

Defined in Data.OptDir

Read OptDir 
Instance details

Defined in Data.OptDir

Show OptDir 
Instance details

Defined in Data.OptDir

Eq OptDir 
Instance details

Defined in Data.OptDir

Methods

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

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

Ord OptDir 
Instance details

Defined in Data.OptDir

Hashable OptDir 
Instance details

Defined in Data.OptDir

Methods

hashWithSalt :: Int -> OptDir -> Int #

hash :: OptDir -> Int #

type Rep OptDir 
Instance details

Defined in Data.OptDir

type Rep OptDir = D1 ('MetaData "OptDir" "Data.OptDir" "OptDir-0.0.4-DFbjZiVPna85b8377JvIx4" 'False) (C1 ('MetaCons "OptMin" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OptMax" 'PrefixI 'False) (U1 :: Type -> Type))

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

Instances details
Show Options Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Default Options Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Methods

def :: Options #

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

data OptResult Source #

results of optimization

Constructors

Optimum 
Unsat 
Unbounded 
ObjLimit 

Extract results

type RawModel v = IntMap v Source #

Reading status

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

Instances details
Show Config Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Default Config Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Methods

def :: Config #

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

data PivotStrategy Source #

Instances

Instances details
Bounded PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Enum 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

Eq PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

Ord PivotStrategy Source # 
Instance details

Defined in ToySolver.Arith.Simplex

setPivotStrategy :: PrimMonad m => GenericSolverM m v -> PivotStrategy -> m () Source #

Deprecated: Use setConfig instead

Debug

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

Misc