The Resource Scheduler block arranges and performs sequences of resource adjustments over targeted resource entities. The description of an adjustment sequence is specified in a resource agenda object received through the InAgenda port from an agenda provider (for example, a Resource Agenda block). Using the properties dialog box controls, an appointment with various scheduling options can be scheduled to request the Resource Scheduler block to process a resource agenda. The Resource Scheduler block activates its appointments and conducts the resource adjustment sequences in the corresponding resource agendas based on the scheduling options during a simulation run.
When all the adjustment actions within the sequence of an activated appointment are conducted and the resulting changes pass their respective duration periods, the current processing of the appointment by the Resource Scheduler block is considered finished.
If needed, the Resource Scheduler block can activate multiple appointments and process their respective sequences of resource adjustments at the same time.
In addition to the appointments scheduled through the properties dialog box controls, resource scheduling entities can also be used to request a Resource Scheduler block to process resource agendas dynamically through the InRequest port during a simulation run. These resource scheduling entities can be produced by the same or other Resource Scheduler blocks at a different simulation time. See the To Repeat description in the following section Properties Dialog Box Controls for more information.
Input object port to receive a resource agenda object.
Input entity port to receive resource scheduling entities to dynamically schedule resource adjustments.
Output entity port for repeating resource scheduling entities to leave the block.
Output entity port for resource scheduling entities that cannot leave through the OutRequest port.
Adds a new appointment entry (with default values) to the Appointments table. The appointments in the table are used as the initial set of appointments to be processed by the Resource Scheduler block during a simulation run. Each appointment entry has the following fields:
Start Time specifies the time to activate the adjustment sequence listed in the specified agenda.
Agenda specifies the identifier of the agenda to use for this appointment.
To Repeat specifies whether to repeat this appointment at a later time.
When the Resource Scheduler finishes an appointment marked as To Repeat, the block automatically reschedules the appointment with the current simulation time as the new Start Time if the block’s OutRequest port is not connected. Otherwise, the block sends a resource scheduling entity out its OutRequest
port for that repeating appointment. This entity can be sent to the InRequest port of a Resource Scheduler block to repeat
the appointment at a different time.
The resource scheduling entity is a special type of entity, which is defined and generated by the Resource Scheduler block.
It has a numeric StartTime attribute field and an object Agenda attribute field that can be adjusted dynamically for complicated
scheduling needs. If the StartTime value in a newly arrived scheduling entity already passes the current simulation time,
the repeating appointment is activated immediately with the current simulation time as the actual StartTime.
Immediate Actions contains three check boxes that specify the immediate actions taken by the Resource Scheduler block when it processes a resource
agenda entry.
The Adjust Resources check boxes specify the adjustment types, which consist of the following:
Unseized indicates the immediate change to the targeted resource entities if they are currently unseized.
Seized indicates the immediate change to the targeted resource entities if they are currently seized. This results in preemptive changes, which might trigger preemptions in the holding blocks where the changed resource entities reside.
The Advance Agenda check box specifies whether the Resource Scheduler block moves to schedule the next agenda entry immediately.
The value of the Adjust Resources/Unseized, Adjust Resources/Seized, and Advance Agenda check boxes results in eight different combinations of values. Each combination is presented below as a triple of three Boolean
values, corresponding to the Adjust Resources/Unseized, Adjust Resources/Seized, and Advance Agenda check boxes, with T for true (checked) and F for false (cleared). For example, the triple (T, F, F) represents Adjust Resources/Unseized = T, Adjust Resources/Seized = F, and Advance Agenda = F. All the triple combinations and their effects on resource adjustment during simulation are described as follows:
(T, F, F) specifies to immediately adjust the unseized resource targets, if any, and wait for the seized targets, if any, to become unseized. As soon as a seized target becomes unseized, it is adjusted. The Resource Scheduler block waits for all the seized and unseized targets, if any, to be actually adjusted before moving on to process the next agenda entry. This is the default combination for a new appointment entry.
(T, F, T) specifies to immediately adjust the unseized resource targets, if any, and wait for the seized targets, if any, to become unseized. As soon as a seized target becomes unseized, it is adjusted. The Resource Scheduler block moves on to process next agenda entry without waiting for the adjustments to actually happen.
(F, F, F) specifies that no unseized targets, if any, are adjusted until all seized targets, if any, become unseized. Adjustments for seized targets also do not happen until all seized targets become unseized. That means adjustments are made to all targets at the same time once there are no more seized targets. The Resource Scheduler block waits for all the seized and unseized targets, if any, to be actually adjusted before moving on to process the next agenda entry.
(F, F, T) specifies that no unseized targets, if any, are adjusted until all seized targets, if any, become unseized. Adjustments for seized targets also does not happen until all seized targets become unseized. That means adjustments are made to all targets at the same time once there are no more seized targets. The Resource Scheduler block moves on to process next agenda entry without waiting for the adjustments to actually happen.
(F, T, F) specifies that adjustments for unseized targets happen only after all seized targets, if any, become unseized. Adjustments for seized targets happen immediately and therefore are preemptive. The Resource Scheduler block waits for all the seized and unseized targets to be actually adjusted before moving on to process the next agenda entry.
(F, T, T) specifies that adjustments for unseized targets happen only after all seized targets, if any, become unseized. Adjustments for seized targets happen immediately and therefore are preemptive. The Resource Scheduler block moves on to process next agenda entry without waiting for the adjustments to actually happen.
(T, T, F) specifies to immediately adjust the unseized and seized resource targets, if any. The Resource Scheduler block waits for all the adjustments to complete before moving on to process the next agenda entry, but the waiting does not actually occur because all targets are adjusted immediately.
(T, T, T) has the same effects as the above (T, T, F) combination.
The last four combinations are for preemptive adjustments of seized targets, while the first four are not.
If the Advance Agenda option is not checked, the Resource Scheduler block waits for seized or unseized targets, if any, to be actually adjusted
before moving on to process the next agenda entry. As a result, the time between resource adjustments could be longer than
the duration time specified in the resource agenda, and it could delay other succeeding adjustments. Otherwise, it could result
in a shorter time between actual resource adjustments.
When the targets of a resource units adjustment action include both unseized and seized resource entities, the unseized targets
are usually assigned their units allotment first.
Search Targets By specifies the criteria to identify a collection of resource entities as the adjustment targets of this appointment:
Entity Type identifies the type of targeted resource entities to adjust.
Attribute Rule specifies a filtering rule that the targeted resource entities must satisfy. The rule is a Boolean expression that involves attribute values of a candidate resource entity that must evaluate to true for the entity to be considered as an adjustment target. For more information about how to write the Boolean expression, see Appendix F: Expressions.
Deletes the selected appointment entries from the Appointments table.