yacs.solver.fdsolver.consistency
Class NCSolver

java.lang.Object
  extended byyacs.solver.ConsistencySolver
      extended byyacs.solver.fdsolver.consistency.NCSolver
All Implemented Interfaces:
Solver

public class NCSolver
extends ConsistencySolver

Einfacher Algorithmus zum Herstellen von Knotenkonsistenz über finite Domänen nach Marriott und Stuckey (1999, S. 94).

Copyright (C) 2005 Wolfgang Runte

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Version:
YACS 0.1.1
Author:
Wolfgang Runte (woru@tzi.org)

Constructor Summary
NCSolver()
           
 
Method Summary
 boolean nodeSolve(Expression expr)
          Eine Solver der Knotenkonsistenz herstellt, d.h. es werden alle unären Constraints auf konsistente Wertebereiche überprüft und selbige ggf. um unzulässige Werte reduziert.
 boolean propagate(ConstraintNet constraintNet)
          Benötigt als Eingabe ein Constraint-Netz.
 
Methods inherited from class yacs.solver.ConsistencySolver
evaluate
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NCSolver

public NCSolver()
Method Detail

nodeSolve

public boolean nodeSolve(Expression expr)
                  throws InconsistencyException
Eine Solver der Knotenkonsistenz herstellt, d.h. es werden alle unären Constraints auf konsistente Wertebereiche überprüft und selbige ggf. um unzulässige Werte reduziert. Liefert true, wenn Wertebereichseinschränkungen vorgenommen wurden, false wenn nicht.

Parameters:
expr - Expression
Returns:
boolean
Throws:
InconsistencyException

propagate

public boolean propagate(ConstraintNet constraintNet)
                  throws InconsistencyException
Benötigt als Eingabe ein Constraint-Netz. Liefert true, wenn Wertebereichseinschränkungen vorgenommen wurden, false wenn nicht.

Specified by:
propagate in class ConsistencySolver
Parameters:
constraintNet - ConstraintNet
Returns:
boolean
Throws:
InconsistencyException