• Tidak ada hasil yang ditemukan

Discrete event simulation

Dalam dokumen Production Scheduling for Robotics.pdf (Halaman 164-169)

Property 1. If i precedes j in “father” and “mother” individuals, then i precedes j in children created by the crossover

6.1. Introduction

6.3.2. Discrete event simulation

– the next job to be executed must be chosen in the job list;

– the name of this job must be taken out of the job list;

– the position of this job becomes: “on machine”;

– there is projection of the occurrence of a start of operation event for the job at the current date (if the job’s transfer time on the machine is negligible).

Priority rules

Choosing the next job in stock is a decision which will define the sequence in which the different jobs in stock will be processed. This decision must be made each time the machine becomes available and consists of only making a choice from jobs present in stock at that moment.

To make this decision, we can use a priority rule by allocating what we call a

“priority index” to each job. The higher the index value, the higher the priority for this job and the quicker it will be processed. The fourth part of this chapter presents a classification of the most common priority rules.

on and so forth until a set limit time is reached corresponding to the end of the simulation, or until the time when the schedule becomes empty.

Another type of simulation motor consists of increasing time by small increments and, testing at each increment, if conditions are met so that one of the events can occur. To categorize the occurrence of the different events sometimes a lower value time increment must be used which can be penalizing in calculation time because at each step in time, we must test if trigger conditions for each event are met.

When the simulation is finished, we have sequentially resolved the problem of determining dates for different events. We then know the state change times taking into account the state change logic associated with the different events, and in particular priority rules which can have been used to make the choices between jobs in progress.

EXAMPLE.– This example comes from the example in section 6.2. We only consider machine M2 and the three jobs A, B and C and corresponding operations.

Arrival dates and execution times are given in Table 6.1.

Jobs Availability dates Operation time

A 5 3

B 4 5

C 0 5

Table 6.1. Arrival dates and operation times

Date Type of event Job position Machine occupation state

Job list in stock

0 initialization idle empty

0 arrival C idle empty

0 start operation C C --> M2 busy empty

4 arrival B B --> stock busy B

5 arrival A A --> stock busy B, A

5 end operation C C --> out busy B, A

5 start operation B B --> M2 busy A

10 end operation B B --> out busy A

10 start operation A A --> M2 busy empty

13 end operation A A --> out idle empty

Table 6.2.Procedure of a discrete event simulation

Completing this simulation means gradually filling Table 6.2 by using the event list. Each line corresponds to an event and reproduces the state obtained after processing the occurrence of this event.

To gradually fill this table, we have used the following schedules containing projected events at a given moment (only major event lists are presented).

First event list:

Date Type of event

0 arrival C

4 arrival B

5 arrival A

Third event list after processing the start of operation C event:

Date Type of event

4 arrival B

5 arrival A

5 end of operation C

Fourth event list after arrival of B:

Date Type of event

5 arrival A

5 end of operation C

Fifth event list after arrival of A:

Date Type of event 5 end of operation C

Seventh event list after end of operation C and start of operation B:

Date Type of event 10 end of operation B

Ninth event list after end of operation B and start of operation A:

Date Type of event 13 end of operation A

Throughout the simulation, we evaluate different indicators relative to the state evolution of the system over time. This is how we can:

– catalog times of certain events which have a value of importance such as job due dates. In this way, we can compare due dates to delivery dates and measure the delay resulting from priority rules used;

– measure resource utilization indices (agents, production methods, transport systems, etc.) and know their saturation state;

– measure occupation indices from different storage devices and obtain indications on their future over or undersizing;

– determine the possible occurrence of generally undesirable events (inventory location saturation, congestion, etc.). Generally, discrete event simulations highlight bottlenecks which limit the circulation of entities in the system.

Simulation is therefore a method of evaluating performance (temporal or not) of a given system considering the way the flow of jobs within a system is accomplished (priority rules, for example).

6.4. Using the simulation approach for the resolution of a scheduling problem 6.4.1. Determination of projected schedule

In this problem, we wish to determine completion dates of different operations o(i, j) for jobs i on given resources Rk, considering temporal (allocated time, sequencing because of production routes, availability dates) as well as resource utilization constraints. We consider that jobs to be completed consist of manufacturing parts in a shop containing machines according to an order book. We thus know a group of jobs ito be manufactured on machines Mk according to their production routes.

When this shop’s operation simulation has been completed, we then observe as we have seen in the previous section that we have the “film” or the “chronogram” of the history of the variations of machine states over time. We then have dates for all events and among others, start and due dates for the different operations executed on machines Mk for the different jobs. In particular, we have the completion dates which are due dates of the last operations of production routes for each job. This series of dates can then be considered projected scheduling.

This scheduling was obtained by using a method for choosing jobs in stock on machines (priority rules). No criteria can be considered in a direct way in this

choice; however, indirect consideration can be made at priority rule level (with the limitations mentioned in the fourth part of this chapter).

EXAMPLE.– Using the same example as in section 6.2.4 corresponding to a shop with three machines and three jobs to complete. A simulation using the “first in, first out” priority rule makes it possible to obtain the schedule illustrated in Figure 6.2.

M1

M2

M3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Machines

time o(A,1)

o(C,1)

o(B,1)

o(B,2)

o(B,3) o(A,2)

o(A,3)

Figure 6.2.Schedule obtained using “first in, first out” priority rule

M1

M2

M3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

time o(A,1)

o(C,1)

o(B,1)

o(B,2)

o(B,3) o(A,2)

o(A,3) Machines

Figure 6.3.Schedule obtained using “shortest processing time first” rule

If we complete the same type of simulation using the “shortest processing time first” rule, we will need to execute A2 before B2 when operation C1 on M2 ends and we obtain a schedule in Figure 6.3 which respects delays.

Dalam dokumen Production Scheduling for Robotics.pdf (Halaman 164-169)