ANN: python-constraint 1.0

Discussion in 'Python' started by Gustavo Niemeyer, Jul 7, 2005.

  1. --------
    Overview
    --------

    **python-constraint** [1]_ is a Python module offering solvers for
    Constraint Solving Problems (CSPs) over finite domains in simple
    and pure Python. CSP is class of problems which may be represented
    in terms of variables (`a`, `b`, ...), domains (`a in [1, 2, 3]`, ...),
    and constraints (`a < b`, ...).

    ... [1] http://codespeak.net/~niemeyer/constraint/

    --------
    Examples
    --------

    Basic
    -----

    Here is a basic interactive example::

    >>> from constraint import *
    >>> problem = Problem()
    >>> problem.addVariable("a", [1,2,3])
    >>> problem.addVariable("b", [4,5,6])
    >>> problem.getSolutions()

    [{'a': 3, 'b': 6}, {'a': 3, 'b': 5}, {'a': 3, 'b': 4},
    {'a': 2, 'b': 6}, {'a': 2, 'b': 5}, {'a': 2, 'b': 4},
    {'a': 1, 'b': 6}, {'a': 1, 'b': 5}, {'a': 1, 'b': 4}]

    >>> problem.addConstraint(lambda a, b: a*2 == b,

    ("a", "b"))
    >>> problem.getSolutions()

    [{'a': 3, 'b': 6}, {'a': 2, 'b': 4}]

    >>> problem = Problem()
    >>> problem.addVariables(["a", "b"], [1, 2, 3])
    >>> problem.addConstraint(AllDifferentConstraint())
    >>> problem.getSolutions()

    [{'a': 3, 'b': 2}, {'a': 3, 'b': 1}, {'a': 2, 'b': 3},
    {'a': 2, 'b': 1}, {'a': 1, 'b': 2}, {'a': 1, 'b': 3}]


    Rooks
    -----

    Here is an example solving the classical rooks problem::

    problem = Problem()
    numpieces = 8
    cols = range(numpieces)
    rows = range(numpieces)
    problem.addVariables(cols, rows)
    for col1 in cols:
    for col2 in cols:
    if col1 < col2:
    problem.addConstraint(lambda row1, row2: row1 != row2,
    (col1, col2))
    solutions = problem.getSolutions()


    Magic squares
    -------------

    And here is an example solving a 4x4 magic square::

    problem = Problem()
    problem.addVariables(range(0, 16), range(1, 16+1))
    problem.addConstraint(AllDifferentConstraint(), range(0, 16))
    problem.addConstraint(ExactSumConstraint(34), [0,5,10,15])
    problem.addConstraint(ExactSumConstraint(34), [3,6,9,12])
    for row in range(4):
    problem.addConstraint(ExactSumConstraint(34),
    [row*4+i for i in range(4)])
    for col in range(4):
    problem.addConstraint(ExactSumConstraint(34),
    [col+4*i for i in range(4)])
    solutions = problem.getSolutions()


    --------
    Features
    --------

    The following solvers are available:

    - Backtracking solver
    - Recursive backtracking solver
    - Minimum conflicts solver

    Predefined constraint types currently available:

    - FunctionConstraint
    - AllDifferentConstraint
    - AllEqualConstraint
    - ExactSumConstraint
    - MaxSumConstraint
    - MinSumConstraint
    - InSetConstraint
    - NotInSetConstraint
    - SomeInSetConstraint
    - SomeNotInSetConstraint


    -------------
    Documentation
    -------------

    There's documentation for the module at:

    - http://codespeak.net/~niemeyer/constraint/doc/


    --------
    Download
    --------

    **python-constraint** may be found at the following
    address:

    - http://codespeak.net/~niemeyer/constraint/files/

    ---------------------
    Subversion repository
    ---------------------

    Available at:

    - http://codespeak.net/svn/user/niemeyer/constraint/


    --
    Gustavo Niemeyer
    http://niemeyer.net
     
    Gustavo Niemeyer, Jul 7, 2005
    #1
    1. Advertisements

  2. Gustavo Niemeyer ha scritto:
    > --------
    > Overview
    > --------
    >
    > **python-constraint** [1]_ is a Python module offering solvers for
    > Constraint Solving Problems (CSPs) over finite domains in simple
    > and pure Python. CSP is class of problems which may be represented
    > in terms of variables (`a`, `b`, ...), domains (`a in [1, 2, 3]`, ...),
    > and constraints (`a < b`, ...).


    This sound cool, but have you noticed logilab.constraint? Care to contrast?
     
    gabriele renzi, Jul 7, 2005
    #2
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Isaac
    Replies:
    0
    Views:
    2,623
    Isaac
    Jul 10, 2003
  2. Alistair Lamb

    CLOCK__SIGNAL constraint! pls help

    Alistair Lamb, Mar 24, 2005, in forum: VHDL
    Replies:
    1
    Views:
    1,990
    Tim Good
    Mar 24, 2005
  3. Rajesh Tiwari

    Can Not Access Foreign Key Constraint

    Rajesh Tiwari, Jun 30, 2003, in forum: ASP .Net
    Replies:
    0
    Views:
    777
    Rajesh Tiwari
    Jun 30, 2003
  4. GMK

    foreignKey constraint error.

    GMK, Mar 11, 2005, in forum: ASP .Net
    Replies:
    1
    Views:
    450
    =?Utf-8?B?RG90TmV0SmVyb21l?=
    Mar 11, 2005
  5. puvit82
    Replies:
    4
    Views:
    999
    puvit82
    Feb 1, 2008
  6. Thomas
    Replies:
    0
    Views:
    162
    Thomas
    Jun 10, 2005
  7. Thomas
    Replies:
    0
    Views:
    166
    Thomas
    Jun 14, 2005
  8. Replies:
    1
    Views:
    260
    Gary Herron
    Jun 10, 2014
Loading...