The Resource Scheduler block arranges and performs sequences of resource adjustments on 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, you can schedule an appointment with various scheduling options to request that the Resource Scheduler block 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 performed 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, you can use resource scheduling entities to request that a Resource Scheduler block process resource agendas dynamically through the InRequest port during a simulation run. The resource scheduling entity is a special type of resource entity that is defined and generated by either a Resource Scheduler block or an Entity Generator block.
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 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 the appointment.
To Repeat specifies whether to repeat the appointment at a later time. When the Resource Scheduler finishes an appointment and the To Repeat option is selected and the OutRequest port is not connected, the block automatically reschedules the appointment with the current simulation time as the new start time. Otherwise, the block sends a resource scheduling entity out through its OutRequest port for that repeating appointment. This entity can be sent to the InRequest port of any Resource Scheduler block to repeat the appointment at a different time. The resource scheduling entity has a numeric StartTime attribute field, an object Agenda attribute field, and a Boolean ToRepeat attribute field that you can adjust dynamically for complicated scheduling needs. If the current simulation time exceeds the start time value in a newly arrived scheduling entity, then the repeating appointment is activated immediately with the current simulation time as the start time value.
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 when a resource entity adjustment (either capacity or state change) should occur, depending on whether
that entity is unseized or seized at the time of the scheduled adjustment. In the description that follows, specific terminology
is used to distinguish certain groups of resource entities for a particular resource unit adjustment action. Potential targets are resource entities in the functional state that satisfy the requirements specified in the Entity Type and Attribute Rule fields. Not all potential targets are necessarily adjusted. Targets are resource entities from the set of potential targets that have been selected for adjustment. The selection of a resource
entity to be a target depends on several factors, including the Adjust Units By rule and an “unseized first” heuristic, which means the scheduler always attempts to adjust unseized resource entities before
seized resource entities.
Unseized specifies when targeted unseized resource entities are adjusted. When selected, any targeted unseized resource entities are adjusted immediately. When not selected, any targeted unseized resource entities are adjusted after all seized resource entities that are potential targets (that satisfy the Entity Type and Attribute Rule specifications) return to a Resource Pool block and become unseized.
Seized specifies when targeted seized resource entities are adjusted. When selected, any targeted resource entities that are currently seized are adjusted immediately (seized resource entities are targeted only if there are remaining units to adjust after targeting all available unseized entities). Whether the adjustment is a capacity change or a state change, this could result in preemptive changes that could trigger a preemption in a holding block where a seized resource entity is located at the time of the adjustment. Preemption occurs if either the OutPreempt or OutResource port on the holding block where the adjusted seized entity is located is connected. Selecting the Seized option does not guarantee that any seized resource entities will be adjusted. Seized entities are identified to be adjusted only if there are not enough unseized entity units to cover the scheduled adjustment. If the Seized option is not selected, then any targeted, seized entities are adjusted after all seized resource entities that are potential targets return to a Resource Pool block and become unseized.
Advance Agenda causes the Resource Scheduler block to move on to process the next agenda entry without waiting for all seized and unseized targets to be adjusted for the current agenda entry. This could result in a shorter time between actual resource adjustments than what is specified in the agenda. If the Advance Agenda option is not selected, the Resource Scheduler block waits for all seized and unseized targets to be 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 could delay other succeeding adjustments.
If a resource scheduling entity is used to dynamically process a resource agenda, then you use the Boolean attribute fields named AdjustUnseized, AdjustSeized, and AdvanceAgenda on the resource scheduling entity to specify the immediate actions that the Resource Scheduler block should take.
Search Targets By specifies the criteria used to identify a collection of resource entities as the potential adjustment targets of the appointment. Not all resource entities that satisfy the Entity Type and Attribute Rule specifications are necessarily selected for adjustment. The resource entities from the group of potential targets that are actually adjusted depends on several factors, including the Adjust Units By rule and an “unseized first” heuristic, which means the scheduler always attempts to adjust unseized entities before seized entities.
Entity Type identifies the type of resource entities to adjust.
Attribute Rule specifies a filtering rule that the resource entities must satisfy. The rule is a Boolean expression that includes attribute values of a resource entity that must evaluate to true for the entity to be considered as a potential adjustment target. You can type the expression in the Attribute Rule field, or you can right-click on the Attribute Rule field and select the Edit option to open the Edit Expression window. For more information about how to write the Boolean expression, see Appendix F: Expressions.
If a resource scheduling entity is used to dynamically process a resource agenda, then you use the TargetSearchRule attribute field to specify the criteria to identify a collection of resource entities as the potential adjustment targets. The TargetSearchRule attribute is of the type object; an example of the format follows:
Entity Type== Doctor; Attribute Rule== “Specialty==1 || Specialty==2”
If necessary, you can specify only the Entity Type or only the Attribute Rule part of the TargetSearchRule object. Double quotation marks are optional around the Entity Type and Attribute Rule values.
Adjust Units By specifies the policy used to allocate or deallocate resource units among targeted resource entities when there is a scheduled resource adjustment. In the following description, a potential target is a resource entity that satisfies the Entity Type and Attribute Rule specifications. There are three policies to select from:
FairIntegerBased indicates that any adjustment to the units of a resource entity is made on an integer basis (integrally) and that any fractional resource units are ignored. If there is an increase in resource units, then those units are distributed integrally and as evenly as possible among all unseized resource entities that are potential targets (the “unseized first” heuristic). If the set of potential targets includes only seized resource entities and the Seized option in the Resource Scheduler is selected, then the units are distributed integrally and evenly among all targeted seized resource entities. If the set of potential targets includes only seized resource entities and the Seized option is not selected, then the units are assigned integrally and evenly among the targeted seized resource entities, but the actual capacity increase for each resource entity does not occur until all seized entities that are potential targets return to a Resource Pool block and become unseized.
If there is a decrease in resource units, then the capacities of any unseized resource entities that are potential targets are integrally and evenly reduced. If there are not enough unseized resource units to cover the scheduled decrease (that is, there is a balance after targeting unseized entities), then the capacities of seized resource entities that are potential targets are integrally and evenly reduced either immediately (if the Seized option is selected) or when all seized resource entities that are potential targets return to a Resource Pool block and become unseized (if the Seized option is not selected). The FairIntegerBased policy is the default allocation policy.
IntegerBased indicates that any adjustment to the units of a resource entity is made on an integer basis (integrally) and that any fractional resource units are ignored. If there is an increase in resource units, then those units are distributed integrally and as evenly as possible among all unseized resource entities that are potential targets (the “unseized first” heuristic). If the set of potential targets includes only seized resource entities and the Seized option in the Resource Scheduler is selected, then the units are distributed integrally and evenly among all targeted seized resource entities. If the set of potential targets includes only seized resource entities and the Seized option is not selected, then the units are assigned integrally and evenly among the targeted seized resource entities, but the actual capacity increase for each resource entity does not occur until all seized resource entities that are potential targets return to a Resource Pool block and become unseized. Note that in the case of an increase in units, the IntegerBased option is the same as the FairIntegerBased option.
If there is a decrease in resource units, then the capacity of the first unseized resource entity that is a potential target is integrally reduced. If the first targeted unseized resource entity does not have enough resource units to cover the capacity change, then a second unseized resource entity is targeted and its resource units are integrally reduced, and so forth. If there are not enough unseized resource units to cover the scheduled decrease, then the capacity of the first seized resource entity that is a potential target is integrally reduced either immediately (if the Seized option is selected) or when all seized resource entities that are potential targets return to a Resource Pool block and become unseized (if the Seized option is not selected). If the first targeted seized resource entity does not have enough units to cover the capacity change, then additional seized resource entities are targeted, one by one.
FractionBased indicates that any adjustment to the units of a resource entity could result in fractional units. If there is an increase in resource units, then those units are distributed evenly among all unseized resource entities that are potential targets. This could result in fractional resource units for some targeted resource entities. If the set of potential targets includes only seized resource entities and the Seized option in the Resource Scheduler is selected, then the units are distributed evenly among all targeted seized resource entities, possibly resulting in fractional units for some resource entities. If the set of potential targets includes only seized resource entities and the Seized option is not selected, then the units are assigned evenly among the targeted seized resource entities, but the actual capacity increase for each resource entity does not occur until all seized resource entities that are potential targets return to a Resource Pool block and become unseized.
If there is a decrease in resource units, then the capacity of the first unseized resource entity that is a potential target will be reduced, including any fractional units. If the first targeted unseized resource entity does not have enough resource units to cover the capacity change, then a second unseized resource entity is targeted and its resource units are reduced, and so forth. If there are not enough unseized resource units to cover the scheduled decrease, then the capacity of the first seized resource entity that is a potential target is reduced either immediately (if the Seized option is selected) or when all seized resource entities that are potential targets return to a Resource Pool block and become unseized (if the Seized option is not selected). If the first targeted seized resource entity does not have enough units to cover the capacity change, then additional seized resource entities are targeted, one by one. Note that the FractionBased policy and the IntegerBased policy are the same except for the use of fractional resource units. The FractionBased allocation policy is the default in versions before Simulation Studio 14.1.
Deletes the selected appointment entries from the Appointments table.
RankValue (double)
None