# Exercises: Discrete Event Systems Modeling

## Model Evaluation

Read a recent article where discrete event simulation models are used to solve real-world problems. Some of the publications you might look at are Management Science, Interfaces, Industrial Engineering, Operations Research, Material Handling, Medical Care, Computer Performance Evaluation, Expert Systems, and Simulation. Conference proceedings in various fields of engineering also have articles about simulation; in particular, the Winter Simulation Conference Proceedings is a good source.

Collect or create the following:

1. Photocopies of the title page and abstract of the article (explicitly give the source).
2. A brief statement of the objective of the simulation project (in your own words).
3. What programming language was used? Did they justify their choice?
4. A paragraph describing what real-world data was needed for the model and how it was collected.
5. A paragraph describing what experiments were run with the model. What factors were varied? What system performance measurements were taken? What analysis was done with these measurements?
6. Give a one-page critique of the article and project. What would you have done differently?

1. Give the most important advantage as well as the greatest disadvantage to having a simulation model with very few events as opposed to an equivalent model with many events.
2. What two features generally distinguish a discrete event simulation program from other types of programs?
3. What are the two broad classifications of entities in a discrete event system?
4. Give one advantage and one disadvantage to modeling the flow of transient entities in a system.
5. Does a model with few entities each having many attributes have more or less detail than a model with many entities each having fewer attributes? Which will generally take more memory to run? Why?

## Identifying Discrete Event Systems

For a real system of your choice, describe the system in less than a page and give a one-sentence objective for studying this system with a simulation model. Identify the dynamic attributes of entities in the system and the events where these attributes change values. Give a rough event graph for the system. (Pick something interesting to you (but simple).

## Simultaneous Events

In this model, if Q=5 and there is a time tie between an ENTER event and a LEAVE event, which event should be executed next? Why?

## Events List

In the event graph for the carwash model, what is the maximum number of events that might be scheduled on the events list at one time?

## Edge Interpretation

For this event graph, which of the following statements are true?

1. Whenever event A occurs: if t time units later, condition (i) is true, then event B will be scheduled to occur immediately.
2. Whenever event A occurs: if condition (i) is true, then event B will be scheduled to occur t time units later.
3. Whenever event A occurs and condition (i) is false, event B will be scheduled to occur t time units after condition (i) becomes true.

## Future Events List

```Future Events List for a System with Three Machines
(Time = 3.35)
```
```Time	Event Type	Event Attributes
3.35	BREAKDOWN	1
3.37	ARRIVAL
3.43	REPAIRED	2
4.40	FINISH	        0,1
8.35	REPAIRED	1
9.01	BREAKDOWN	0
```

Assume for this example events list, that the times between the next three part arrivals are 2, 1.5, and 3.2 (each ARRIVAL event schedules the next ARRIVAL event in this model). Furthermore, assume that the processing time for each machine is 0.5 minutes and that there are currently 6 parts waiting in the queue for processing. Finally, assume that once machine 2 is repaired it will be 10 minutes before it breaks again. What does the future events list look like at time 8.00? What is the status of each machine? How many parts are waiting in the parts queue?

## Simultaneous Event Errors

```Future Events List for a System with Three Machines
(Time = 3.35)
```
```Time	Event Type	Event Attributes
3.35	BREAKDOWN	1
3.37	ARRIVAL
3.43	REPAIRED	2
4.40	FINISH	        0,1
8.35	REPAIRED	1
9.01	BREAKDOWN	0
```

Assume that for the model corresponding to this example future events list, that the FINISH event made a machine idle and scheduled a START event if there were parts waiting in the queue. Also assume that an ARRIVAL event will schedule a START event if it finds an idle machine. What would happen if a part arrived at time 4.40, just as machine 0 finishes processing? What would happen if the FINISH event occurred before the ARRIVAL events?