Initializing help system before first use

Schedule

Tasks and resources form a schedule. The cp_schedule method allows to optimize a schedule with respect to any objective variable and implements advanced scheduling techniques specialized in makespan minimization. The creation of the schedule makespan can be automated by calling the getmakespan method that ensures automatically its computation.

A custom scheduling optimization strategy can be specified by using the task_serialize branching scheme to select the task to be scheduled and value choice heuristics for its start and duration variables.

The task selection method can be any user Mosel method or it may be configured with the predefined strategies of Xpress Kalis:

The picture below illustrates the definition of a task-based branching strategy:

Scheduling/taskSerializer.png

Xpress Kalis defines a set of functions for accessing and modifying cptask and cpresource states:

addpredecessors
Adds a set of predecessors for a task
addsuccessors
Adds a set of tasks as successors of a task
consumes
Sets the minimal and maximal amount of resource consumed by a task for a particular resource
cp_close_schedule
Close the schedule.
cp_get_default_schedule_strategy
Gets the default schedule search strategy of cp_schedule
cp_schedule
Optimizes the schedule with respect to an objective variable.
cp_set_schedule_strategy
Sets the schedule search strategy for cp_schedule
cp_show_schedule
Shows a textual representation of the current schedule
getassignment
Gets the cpvar representing the assignment of a task for a particular resource.
getcapacity
Get the maximal capacity of a resource for a specific time period.
getconsumption
Gets the cpvar representing the consumption of a task for a particular resource
getduration
Gets the cpvar representing a task duration
getend
Gets the cpvar representing a task completion time
getmakespan
Gets the cpvar representing the makespan of the schedule.
getproduction
Gets the cpvar representing the production of a task for a particular resource
getprovision
Gets the cpvar representing the provision of a task for a particular resource
getrequirement
Gets the cpvar representing the requirement of a task for a particular resource
getsetuptime
Gets the sequence dependent setup times between two tasks
getstart
Gets the cpvar representing a task start time
has_assignment
Tests whether an assignment decision variable for a task and a particular resource exists.
is_consuming
Tests whether a task consumes a specific resource
is_fixed
Tests if the variable passed in argument is instantiated
is_idletime
Tests if a timestep is an idle timestep for a resource.
is_producing
Tests whether a task produces a specific resource
is_providing
Tests whether a task provides a specific resource
is_requiring
Tests whether a task requires a specific resource
produces
Sets the minimal and maximal amount of resource produced by a task for a particular resource
provides
Sets the minimal and maximal amount of resource provided by a task for a particular resource.
requires
Sets the minimal and maximal amount of resource required by a task for a particular resource
resusage
Creates a resource usage
set_resource_attributes
Sets some attributes for a resource
set_task_attributes
Sets some attributes for a task
setcapacity
Sets the maximal capacity of a resource between two time bounds.
setduration
Sets the duration of a task
setidletimes
Specifies the set of timesteps where a resource is idle.
setmaxavailability
Sets the maximal capacity of a resource between two time bounds.
setminusage
Sets the minimum usage of a resource between two time bounds.
setpredecessors
Sets the tasks that must precede a task
setsetuptime
Sets sequence dependent setup times between two tasks
setsuccessors
Sets the set of tasks that must succeed a task

© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.