• 沒有找到結果。

3. The Improving Heuristics

3.1 Phase I - Existing network algorithms

where the notations “P” and “C” in equation (20) represent the symbol of permutation in statistics. And the coefficient “0” indicates the setup time of two consecutive jobs from the same product type and the same product family should be zero.

Let the parameter σ , which may vary according to the problem data structure, be the allowance of uniform capacity decided by the user and be set as the value between -0.5 and 0.5. We consider the expected capacity EL is the allowance multiplied by the outcome, which is the sum of total job processing times plus the expected setup time ES divided by K machines fairly. Then we can get the

EL

as follows:

3.1 Phase I - Existing network algorithms

Generally speaking, the WPSP algorithms include insertion and saving algorithms.

The insertion algorithms generally include two types, the sequential and the parallel.

The saving based procedures include four types, the sequential, the parallel, the generalized, and the matching based. We first define the order

where and both represent the machine is in the idle state, and represents that selected job has been scheduled on the

)

(

i

0k

, i

1k

, ... , i

(ν1)k

, i

νk

, ... , i

Uk

i

0k

i

Uk

m

k

i

νk ν th

position of machine

m

k. Then we would review savings and insertion algorithms

by citing Clark and Wright [17], Golden [18], Pearn et al. [19], Solomon [20], Potvin and Rousseau [21], and Yang et al. [22]. These algorithms are including the sequential saving algorithm, the modified sequential saving algorithm, the sequential insertion algorithm, the parallel insertion algorithm, and modified parallel insertion algorithms. The procedures of these algorithms above are introduced as follows.

Sequential savings algorithm (SSA)

First of all, the sequential savings algorithm calculates the savings of all paired-jobs and creates a saving list by arranging their saving values in descending order. Then we pick the first pair of jobs from the top of the saving list to start an initial schedule.

We can confirm whether a selected pair of jobs is feasible by checking the machine capacity constraint and the due date restrictions of jobs. The sequential savings algorithm spreads out the schedule by finding the feasible pair of jobs from the top of the savings list and adding it to either one endpoint of the schedule. If the current schedule is too tight to add any job in, choose the feasible pair of jobs from the top of the saving list as a new schedule.

Repeat this step until all jobs are scheduled.

The procedure is presented in the following.

Step 1. (Initialization) Calculate the savings value defined as the following for all pairs of jobs and , where U denotes the idle status.

SA

ii

r

i

r

i

i i i i ii i

i i i

i i i

i

s s s s - s s s s s s

SA

′ = + + ' + ′U U + + ′U = U+ U′− ′ U U

U ( ' ) (22)

Step 2. Arrange the savings and create a list of the saving values in a descending order.

Step 3. Choose the first pair of jobs from the saving list as an initial schedule. Start from the top of the savings list, and proceed with the following sub-steps:

Step 3-1. Select the first pair from the top saving list without violating the machine capacity and due date constraints. Then add it to either one end of the current schedule.

Step 3-2. If the current schedule is too tight to add any job on it, choose the best feasible pair on the saving list to start a new schedule.

Step 4. The chosen jobs then form a feasible machine schedule. Repeat step 3 until all the jobs on the saving list are scheduled.

Modified sequential savings algorithm (MSSA)

The modified sequential savings algorithm adds two terms into the savings estimation, the consideration of the postponement and the time window restriction.

For the postponement, the selecting way would tend to choose the pair of jobs with not only higher saving values but longer processing time. By this way, the jobs with longer processing time are forced to be processed earlier than others with shorter one.

Considering the other term, the job with earlier job latest starting time would be placed before the job with later one on the savings list.

Two parameters, A and

B, are added into the savings function to present the percentage of postponement and

time window restriction, and W is the predetermined capacity.

The new savings function is expressed in the following:

e

i

Sequential insertion algorithm (SIA)

The main part of the sequential insertion is to build one schedule once until all jobs are scheduled. The sequential insertion would find the maximal benefit among the schedule places that a selected job can insert into. When the existing schedule is full of jobs, we create another new machine schedule. The initial rule is to select a job with the maximal initial setup time. After initializing the current schedule, the priority of selecting job depends on the regret value of all unscheduled jobs.

Find the best insertion place of all unscheduled jobs and select job with the largest regret value as the first inserted job. The evaluations of insertion cost and regret values are defined as follows.

)

)] the initial setup time of the unscheduled job . For each unscheduled job, we first compute its best feasible insertion place in equation (25), and we can get the regret value of in equation (26). The job with larger value should have the priority to be scheduled. Therefore, select the job with largest value and insert it into the best position of the schedule. All unscheduled jobs will be inserted under the following procedure.

m

k

s

Uu

Step 1. Initialize the schedule by selecting the job with the maximal initial setup time.

Step 2. For each unscheduled job, compute the best feasible insertion place , which has the smallest insertion value on machine .

ν* the best insertion place of the schedule. If the existing schedule is too full to add any unscheduled job, create a new schedule on another machine.

u

*

c

2(

u

*)

Step 4. Repeat Step 2 and Step 3 until all jobs are scheduled.

Parallel insertion algorithm (PIA)

The parallel insertion algorithm constructs a set of initial schedules on all machines in the beginning. Besides, it also creates a new regret measure, which is the sum of absolute differences between the best alternative on one machine and other alternatives on other machines. A large regret measure means that there is a large gap between the best insertion place of the unscheduled job on one machine and its best insertion place on the other machines. Hence, unscheduled jobs with larger regret values should be inserted into the schedule first, because there are large cost differences of the best insertion place and second alternative. In this algorithm, we add two criteria into our selecting rule. One is the value , which has the smallest insertion cost on th position of machine . The other is the regret value different from of equation (26). The insertion functions are as

)]

Initialization is done by selecting the unscheduled jobs with the first K largest initial setup times and putting them into the initial schedule of each machine. By applying this method, we can get the K initial schedules and compute the best insertion place in each of the schedules for all unscheduled jobs. Then we compute the regret value of all unscheduled jobs and find the largest value of job . Select job and insert it into the best position of machine with

Step 1. Initialize the schedule on each machine by selecting K jobs with the first K largest initial setup times.

Step 2. For each unscheduled job, find its best feasible insertion place by computing . with the largest regret measure among all unscheduled jobs.

Insert it into the th position of machine without violating the machine capacity and its due date restrictions.

)

3(

u c

u

*

c′

3(

u

*)

ν*

k

*

Step 4. Repeat Step 2 and Step 3 until all jobs are scheduled.

Parallel insertion with new initial criteria (PIA I)

According to idea of the VRPTW, PIA first selects the farthest node to visit at the beginning stage. However, selecting the job with largest initial setup time, the farthest node, may not reduce the total machine workload. Comparing to PIA, this modified one adds new initial criteria in find initial jobs of parallel machines.

Inserting a job into the existing schedule of the same product family can significantly reduce the increased setup time. Because the jobs of the same product type must belong to the same family, this procedure chooses the product type including the maximal number of jobs and picks the job with the smallest latest starting time of this type to be the initial schedule on each machine. Once the job of product

e

i

r

i

type is selected for a specific machine, other jobs of product type

cannot

be selected as the initial schedules on other machines. After initializing K schedules of machines, the following steps of PIA I are identical to PIA.

)

J

(i

J

(i)

Parallel insertion with the slackness (PIA II)

In order to express the impact of job due date, this algorithm adopts the modified insertion functions

c

11

( u , k ,

ν

)

of equation (31) instead of the value

c

1

( u , k ,

ν

)

of PIA. It adds the latest starting time of unscheduled job into consideration and that would make the selection rule choose the job with smaller latest starting time as the priority possibly. The modified insertion function is as the following.

e

u

u

1 0

, ) )(

1 ( ) (

) , ,

(

( 1) ( 1)

11

u k

ν

=

λ

s

iν u

+ s

uiν

s

iν iν

+ −

λ

e

u

λ

c

k k k k (31)

According to the insertion function above, we can determine the ratio of the insertion values that the slackness would have by revising the value λ. The insertion procedure is the same as PIA.

Parallel insertion with new initial criteria and slackness (PIA III)

Because PIA I and PIA II do have the advantage of reducing total machine setup time, we generate the new modified parallel insertion algorithm by combining two insertion criteria of job selection. At the beginning of inserting initial jobs, the algorithm selects the product type including the maximal number of jobs and chooses the job with the smallest value in this product type as the initial schedule on each machine. Once the job of product type is selected for a specific machine, other jobs of product type

cannot be put as the initial schedule on other

machines. The insertion cost is the same as

e

i

r

i

J

(i)

)

J

(i

) , ,

11

( u k

ν

c

in equation (31) and other steps in this modification algorithm are identical to PIA II.

Parallel insertion with the variance of regret measure (PIA IV)

The original parallel insertion procedure does not consider the impact of the

variance between the best insertion places on all machines. This modified algorithm creates a new regret measure including not only the absolute total differences of the best insertion value and other alternatives but also the variance among them.

Therefore, the selected job would have a significant variance under large regret values. The modified calculation of the regret value is the following.

)

The notation in equation (33) is the variance of best insertion cost between all parallel machines, and

) ( c

1

Var ′

) ( c

1

Avg ′

is the average value of best insertion cost on all parallel machines. We can determine the schedule ranking of all jobs on all parallel machines by adjusting the parameter ϕ .

相關文件