Sei sulla pagina 1di 14

IE 4115

Tutorial Lab

This lab is based upon L4.1 of Harrell, Ghosh, and Bowden, Simulation Using Promodel, McGraw-Hill, 2004.

Fantastic Dan's Barbershop


This first lab provides the opportunity to get your feet wet using ProModel. It leads you through, in full detail, the building of a simple barbershop simulation. When you are done, you will have built and run your first simulation model, and learned some of the most important basic components of a ProModel discrete simulation model. NOTE: There are many screen captures so that you can see what it should look like as you build the model.

Application
We are going to examine the ever popular local barbershop, Fantastic Dan's Haircuttery. For now we will assume that customer's interarrival time follows a triangular distribution with a minimum of 7 minutes, most likely value of 8 minutes, and maximum value of 9 minutes. Also, Dan takes anywhere from 8 to 10 minutes to cut a person's hair which includes everything from seating the customer to collecting his money. We are going to use a uniform distribution to model the time to cut hair. This indicates that every time between 8.0 and 10.0 minutes is equally likely. There are a large number of other distributions we could use and we will cover these in greater detail later in the course but these two are used relatively often and will suffice for now. Our objective is to determine over the course of a day (480 minutes): How many customers does Dan process? ________ What is the average number of customers waiting to get a haircut? maximum? _____ _______ What is the

What is the average time spent by a customer in the barbershop? _____

Step 1: Getting Started

Enter general information about the model that we are building. You can give it any title that you want. Note that this is not the same as the file name which we will enter later.

Before beginning the lab, you must set the save location for your model and results. Under Tools and Options, update the folder locations for Models, Output Results and Auto-Save to your jump drive or your primary save location. The Graphics Library option should be left as the default location. The first thing that we need to do is to define the Locations in the model. A Location is a place where entities are processed or held. Select the Build Locations command. (Build|Locations) The screen will look something like the image to the right. The top box is labeled the Locations Window. In the bottom right is the Layout Window. In the bottom left is the Graphics Window. Grab the item that looks like the railroad track from the graphics window by left clicking on it.

Next, left click where you want the end of the line to be. Move to the right and right click where you want the line to end. This would be where the next customer to get a haircut stands.

After entering this you will see that it looks like the following. Notice that not only is the railroad track drawn in the Layout Window but there is also an entry automatically made for us in the Locations Window.

We need to modify the "railroad track" now. Double click on the railroad track and we will get the Conveyor/Queue dialog box. Now we need to change it from a Conveyor to a Queue by clicking on the Queue button. The other characteristics don't matter to us right now.

Follow the same process to create a location for Barber Dan. Later we will use something called "Resources" to better model a person such as Barber Dan but this will work for now. Simply select one of the people from the graphics Window and put him to the right of the customer line that we have drawn. Note: If you put him in the wrong place and want to change, you cannot simply delete the icon. This will delete the icon only but leave an invisible location. You need to go into the Locations Window and then use Edit|Delete command. Next, let's change the names of the locations we created to be a little more descriptive. Just click on Loc1 and change that to something like Customer line. Notice that Promodel will substitute underscores so that it actually reads Customer_line. Repeat the same process to change the name of the Machinist to Dan.

There are a few things worth mentioning from the Locations window. We will deal with the other items later.

Notice that it says that the Capacity of the Customer_line is infinite while Dan has a capacity of one. Units being equal to one indicates that there is only one Customer_line and there is only one Dan. DT's refers to downtime. We could use this to model a break for Dan but he is a tireless worker that never needs to take a break.

Next, select the Build Entities command. (Build|Entities) An entity is the item that gets processed in the system. In this case, the customers are the only type of entity but we could have dozens of different of types of entities in a model.

We will start off with a blank Entities Window. Just click on a graphical image of someone that looks like they might need a haircut.

This is what it looked like for me. Notice that once again ProModel came up with a default name. Go ahead and change this name to Customer. Also, if you want you can go in and rotate the person or change the size by clicking on the Edit button in the graphic window. We won't do this now but if you are working faster than the class, feel free to do so.

Next, we will move on to Processing. This will handle both Processing and Routing of Entities. It is a little tricky so follow along carefully.

Your screen will look something like this but will be a lot less squeezed for space. We now have four windows. Starting from the upper left corner and working clockwise, they are: Process, Routing, Layout, and Tools.

Start in the Process window. We need to select an entity that our process works upon. To avoid a spelling error, Promodel provides an easy way to examine all of the Entities that have already been defined. Simply click on the Entity button. Make sure that Customer is highlighted and then click OK.

Next, we will use the same shortcut to select where we will do the processing/routing. First we will get the routing from the Customer line so make sure that Customer_line is highlighted and click OK. There isn't an operation that needs to be done in the line other than to move to Dan when Dan has an opening so we will leave the Operation field blank.

We need to say that the Customer entity is routed from the Customer Line to Dan though. This is done in the Routing window. First click on the Output button of the Routing window and make sure that Customer is highlighted, then click OK. This indicates that a customer after going through the line is still a customer and isn't changed into something else.

Next we enter the Destination of a customer leaving the line which is Dan.

Notice how this is represented graphically by the red arrow. A customer leaves the line to go to Dan for service.

We also need to include the processing (or cutting of a customer's hair) by Dan. Go to the Process Window, and select a customer as an entity and a location of Dan. Start this by hitting enter to create a new row in the Process window.

Next, we need to enter a description of the operation that Dan performs.

The customer ends up waiting until Dan finishes cutting his or her hair. Not surprisingly, we will be using the WAIT command. Recall that we said that we would use a uniform distribution between 8 and 10. This is described in Promodel by the mean and the half range so it is entered as U (9,1). Putting it together, we can enter it as WAIT U (9,1) in the operation field. You can also use another tool called the logic builder to help with the syntax. To get to this, click on the Operation button, then on the button in the editor window that comes up. To input the uniform distribution, click the Time button. Distribution Functions are located under the Logic Elements section. The result will be this entry in the Process Window. Next we need to enter the routing for a customer. When a customer finishes getting his or her haircut, the customer EXITS the system. Not surprisingly, this is exactly the way it looks in the Routing window. Notice how to block in the Process window corresponds to one or more blocks in the Routing window. In more complex cases, we may find it help to use the File|View Text command to examine the routing and processing of entities.

Okay, we are getting close to the finish line. Our next step is to define the arrival of customers (or entities) to the system.

Notice that the Occurrences and Frequency columns do not have dialog boxes associated with them. You need to enter this information manually. This includes even defining the triangular distribution for the interarrival times. Note: Logic Builder can be accessed for the Frequency column by right-clicking on the box.

Our last step is to select the Simulation Options

We will define and use the other options later but for now just set the length of the run to 8 hours. While poor Dan doesn't take a break, at least he only puts in an 8 hour day. Be sure that the Output Path is defined as your save location. Finally click run. (If you haven't saved already, ProModel will prompt you to do so.)

After it finishes running, there is a dialog box asking if you want to see the results. Click Yes.

Of course your results can be (and probably should be) slightly different from mine. We can click on the above buttons to see some graphical representations of the results. Note the ProModel 2002 (version 6.0) has a default result screen that is different from the one shown in the cell to the right. To switch to the old style output format click options in Tools menu in ProModel. Switch from Output Viewer 3DR to Output Viewer.

Scrolling down we can see more of the General report of the simulation results.

Congratulations! You have done your first discrete simulation.

Questions
For the Fantastic Dan Barbershop, run the simulation model for a whole year (250 days, 8 hours each day) and type the answers to the following questions for class discussion. The questions will be collected on Tuesday come prepared to discuss your results. Be sure to identify where you found the information for each of the following questions: 1. On average how many customers does Dan serve each day? 2. What is the average number of customers waiting to get a haircut? What is the maximum? 3. What is the average time spent by a customer in the salon? What is the maximum time spent in the salon? 4. On average, how busy is Dan? Is it satisfactory? 5. How many chairs should Dan have for customers waiting for a hair cut? 6. If Dan could take exactly nine minutes for each haircut, will it improve the situation? 7. Whats the relationship between Average Minutes Wait For Res, etc. and Average Minutes Blocked?

Potrebbero piacerti anche