toysolver-0.7.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
Safe HaskellNone
LanguageHaskell2010
Extensions
  • Cpp
  • 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
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

Instances details
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 :: 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 #

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

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 #

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-APdfY4xfiAn2BmfXiFAmWw" '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
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

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
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

Instances details
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

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