net.sf.cpsolver.ifs.example.tt
Class Resource

java.lang.Object
  extended by net.sf.cpsolver.ifs.model.Constraint<Activity,Location>
      extended by net.sf.cpsolver.ifs.example.tt.Resource
All Implemented Interfaces:
Comparable<Constraint<Activity,Location>>

public class Resource
extends Constraint<Activity,Location>

Resource constraint

Version:
IFS 1.2 (Iterative Forward Search)
Copyright (C) 2006 - 2010 Tomáš Müller
muller@unitime.org
http://muller.unitime.org

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 3 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 see http://www.gnu.org/licenses/.

Field Summary
static int TYPE_CLASS
           
static int TYPE_INSTRUCTOR
           
static int TYPE_OTHER
           
static int TYPE_ROOM
           
 
Fields inherited from class net.sf.cpsolver.ifs.model.Constraint
iAssignedVariables, iConstraintListeners, iId
 
Constructor Summary
Resource(String id, int type, String name)
           
 
Method Summary
 void addDiscouragedSlot(int slot)
           
 void addDiscouragedSlot(int day, int hour)
           
 void addProhibitedSlot(int slot)
           
 void addProhibitedSlot(int day, int hour)
           
 void assigned(long iteration, Location location)
          Given value is to be assigned to its varable.
 void computeConflicts(Location location, Set<Location> conflicts)
          The only method which has to be implemented by any constraint.
 Set<Integer> getDiscouragedSlots()
           
 String getName()
          Constraint's name -- for printing purposes
 Set<Integer> getProhibitedSlots()
           
 String getResourceId()
           
 int getType()
           
 boolean inConflict(Location location)
          Returns true if the given assignment is inconsistent with the existing assignments respecting this constraint.
 boolean isConsistent(Location l1, Location l2)
          Returns true if the given assignments are consistent respecting this constraint.
 boolean isDiscouragedSlot(int slot)
           
 boolean isDiscouragedSlot(int day, int hour)
           
 boolean isProhibited(int day, int hour, int length)
           
 boolean isProhibitedSlot(int slot)
           
 boolean isProhibitedSlot(int day, int hour)
           
 void setModel(Model<Activity,Location> model)
          Sets the model which the constraint belongs to
 void unassigned(long iteration, Location location)
          Given value is unassigned from its variable.
 
Methods inherited from class net.sf.cpsolver.ifs.model.Constraint
addConstraintListener, addVariable, assignedVariables, compareTo, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, isHard, removeConstraintListener, removeVariable, variables
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TYPE_ROOM

public static final int TYPE_ROOM
See Also:
Constant Field Values

TYPE_INSTRUCTOR

public static final int TYPE_INSTRUCTOR
See Also:
Constant Field Values

TYPE_CLASS

public static final int TYPE_CLASS
See Also:
Constant Field Values

TYPE_OTHER

public static final int TYPE_OTHER
See Also:
Constant Field Values
Constructor Detail

Resource

public Resource(String id,
                int type,
                String name)
Method Detail

setModel

public void setModel(Model<Activity,Location> model)
Description copied from class: Constraint
Sets the model which the constraint belongs to

Overrides:
setModel in class Constraint<Activity,Location>

getResourceId

public String getResourceId()

getName

public String getName()
Description copied from class: Constraint
Constraint's name -- for printing purposes

Overrides:
getName in class Constraint<Activity,Location>

getType

public int getType()

getProhibitedSlots

public Set<Integer> getProhibitedSlots()

getDiscouragedSlots

public Set<Integer> getDiscouragedSlots()

addProhibitedSlot

public void addProhibitedSlot(int day,
                              int hour)

addDiscouragedSlot

public void addDiscouragedSlot(int day,
                               int hour)

isProhibitedSlot

public boolean isProhibitedSlot(int day,
                                int hour)

isDiscouragedSlot

public boolean isDiscouragedSlot(int day,
                                 int hour)

addProhibitedSlot

public void addProhibitedSlot(int slot)

addDiscouragedSlot

public void addDiscouragedSlot(int slot)

isProhibitedSlot

public boolean isProhibitedSlot(int slot)

isDiscouragedSlot

public boolean isDiscouragedSlot(int slot)

isProhibited

public boolean isProhibited(int day,
                            int hour,
                            int length)

computeConflicts

public void computeConflicts(Location location,
                             Set<Location> conflicts)
Description copied from class: Constraint
The only method which has to be implemented by any constraint. It returns the values which needs to be unassigned in order to make this constraint consistent with the given value if it is assigned to its variable. The computed list of conflicting values is added to the given set of conflicts.

Specified by:
computeConflicts in class Constraint<Activity,Location>
Parameters:
location - value to be assigned to its varaible
conflicts - resultant set of conflicting values

inConflict

public boolean inConflict(Location location)
Description copied from class: Constraint
Returns true if the given assignment is inconsistent with the existing assignments respecting this constraint. This method is used by MAC (see MacPropagation).

Overrides:
inConflict in class Constraint<Activity,Location>

isConsistent

public boolean isConsistent(Location l1,
                            Location l2)
Description copied from class: Constraint
Returns true if the given assignments are consistent respecting this constraint. This method is used by MAC (see MacPropagation).

Overrides:
isConsistent in class Constraint<Activity,Location>

assigned

public void assigned(long iteration,
                     Location location)
Description copied from class: Constraint
Given value is to be assigned to its varable. In this method, the constraint should unassigns all varaibles which are in conflict with the given assignment because of this constraint.

Overrides:
assigned in class Constraint<Activity,Location>

unassigned

public void unassigned(long iteration,
                       Location location)
Description copied from class: Constraint
Given value is unassigned from its variable.

Overrides:
unassigned in class Constraint<Activity,Location>