Class ConstraintSolver::Problem
In: lib/Problem.rb
Parent: Object
Test::Unit::TestCase AllDifferentConstraintTest SolutionTest ConstraintSolverTest ConstraintListTest VariableTest DomainTest BinaryConstraintTest ProblemTest BinaryRelationTest Exception DomainWipeoutException UndoStackEmptyException AbstractConstraint BinaryConstraint AllDifferentConstraint Array ConstraintList BinaryRelation Variable Solution ConstraintSolver Problem Domain test/DomainTest.rb test/SolutionTest.rb lib/BinaryConstraint.rb lib/Variable.rb test/ConstraintListTest.rb lib/ConstraintList.rb test/ProblemTest.rb lib/Solution.rb test/BinaryConstraintTest.rb lib/ConstraintSolver.rb test/VariableTest.rb test/AllDifferentConstraintTest.rb lib/AllDifferentConstraint.rb lib/Problem.rb test/ConstraintSolverTest.rb lib/Domain.rb lib/AbstractConstraint.rb ConstraintSolver dot/m_19_0.png

Representation of a constraint satisfaction problem.

Methods

new  

Attributes

constraints  [R] 
meritMap  [R] 
variables  [R] 

Public Class methods

Creates a new instances of a constraint satisfaction problem. The constructor takes the lists of variables and constraints as parameters. Optionally, a map that maps domain elements to their merit can be specified.

[Source]

# File lib/Problem.rb, line 11
        def initialize(variables, constraints, meritMap={})
            if not variables.kind_of?(Array)
                variables = [ variables ]
            end
            if not constraints.kind_of?(ConstraintList)
                constraints = ConstraintList.new([ constraints ])
            end
            if variables.empty? or constraints.empty?
                raise ArgumentError, "Variables and constraints must not be empty!"
            end
            @variables = variables
            @constraints = constraints
            @meritMap = meritMap
        end

[Validate]