Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## ttsolver.constraint
Class JenrlConstraint

    java.lang.Object
      ifs.model.Constraint
          ifs.model.BinaryConstraint
              ttsolver.constraint.JenrlConstraint

    public class JenrlConstraint

extends BinaryConstraint

Join student enrollment constraint.
This constraint is placed between all pairs of classes where there is at least one student attending both classes. It represents a number of student conflicts (number of joined enrollments), if the given two classes overlap in time.
Also, it dynamically maintains the counter of all student conflicts. It is a soft constraint.

Version:
  1.0
Author:
  Tomáš Müller

Constructor Summary
`JenrlConstraint(long jenrl, Counter globalViolations)` Constructor

Method Summary
`void` | `assigned(long iteration, Value value)` Given value is to be assigned to its varable.
`void` | `computeConflicts(Value value, Set conflicts)` The only method which has to be implemented by any constraint.
`void` | `decJenrl()` Decrement the number of joined enrollments (during student final sectioning)
`long` | `getJenrl()` Number of joined enrollments (during student final sectioning)
`void` | `incJenrl()` Increment the number of joined enrollments (during student final sectioning)
`boolean` | `inConflict(Value value)` Returns true if the given assignment is inconsistent with the existing assignments respecting this constraint.
`boolean` | `isConsistent(Value value1, Value value2)` Returns true if the given assignments are consistent respecting this constraint.
`boolean` | `isHard()` Returns true if the constraint is hard.
`boolean` | `isInConflict()` True if the given two lectures overlap in time
`static boolean` | `isInConflict(Placement p1, Placement p2)` Returns true if the given placements are overlapping or they are back-to-back and too far for students.
`boolean` | `isInConflictPrecise()` True if the given two lectures overlap in time
`long` | `jenrl(Variable variable, Value value)` Number of joined enrollments if the given value is assigned to the given variable
`void` | `setViolatedCounter(Counter globalViolations)` Set global counter of student conflicts
`String` | `toString()`
`void` | `unassigned(long iteration, Value value)` Given value is unassigned from its varable.

Methods inherited from class ifs.model.BinaryConstraint
`addVariable, another, first, isFirst, second`

Methods inherited from class ifs.model.Constraint
`addConstraintListener, assignedVariables, countAssignedVariables, countVariables, getDescription, getId, getInfo, getModel, getName, hashCode, removeConstraintListener, removeVariable, setModel, variables`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### JenrlConstraint

    public JenrlConstraint(long jenrl,
                           Counter globalViolations)

  Constructor

  Parameters:
    `jenrl` - number of joined enrollments
    `globalViolations` - global counter of student conflicts

Method Detail

### setViolatedCounter

    public void setViolatedCounter(Counter globalViolations)

  Set global counter of student conflicts

### computeConflicts

    public void computeConflicts(Value value,
                                 Set 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`
  Parameters:
    `value` - value to be assigned to its varaible
    `conflicts` - resultant set of conflicting values

### inConflict

    public boolean inConflict(Value value)

  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`

### isConsistent

    public boolean isConsistent(Value value1,
                                Value value2)

  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`

### unassigned

    public void unassigned(long iteration,
                           Value value)

  Description copied from class: `Constraint`
  Given value is unassigned from its varable.

  Overrides:
    `unassigned` in class `Constraint`

### isInConflict

    public static boolean isInConflict(Placement p1,
                                       Placement p2)

  Returns true if the given placements are overlapping or they are back-to-back and too far for students.

### assigned

    public void assigned(long iteration,
                         Value value)

  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`

### jenrl

    public long jenrl(Variable variable,
                      Value value)

  Number of joined enrollments if the given value is assigned to the given variable

### isInConflict

    public boolean isInConflict()

  True if the given two lectures overlap in time

### isInConflictPrecise

    public boolean isInConflictPrecise()

  True if the given two lectures overlap in time

### incJenrl

    public void incJenrl()

  Increment the number of joined enrollments (during student final sectioning)

### decJenrl

    public void decJenrl()

  Decrement the number of joined enrollments (during student final sectioning)

### getJenrl

    public long getJenrl()

  Number of joined enrollments (during student final sectioning)

### isHard

    public boolean isHard()

  Description copied from class: `Constraint`
  Returns true if the constraint is hard. Only hard constraints are allowed to unassign a variable when there is a conflict with a value that is being assigned

  Overrides:
    `isHard` in class `Constraint`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005 Tomáš Müller