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

Type FunctionConstraint

object --+    
         |    
Constraint --+
             |
            FunctionConstraint


Constraint which wraps a function defining the constraint logic

Examples:
>>> problem = Problem()
>>> problem.addVariables(["a", "b"], [1, 2])
>>> def func(a, b):
...     return b > a
>>> problem.addConstraint(func, ["a", "b"])
>>> problem.getSolution()
{'a': 1, 'b': 2}
>>> problem = Problem()
>>> problem.addVariables(["a", "b"], [1, 2])
>>> def func(a, b):
...     return b > a
>>> problem.addConstraint(FunctionConstraint(func), ["a", "b"])
>>> problem.getSolution()
{'a': 1, 'b': 2}

Method Summary
  __init__(self, func, assigned)
bool __call__(self, variables, domains, assignments, forwardcheck)
Perform the constraint checking
    Inherited from Constraint
bool forwardCheck(self, variables, domains, assignments, _unassigned)
Helper method for generic forward checking
  preProcess(self, variables, domains, constraints, vconstraints)
Preprocess variable domains
    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, func, assigned=True)
(Constructor)

Parameters:
func - Function wrapped and queried for constraint logic
           (type=callable object)
assigned - Whether the function may receive unassigned variables or not
           (type=bool)
Overrides:
__builtin__.object.__init__

__call__(self, variables, domains, assignments, forwardcheck=False, _unassigned=Unassigned)
(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)

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