net.sf.cpsolver.ifs.model
Class Value

java.lang.Object
  extended by net.sf.cpsolver.ifs.model.Value
All Implemented Interfaces:
Comparable
Direct Known Subclasses:
CSPValue, Enrollment, ExamPlacement, Location, Location, Location, MultiValue, Placement

public class Value
extends Object
implements Comparable

Generic value.

Every value has a notion about the variable it belongs to. It has also a unique id. By default, every Value has an integer value which is used in general heuristics, the task is than to minimimize the total value of assigned values in the solution.

Version:
IFS 1.1 (Iterative Forward Search)
Copyright (C) 2006 Tomáš Müller
muller@unitime.org
Lazenska 391, 76314 Zlin, Czech Republic

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 Street, Fifth Floor, Boston, MA 02110-1301 USA
See Also:
Variable, Model, Solver

Field Summary
protected  double iValue
          Integer value
 
Constructor Summary
Value(Variable variable)
          Constructor
Value(Variable variable, double value)
          Constructor
 
Method Summary
 void assigned(long iteration)
          Notification (called by variable) that this value is assigned
 int compareTo(Object o)
           
 Set conflicts()
          Returns a set of conflicting values with this value.
 long countAssignments()
          Returns the number of assignments of this value to its variable.
 boolean equals(Object o)
          By default, comparison is made on unique ids
 String getDescription()
          Values description -- for printing purposes
 Object getExtra()
          Extra information to which can be used by an extension (see Extension).
 long getId()
          Unique id
 String getName()
          Values name -- for printing purposes (E.g., Monday 7:30)
 int hashCode()
           
 boolean isConsistent(Value value)
          True, if the value is consistent with the given value
 long lastAssignmentIteration()
          Returns the iteration when the value was assigned at last (-1 if never).
 long lastUnassignmentIteration()
          Returns the iteration when the value was unassigned at last (-1 if never).
 void setExtra(Object object)
          Extra information to which can be used by an extension (see Extension).
 void setVariable(Variable variable)
          Sets the variable which this value belongs to
 double toDouble()
          Dobouble representaion.
 String toString()
           
 void unassigned(long iteration)
          Notification (called by variable) that this value is unassigned
 boolean valueEquals(Value value)
          Comparison of two values which is based only on the value (not appropriate variable etc.). toDouble() is compared by default.
 Variable variable()
          Returns the variable which this value belongs to
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

iValue

protected double iValue
Integer value

Constructor Detail

Value

public Value(Variable variable)
Constructor

Parameters:
variable - variable which the value belongs to

Value

public Value(Variable variable,
             double value)
Constructor

Parameters:
variable - variable which the value belongs to
value - integer value
Method Detail

variable

public Variable variable()
Returns the variable which this value belongs to


setVariable

public void setVariable(Variable variable)
Sets the variable which this value belongs to


assigned

public void assigned(long iteration)
Notification (called by variable) that this value is assigned

Parameters:
iteration - current iteration

unassigned

public void unassigned(long iteration)
Notification (called by variable) that this value is unassigned

Parameters:
iteration - current iteration

lastAssignmentIteration

public long lastAssignmentIteration()
Returns the iteration when the value was assigned at last (-1 if never).


lastUnassignmentIteration

public long lastUnassignmentIteration()
Returns the iteration when the value was unassigned at last (-1 if never).


countAssignments

public long countAssignments()
Returns the number of assignments of this value to its variable.


getId

public long getId()
Unique id


getName

public String getName()
Values name -- for printing purposes (E.g., Monday 7:30)


getDescription

public String getDescription()
Values description -- for printing purposes


toDouble

public double toDouble()
Dobouble representaion. This allows us to have generic optimization criteria. The task is than to minimize total value of assigned variables of a solution.


toString

public String toString()
Overrides:
toString in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

valueEquals

public boolean valueEquals(Value value)
Comparison of two values which is based only on the value (not appropriate variable etc.). toDouble() is compared by default.


compareTo

public int compareTo(Object o)
Specified by:
compareTo in interface Comparable

equals

public boolean equals(Object o)
By default, comparison is made on unique ids

Overrides:
equals in class Object

getExtra

public Object getExtra()
Extra information to which can be used by an extension (see Extension).


setExtra

public void setExtra(Object object)
Extra information to which can be used by an extension (see Extension).


isConsistent

public boolean isConsistent(Value value)
True, if the value is consistent with the given value


conflicts

public Set conflicts()
Returns a set of conflicting values with this value. When empty, the value is consistent with the existing assignment.