IBM ILOG Scheduler User's Manual > Integrated Applications > Scheduling with Alternative Resources: Interleaving Resource Allocation and Scheduling Decisions > Solving the Problem > Texture Measurements

As discussed in Texture Measurement in the IBM ILOG Scheduler Reference Manual, from a general perspective, a texture measurement is a measurement of some aspect of a search state. In the Scheduler Engine, we have implemented a generic resource texture measurement IlcResourceTexture, which maintains the criticality of each resource across the scheduling horizon. Resource criticality at a time point is a floating point value with user-definable semantics and range. You can define your own class to calculate criticality at a time point by subclassing the IlcTextureCriticalityCalculatorI class. Note that the assumption is made within the IlcResourceTexture class that given two time points the more critical time point is the one with the greater floating point value for its criticality.

The second component of a texture measurement, after the criticality calculator, is the factory object which creates IlcRCTexture objects. These objects contain a curve over time which represents the extent to which a single resource constraint requires a specific resource. The user can also define the characteristics of such a requirement by subclassing IlcRCTextureFactoryI and IlcRCTextureI classes.

At the Scheduler level, there are a number of facilities for defining Concert objects that are counterparts to these Scheduler Engine objects (see, for example, the ILORCTEXTUREFACTORY macro). We also have a number of predefined texture objects both in the engine and in the modeling layer.

In this example, we use a predefined factory and criticality calculator and so the following code is sufficient to declare texture measurements on all the discrete resources in the model.

  IloRCTextureFactory rcFactory = IloRCTextureProbabilisticFactory(env);
  schedEnv.getTextureParam().setRCTextureFactory(rcFactory);

  IloTextureCriticalityCalculator critCalc =
    IloProbabilisticCriticalityCalculator(env);
  schedEnv.getTextureParam().setCriticalityCalculator(critCalc);