FRAMES NO FRAMES

IloTextureAltSuccessorGoal

public IloGoal IloTextureAltSuccessorGoal(const IloEnv env)
public IloGoal IloTextureAltSuccessorGoal(const IloEnv env, const IloNumVar criterion)
Definition file: ilsched/iloschedgoals.h
Include file: <ilsched/iloscheduler.h>

This function creates and returns a goal that adds successor relations between all pairs of resource constraints, and assigns all alternative resource constraints on all resources in the model that have a non-zero texture measurement. This goal can be combined with IloAssignAlternative to create a complete goal which includes cases with a texture measurements of zero (IloTextureAltSuccessorGoal && IloAssignAlternative).

If the argument criterion is given, then this variable will be bound, if possible, to its minimal value at the end of the search.

At each step of the goal the resource R and the time point with highest criticality are identified, and the set of resource constraints S that contribute to the criticality of R at the most critical time point are examined. Three resource constraints are identified:

  1. The non-alternative resource constraint, A, with the highest contribution to the critical point that is not a successor or predecessor of all other elements of S.
  2. The non-alternative resource constraint, B, with the highest contribution to the critical point that is not A, nor a successor or predecessor of A.
  3. The alternative resource constraint, C, with the highest contribution to the critical point of all alternative resource constraints.

The contribution to the critical point by resource constraint A is then compared to that of resource constraint C. If A has the higher contribution, then a choice point based on a successor relation between A and B is formed. This choice point is exactly the same form as that created by IloTextureSuccessorGoal.

If the contribution of C is greater than that of A, a choice point that removes the resource R from the set of possible resources for C is created. On backtracking, the choice point enforces that C must execute on resource R.