You are here:Home>Learning Center>User’s Guide>Chapter 10 – Modeling Techniques

User's guide chapter 10 section 1 & 2



Previous: Chapter 9 Next: Chapter 11

Chapter 10 – Modeling Techniques

10.1 – Activity-Related Techniques

10.1.2 – Activity Time Variation

Activity time that varies randomly due to the variable nature of the entity or activity or as a result of the inconsistent behavior of the resource used at the activity.

Suggested Technique

1. Determine the probability distribution that best fits the activity time (more on probability distributions).

2. Enter the probability distribution in the Time field of the General properties sheet for the activity (alternatively, a TIME statement can be used in the action logic for the activity).

Example: A phone-in order may have a time that is triangularly distributed with a minimum of 2 minutes, a mode of 5 minutes and a maximum of 12 minutes

Activity time variation example

TO DO: In the Time field of the General properties dialog enter T(2, 5, 12) as shown above. Alternatively you could enter Action Logic for the activity: TIME(T(2, 5, 12) min).

10.1.2 – Processing Entities Concurrently at an Activity

Multiple entities are allowed to enter an activity and be processed concurrently (at the same time at the same activity), independent of other entities.

Suggested Technique

1. Set the capacity of the activity to the maximum number of entities that can occupy the activity at any one time.

Example: Because a bank uses five tellers, the Bank_Teller activity is able to concurrently and independently handle up to five Customers at any given time.

Processing Entities Concurrently at an Activity

TO DO: Create the activity with a  Capacity of  5.

10.1.3 – Attribute-Dependent Activities

The activity time or some other activity action is based on the value of a particular attribute of the entity.

Suggested TechniqueAttribute-Dependent Activities

1. Define an attribute for the entity in the Insert -> Attributes & Variables dialog. Optionally, you may use one of the predefined attributes listed in Chapter 3.12.3.

2. Set the attribute to the desired value in any action logic in the model using the assignment statement.

3. Use an IF…THEN statement in the Action logic of the activity specifying the time or other action statements to be executed based on that attribute.

IF a_Type = REGULAR THEN
{
Time 8 Min
}
ELSE
{
Time 5 Min
}

Example: Two types of Orders are processed in a system: Regular and Pre-invoiced . At the Log In activity, Orders which have been previously designated as Regular orders require an invoice to be printed and therefore take 8 minutes to process. Pre-invoiced orders take only 6 minutes to process.

TO DO: Define a descriptive attribute called Type with the descriptors Regular and Pre Invoiced. Assign the appropriate descriptor to the attribute in some Action logic prior to the Log_In activity. Enter the Action Logic (as shown above) to determine the type of order and act accordingly.

Important information to be aware of If the attribute assignment is based solely on percentage and this is the only activity where the attribute is used to make a decision, use the Percentage-Dependent Activities technique below.

10.1.4 – Percentage-Dependent Activities

The activity time or some other activity action occurring only a percentage of the time.

Suggested Technique for Activity Times

If only the activity time is different based on percentage, the following technique may be used.

1. Select the General tab of the activity’s properties dialog.

2. Enter a Discrete distribution function in the Time field for simple activity time assignment by percentage.

Example: An activity takes 5 minutes 28% of the time, and 7 minutes 72% of the time.

Percentage-Dependent Activities

TO DO: Enter the Discrete distribution (as shown above) in the Time field.

See Also To learn more about the Discrete distribution, see Distributions in Chapter-3.12.1.

Suggested Technique for Activity Actions

1. In the Action logic of the activity, use the Percent() function in an IF…THEN statement.

2. Define Action logic for the true and false cases of the Percent() function.

Example: Twenty percent of the time the X_Ray activity requires the use of a Specialist for 30 minutes. The other 80% of the time X_Ray simply takes 15 minutes with no resource required.

Percentage-Dependent Activities

TO DO: In  X_Ray ’s Action Logic, enter the logic as shown above.

10.1.5 – Assembly Activities

Attach or join one or more entities (e.g. component parts) to a base entity.Assembly Activities

Note that in many instances you may not need to model the actual entities being joined but only the time to join them. If it is known, for example, that the components assembled to a base entity are always available when needed, it is sufficient to specify an assembly time for the base part at each assembly station as it moves through the process.

Suggested Technique

If it is necessary to model the component entities feeding into the assembly activity, do the following:

1. Route the main or base entity into the assembly activity using any routing other than an Attach.

2. Connect each storage or activity holding the entities to be attached to the assembly activity using the Attach routing (each type of component to be assembled must come from a separate storage or activity).

 Example: Four Wheels and a Handle are assembled to a Wagon at the Assembly station

TO DO: Route the Wagon by any routing other than an Attach or Pickup. Route the Wheel (quantity of 4) and the Handle using an Attach routing for each as shown above. The time to perform the assembly activity may be defined in the activity’s Time field.

10.1.6 – Disassembly Activities

Detach one or more entities from another entity to which they have been attached.

Suggested TechniqueDisassembly Activities

1. Create an activity where the disassembly is to occur and define the disassembly time.

2. Use a Detach routing for the entities to be detached from the assembly. (Use Name = entity_name in the Condition field to detach only certain entities.)

3. Define a routing (not a Detach) for the entity to which the others were attached (the base or main entity).

Important information to be aware of If you want to separate one or more entities from another entity and they have not been previously attached to the entity somewhere in the model, use the create routing. See 10.2.2 Creating Entities.

Example: A store rents Skis to Customers for a random period of time and the Customer later returns the Skis to be checked back into the Ski Storage.

TO DO: Attach the Skis to the Customer at the Rental activity. Define the random rental time in the Rental activity, then route the Customer to the Return_Skis activity. Detach the Skis from the Customer using a Detach routing as shown above and route the Customers out of the Return_Skis activity with a 100% routing.

10.1.7 – Recurring Activities

An activity through which the same entity passes multiple times, possibly with a different activity time or routing with each pass.

Suggested TechniqueRecurring Activities

1. Define an attribute called Pass (or another appropriate name).

2. In the activity Action logic, increment the Pass attribute: INC Pass

3. Use an IF…THEN statement in Action logic to specify a different activity time for each pass through.

4. Use Conditional routings based on the value of Pass, e.g. Pass = 1 , or Pass =2 if the routing is different with each pass.

Example: A machined Part must pass through the same Wash activity twice. The wash cycle and the routing are different for each pass. The first time through the Part is washed for 5 minutes and then it goes to Station5. The second time through, the Part is washed for 3 minutes and then it goes to Station6.

TO DO: Define an attribute called Pass. Define action logic for the Wash activity as shown above. Connect Wash to each station with conditional routings, their condition fields set as shown above. Route the Part from Station5 back to the Wash activity.

10.1.8 – Grouping or Batching After an Activity

Collect two or more entities into a batch or group after an activity in order to move them onto the next activity as a batch. Useful for accumulating a batch of a specified quantity or recreating a batch that had been previously batched.Grouping or Batching After an Activity

Suggested Technique (batching a specified quantity)

1. Specify an output queue capacity for the activity that is at least as great as the largest batch size.

2. In the Batching tab, select Batch for After Activity.

3. Specify the quantity to be batched.

Example: In producing TO-DO pads, the printer groups the pads into batches of 50 as they come off the press (after the Printing activity). The pads are then routed to the Padding activity and then to the Cutting activity.

TO DO: Select the Batching tab of the Printing activity and choose Batch for After Activity, then enter a Batch Size of 50. Select the General tab and enter 50 in the Output Queue Cap. field.

10.1.9 – Grouping or Batching a Variable Quantity at a Specific Time

Collect two or more entities into a batch or group after an activity or queue in order to move them onto the next activity as a batch. Useful for holding entities for daily processing.

Suggested Technique (batching a variable quantity)

1. Make the routing prior to batching activity an Attach routing. In place of a quantity to attach, insert the word ALL.

2. Place a new (temporary) entity with an arrival connector to the batching location.

3. Set the arrival type to match your batching pattern. Often a Daily Pattern arrival will provide all the flexibility needed to set batching times.

Example: Product orders arrive throughout the day but are not processed until 4:00 PM

Grouping or Batching a Variable Quantity at a Specific Time

TO DO: Create a new entity that will act as a trigger to cause batching to occur. Create a Daily Pattern arrival for the “trigger” entity. Set the pattern of arrival, for each day, to have a single entity arrive at the time the batch is to occur. Create a queue, or holding location, for the entities that will be batched. Make the routing an Attach routing from the queue to the batch location with a quantity of ALL.

10.1.10 – Ungrouping or Unbatching After an ActivityUngrouping or Unbatching After an Activity

Separate an entity batch into individual entities after the completion of an activity. It is assumed that entities have been previously batched. To create entities from a single entity that has not been batched, see 10.2.2 Creating Entities.

Suggested Technique

1. Select Unbatch in the After Activity section of the Batching tab for the activity.

 Example: After being painted and dried in batches, Parts are unbatched before moving on. The Parts enter the Dry activity already grouped (in the Paint activity). They are dried as a batch and then unbatched to be routed to the next activity individually.

TO DO: Select the Dry activity’s Batching tab. Choose Unbatch for After Activity. You may need to define an output queue for the activity if you don’t want to block up the paint and dry activities.

 See Also To see how the Parts are grouped before the Paint activity, see Grouping or Batching Before an Activity.

Important information to be aware of All batches or groups are unbatched when the batched entity exits the model in order to complete statistics collection on each entity.

10.1.11 – Grouping or Batching Before an Activity

Collect two or more entities in the input queue of an activity in order to process them together as a batch. Useful for batching a specified quantity or for rebatching a batch of items that had been previously unbatched. To unbatch entities after the operation, see Ungrouping or Unbatching After an Activity.

Suggested Technique (batching a specified quantity)

1. Specify an input queue capacity for the activity that is at least as great as the largest batch size. (Activity input queues are automatically set to 999 as the default capacity.)

2. In the Batching tab, select Batch for Before Activity.

3. Specify the quantity to be batched.

Example: Parts are collected in groups of ten and painted in an automatic painting process. The Parts enter the Paint activity input queue individually, they are grouped in sets of 10, painted, and routed to the Dry activity as a group.

Grouping or Batching Before an Activity

TO DO: Select the Paint activity’s Batching tab. Choose Batch for Before Activity and set the quantity to be batched at 10.

See Also To see how the Parts are ungrouped after the Dry activity, see Ungrouping or Unbatching After an Activity.

10.1.12 – Rebatch to a Previous Quantity

Create a batch that is the same size as a previous batch without specifying a quantity. This allows the batch size to be set in one place and all subsequent batches to be set automatically. To unbatch entities after the operation, see Ungrouping or Unbatching After an Activity.Rebatch to a Previous Quantity

Suggested Technique (re-creating a batch)

1. Specify an input queue capacity for the activity that is at least as great as the largest batch size. (Activity input queues are automatically set to 999 as the default capacity.)

2. In the Batching tab, select Rebatch for Before Activity

Example: A batch of 48 PC boards must be unpacked (unbatched) at the Receiving activity, individually inspected at the Inspection activity, and then moved individually (on a conveyor) to be rebatched at the Packaging activity.

TO DO: Select Rebatch for Before Activity in the Batching tab of the Packaging activity. Then enter a number greater than or equal to 48 in the Input Queue Cap. field in the General tab.

 Important information to be aware of The Rebatch option may also be used to create a batch for arrivals defined with a quantity greater than one. See Batching.

10.1.13 – Ungrouping or Unbatching Before an Activity

For entities routed to an activity as a batch, it may be desirable to unbatch the entities prior to the activity (in the input queue) for processing each entity individually.

Suggested Technique

1. Select Unbatch in the Before Activity section of the Batching tab for the activity.

Example: The sales department accumulates a stack of 20 purchase orders, Orders , which move together as a batch to accounting for billing. At the Billing activity, an invoice is created for each purchase order and sent on individually to a data entry activity.

Ungrouping or Unbatching Before an Activity

TO DO: Select the Billing activity and select the Batching tab. Now choose Unbatch for Before Activity as shown above.

 Important information to be aware of If you want to accumulate the same entities back into a batch after the activity, select Rebatch for After Activity and make sure an output queue capacity is defined to meet or exceed the quantity that will be rebatched.

10.1.14 – Processing Individual Entities from a Batch

A batched entity enters an activity input queue where each entity in the batch is processed individually. The entities may be rebatched optionally in the output queue.

Suggested TechniqueProcessing Individual Entities from a Batch

1. Route the previously batched entity to the activity. Make sure the activity has an input queue capacity greater than zero (the default is 999).

2. In the activity’s properties dialog under the batching tab, select Unbatch for Before Activity. (Optionally select Rebatch for After Activity if you wish to have the entities regrouped in the same quantity as they came in.)

Example: A batch of 48 PC boards must be unpacked (unbatched) and individually inspected a