Forklift-Transport-1 Model Description Back to simulation

This modeling problem has been posted by Noorjax Consulting as their AnyLogic Contest #2.

A common process in any warehouse is the transport of objects with the help of forklifts driven by operators. In this type of process, operators are trained to handle certain types of forklifts, which, in turn, are designed to transport certain types of items.

There are 4 locations/areas of interest: the product arrival area, the operators' home location, the forklifts' home location and the destination area.

The process consists of the following steps:

  1. During the day, different types of products arrive at the product arrival area.
  2. When a product arrives, if a forklift that can transport this product and an operator that can handle it are available, the operator receives the transport order and walks to the forklift home location, drives the forklift to the product arrival area, loads the product, transports it to the destination area and unloads it.
  3. Otherwise, the newly arrived product is stored in the arrival area, waiting to be transported.
  4. After products have been unloaded at the destination area, if there are still products waiting to be transported with the same type of forklift, operators drive their forklift back to the arrival area and take care of the next transport order. Otherwise, they drive the forklift to its home location, where they check if there is still a product waiting that can be transported with one of the available forklifts:
    1. If there is one, they grab one of the suitable forklifts and take care of the transport order.
    2. If there is none, they walk back to the home location.
Product types
IDNameArrival rate (per hour)
1small10
2medium20
3big30
Forklift types
IDNameAvailableCan take products
1electric1{1,2}
2manual2{1}
3heavy1{2,3}
Operator types
IDNameAvailableCan drive forklifts
1senior2{1,3}
2junior2{2}
3external2{3}

You can inspect the model's OESjs code on the OES GitHub repo.

Conceptual Model

A company's forklift transport operation has resource pools for forklifts (FLs) and their operators. The seven activities Walk to FL, Drive FL to arrival area, Load product, Transport product, Unload product, Drive FL back to arrival area and Drive FL home require both a forklift and an operator) as a resource, while Walk back home activities require only an operator.

Conceptual Information Model

The potentially relevant object types are:

  1. products,
  2. arrival area,
  3. destination area,
  4. forklifts,
  5. operators.

Potentially relevant types of events and activities (and the types of objects that participate in them) are:

  1. product arrivals (involving products),
  2. walk to FL (involving operators and forklifts),
  3. drive FL (from home location) to arrival area (involving operators and forklifts),
  4. load product,
  5. transport product (involving operators, forklifts and products),
  6. unload product (involving operators, forklifts and products),
  7. drive FL back to arrival area (involving operators and forklifts),
  8. drive FL home (involving operators and forklifts),
  9. walk back home (involving operators).

Both object types and event types, together with their participation associations, can be visually described in a conceptual information model in the form of a UML class diagram.

Conceptual Process Model

The types of events and activities listed above can be related with each other via event scheduling arrows, as shown in the following DPMN process diagram:

A DPMN diagram showing a conceptual process model

Notice that no activity node in this model needs a task queue, since their required resources are already allocated by their predecessor node. Consequently, no resource-dependent activity scheduling arrows are used in the diagram.

Simulation Design
Information Design Model

In the information design model, we need to define a status attribute for all resource object types, such as Forklift and Operator, and a duration function for each activity type:

An information design model defining object, event and activity types.
T.B.D.

Notice how functions representing random variables, like the duration function of all activity types, are marked with the keyword (or UML 'stereotype') «rv» standing for "random variable". These random variable functions sample from a probability distribution function (PDF), which is symbolically indicated with expressions like Tri(30,50,40) standing for the triangular PDF with lower and upper bounds 30 and 50, and a median of 40.

Process Design Model

In the process design model, we need to specify the state changes and follow-up events caused by events, including activity start and end events, and the constructor arguments for scheduling follow-up events, using model variables (possibly referencing resource pools), as shown in the following DPMN diagram:

A computationally complete process design for the Load-Haul-Dump business process.
T.B.D.
Implementation with OESjs

The JavaScript-based simulator OESjs Core 2 implements the Activity Networks modeling language of the Object Event Simulation paradigm, and, consequently, allows a straight-forward coding of OE class models and DPMN process models.

Implementing the Information Design Model

For implementing the information design model, we have to code all object types, event types and activity types specified in the model in the form of classes.

T.B.D.
Implementing the Process Design Model

A DPMN process design model can be decomposed into a set of event rule design models, one for each type of event specified in the design model.

Back to simulation