getproduction
| getproduction | 
  Purpose
 
 
 Gets the cpvar representing the production of a task for a particular resource.
 
A task produces some amount of processing power for a resource at its start. The capacity produced is considered as non-renewable which means that the produced capacity remains available even after the termination of the task.
 A task produces some amount of processing power for a resource at its start. The capacity produced is considered as non-renewable which means that the produced capacity remains available even after the termination of the task.
  Synopsis
 
 function getproduction(task:cptask, resource:cpresource) : cpvar
 function getproduction(task:cptask, resource:cpresource, p:integer) : integer
 
  Arguments
 
 | 
     task 
     | 
     the task
     | 
| 
     resource 
     | 
     the resource
     | 
| 
     p 
     | 
     the timestep
     | 
  Return value
 
 
 The cpvar representing the production of 'resource' by 'task'
 
  Example
 
 
 The following example illustrates this:
 
  
 model "Producer Consumer"
 uses "kalis"
 declarations
  Masonry, Carpentry, Roofing, Windows, Facade, Garden, Plumbing,
    Ceiling, Painting, MovingIn : cptask    ! Declaration of tasks
  money_available : cpresource              ! Resource declaration
 end-declarations
! 'money_available' is a cumulative resource with max. amount of 29$
 set_resource_attributes(money_available,KALIS_DISCRETE_RESOURCE,29)
! Limit resource availability to 20$ in the time interval [0,14]
 setcapacity(money_available, 0, 14, 20)
! Setting the task durations and predecessor sets
 set_task_attributes(Masonry  , 7 )
 set_task_attributes(Carpentry, 3, {Masonry} )
 set_task_attributes(Roofing  , 1, {Carpentry} )
 set_task_attributes(Windows  , 1, {Roofing} )
 set_task_attributes(Facade   , 2, {Roofing} )
 set_task_attributes(Garden   , 1, {Roofing} )
 set_task_attributes(Plumbing , 8, {Masonry} )
 set_task_attributes(Ceiling  , 3, {Masonry} )
 set_task_attributes(Painting , 2, {Ceiling} )
 set_task_attributes(MovingIn , 1, {Windows,Facade,Garden,Painting})
! Setting the resource consumptions
 consumes(Masonry  , 7, money_available )
 consumes(Carpentry, 3, money_available )
 consumes(Roofing  , 1, money_available )
 consumes(Windows  , 1, money_available )
 consumes(Facade   , 2, money_available )
 consumes(Garden   , 1, money_available )
 consumes(Plumbing , 8, money_available )
 consumes(Ceiling  , 3, money_available )
 consumes(Painting , 2, money_available )
 consumes(MovingIn , 1, money_available )
! Find the optimal schedule (minimizing the makespan)
 if cp_minimize(getmakespan) then	
   cp_show_sol		
 else
   writeln("No solution found")
 end-if
end-model
 
  Related topics
 
  
