Module constraint :: Class InSetConstraint
[show private | hide private]
[frames | no frames]

Type InSetConstraint

object --+    
         |    
Constraint --+
             |
            InSetConstraint


Constraint enforcing that values of given variables are present in the given set

Example:
>>> problem = Problem()
>>> problem.addVariables(["a", "b"], [1, 2])
>>> problem.addConstraint(InSetConstraint([1]))
>>> sorted(sorted(x.items()) for x in problem.getSolutions())
[[('a', 1), ('b', 1)]]

Method Summary
  __init__(self, set)
bool __call__(self, variables, domains, assignments, forwardcheck)
Perform the constraint checking
  preProcess(self, variables, domains, constraints, vconstraints)
Preprocess variable domains
    Inherited from Constraint
bool forwardCheck(self, variables, domains, assignments, _unassigned)
Helper method for generic forward checking
    Inherited from object
  __delattr__(...)
x.__delattr__('name') <==> del x.name
  __getattribute__(...)
x.__getattribute__('name') <==> x.name
  __hash__(x)
x.__hash__() <==> hash(x)
  __new__(T, S, ...)
T.__new__(S, ...) -> a new object with type S, a subtype of T
  __reduce__(...)
helper for pickle
  __reduce_ex__(...)
helper for pickle
  __repr__(x)
x.__repr__() <==> repr(x)
  __setattr__(...)
x.__setattr__('name', value) <==> x.name = value
  __str__(x)
x.__str__() <==> str(x)

Method Details

__init__(self, set)
(Constructor)

Parameters:
set - Set of allowed values
           (type=set)
Overrides:
__builtin__.object.__init__

__call__(self, variables, domains, assignments, forwardcheck=False)
(Call operator)

Perform the constraint checking

If the forwardcheck parameter is not false, besides telling if the constraint is currently broken or not, the constraint implementation may choose to hide values from the domains of unassigned variables to prevent them from being used, and thus prune the search space.
Parameters:
variables - Variables affected by that constraint, in the same order provided by the user
           (type=sequence)
domains - Dictionary mapping variables to their domains
           (type=dict)
assignments - Dictionary mapping assigned variables to their current assumed value
           (type=dict)
forwardcheck - Boolean value stating whether forward checking should be performed or not
Returns:
Boolean value stating if this constraint is currently broken or not
           (type=bool)
Overrides:
constraint.Constraint.__call__ (inherited documentation)

preProcess(self, variables, domains, constraints, vconstraints)

Preprocess variable domains

This method is called before starting to look for solutions, and is used to prune domains with specific constraint logic when possible. For instance, any constraints with a single variable may be applied on all possible values and removed, since they may act on individual values even without further knowledge about other assignments.
Parameters:
variables - Variables affected by that constraint, in the same order provided by the user
           (type=sequence)
domains - Dictionary mapping variables to their domains
           (type=dict)
constraints - List of pairs of (constraint, variables)
           (type=list)
vconstraints - Dictionary mapping variables to a list of constraints affecting the given variables.
           (type=dict)
Overrides:
constraint.Constraint.preProcess (inherited documentation)

Generated by Epydoc 2.1 on Thu Jul 7 02:05:09 2005 http://epydoc.sf.net