setmaxavailability
| setmaxavailability | 
  Purpose
 
 Sets the maximal capacity (the maximal amount of processing units available) of a resource between two time bounds. This routine can only be applied to resources of type
 KALIS_DISCRETE_RESOURCE.
 
  Synopsis
 
procedure setmaxavailability(resource:cpresource, tmin:integer, tmax:integer, capa:integer)
 
  Arguments
 
| 
     resource 
     | 
     the resource
     | 
| 
     tmin 
     | 
     lower bound of the time interval
     | 
| 
     tmax 
     | 
     upper bound of the time interval
     | 
| 
     capa 
     | 
     the maximal amount of processing units available of resource in the interval [tmin,tmax]
     | 
  Example
 
 The following example shows how to use setcapacity:
 
 
 model "Resource capacity"
 uses "kalis"
 declarations
  A, B, C : cptask            ! Declaration of tasks
  resource : cpresource       ! Declaration of resource
 end-declarations
 setname(A,"A"); setname(B,"B"); setname(C,"C")
! The resource is a cumulative resource with maximum capacity 6
 set_resource_attributes(resource, KALIS_DISCRETE_RESOURCE, 6)
! Setting the resource capacity in the interval 0..2 to 3
 setcapacity(resource, 0, 2, 3)
! Setting the resource capacity in the interval 3..4 to 2
 setcapacity(resource, 3, 4, 2)
! Setting the resource capacity in time period 5 to 1
 setcapacity(resource, 5, 5, 1)
! Setting the task durations
 set_task_attributes(A, 1)
 set_task_attributes(B, 2)
 set_task_attributes(C, 3)
! Setting the resource requirements of the tasks
 requires(A, 1, resource)
 requires(B, 2, resource)
 requires(C, 3, resource)
! Find the optimal schedule (minimizing the makespan)
 if cp_schedule(getmakespan) <> 0 then	
  cp_show_sol
 else
  writeln("no solution found") 		
 end-if
end-model
 
  Related topics
 
 
