280 likes | 306 Views
IOE/MFG 543. Chapter 14: General purpose procedures for scheduling in practice Section 14.4: Local search (Simulated annealing and tabu search). Introduction. Constructive vs. improvement type algorithms Constructive type Construct the schedule by, e.g., adding one job at the time
E N D
IOE/MFG 543 Chapter 14: General purpose procedures for scheduling in practice Section 14.4: Local search (Simulated annealing and tabu search)
Introduction • Constructive vs. improvement type algorithms • Constructive type • Construct the schedule by, e.g., adding one job at the time • Improvement type • Start with some complete schedule • Try to obtain a better schedule by manipulating the current schedule
General local search algorithm • G(S) is the value of the objective under schedule S • Let k=1. Start with a schedule S1 and let the best schedule S0=S1 • Choose a schedule Sc from the neighborhood of Sk N(Sk) • If Sc is accepted let Sk+1 = Sc, otherwise let Sk+1= Sk. If G(Sk+1)<G(S0) let S0=Sk+1 • Let k=k+1. Terminate the search if the stopping criteria are satisfied. Otherwise return to 2.
Local search example (2)Schedule representation • Let the vector S=(j1,…,jn) represent the schedule • jk=j if j is the kth job in the sequence • Use EDD to construct the initial schedule • S1= … • The total weighted tardiness • Let G(S) be SwjTj under schedule S => G(S1)= …
Local search example (3)Neighborhood structure • Manipulating S1 • Pairwise adjacent interchange • Try to move a job to a different location in the sequence • Rules 1 and 2 above define two types of neighborhoods N1 and N2 • N1(S1)=… • N2(S1)=…
Local search example (4)Choosing Sc • Assume we use N1 • Methods for choosing Sc from N1(Sk) • Randomly • Move the job forward that has the highest contribution to the objective • Follow rule 2 • Interchange jobs … and … • Sc = ( , , , ) • G(Sc) =
Local search example (5)Acceptance criteria • Is G(Sc) < G(Sk)? • Should we consider accepting Sc if G(Sc) ≥ G(Sk) ? • In this example we only accept if we get an improvement in the objective
Local search example (6)Stopping criteria • Max number of iterations • No or little improvement • We would terminate the search since we did not improve the current schedule • Local optimal solution • No solution S in N(Sk) satisfies G(S)<G(Sk)
Local search example (7)Continuing • S2=S1=(1,3,2,4) • Swap 3 and 2 => G(1,2,3,4) = 115 • S3=(1,2,3,4) • Swap 4 and 3 => G(1,2,4,3) = 67 • S4=(1,2,4,3) • Swap 4 and 2 => G(1,4,2,3) = 72 • S5=S4 • Swap 2 and 1 => G(2,1,4,3) = 83 • STOP and return (1,2,4,3) as the solution
Local searchDesign criteria • The representation of the schedule • The design of the neighborhood • The search process within the neighborhood • The acceptance-rejection criteria • Stopping criteria
Simulated Annealing (SA) • Annealing: Heating of a material (metal) to a high temperature and then cooling it at a certain rate to achieve a desired crystalline structure • SA: Avoids getting stuck at a local minimum by accepting a worse schedule Sc with probability
SA: Temperature parameter • bk ≥ 0 is the temperature (also called cooling parameter) • Initially the temperature is high making moves to a worse schedule more likely ~50% chance of accepting a slightly worse schedule seems to work well • As the temperature decreases the probability of accepting a worse schedule decreases • Often, bk=Tak for some .9<a<1 and T>0
SA algorithm • Set k=1 and select b1.Select S1 and set S0=S1. • Select Sc (randomly) from N(Sk). • If G(S0)<G(Sc)<G(Sk) set Sk+1=Sc and go to 3 • If G(Sc)<G(S0) set S0=Sk+1=Sc and go to 3 • If G(Sc)>G(Sk), generate a uniform random number Uk from a Uniform(0,1) distribution (e.g., rand() in Excel) If Uk≤P(Sk,Sc), set Sk+1=Sc; otherwise set Sk+1=Sk. • Select bk+1≤ bk.Set k=k+1.Stop if stopping criteria are satisfied; otherwise go to 2.
SA exampleIteration 1 • Step 1: S0=S1=(1,3,2,4). G(S1)=136. Let T=10 and a=.9 => b1=9 • Step 2. Select randomly which jobs to swap, suppose a Uniform(0,1) random number is V1= .24 => swap first two jobs • Sc=(3,1,2,4), G(Sc)=174, P(Sk,Sc)=1.5% • U1=.91 => Reject Sc • Step 3: Let k=2
SA exampleIteration 2 • Step 2. Select randomly which jobs to swap, suppose a Uniform(0,1) random number is V2= .46 => swap 2nd and 3rd jobs • Sc=(1,2,3,4), G(Sc)=115 => S3=S0=Sc • Step 3: Let k=3
SA exampleIteration 3 • Step 2. V3= .88 => swap jobs in 3rd and 4th position • Sc=(1,2,4,3), G(Sc)=67 => S4=S0=Sc • Step 3: Let k=4
SA exampleIterations 4 and 5 • Step 2: V4= .49 => swap jobs in 2nd and 3rd position • Sc=(1,4,2,3), G(Sc)=72, b4=10(.9)4=6.6 • P(Sk,Sc)=47%, U4=.90=> S5=S4 • Step 3: Let k=5 • Step 2: V5= .11 => swap 1st and 2nd jobs • Sc=(2,1,4,3), G(Sc)=83, b5=10(.9)5=5.9 • P(Sk,Sc)=7%, U5=.61=> S6=S5 • Step 3: Let k=6 • Are you bored yet?
Tabu (taboo?) search • Tabu search tries to model human memory processes • A “tabu-list” is maintained throughout the search • Moves according to the items on the list are forbidden
Tabu search algorithm • Set k=1. Select S1 and set S0=S1. • Select Sc from N(Sk). • If the move SkSc is on the tabu list set Sk+1=Sk and go to 3 • If SkSc is not on the tabu list set Sk+1=Sc.Add the reverse move to the top of the tabu list and delete the entry on the bottom.If G(Sc)<G(S0), set S0=Sc. • Set k=k+1.Stop if stopping criteria are satisfied; otherwise go to 2.
Tabu search example:1||SwjTj • Determine Sc by the best schedule in the neighborhood that is not tabu • Use tabu-list length = 2 • The tabu list is denoted by L
Tabu search exampleIteration 1 • Step 1: S0=S1=(1,3,2,4). G(S1)=136. Set L={}. • Step 2. N(S1)= {(3,1,2,4), (1,2,3,4), (1,3,4,2)} with respective cost = {174, 115, 141} => Sc=S0=S2=(1,2,3,4). Set L={(3,2)}, i.e., swapping 3 and 2 is not allowed • Step 3: Let k=2
Tabu search exampleIteration 2 • Step 2. • N(S2)= {(2,1,3,4), (1,3,2,4), (1,2,4,3)} • with respective costs = {131, - , 67} => Sc=S3=(1,2,4,3) • Set S0=Sc • Set L={(3,4),(3,2)} • Step 3: Let k=3
Tabu search exampleIteration 3 • Step 2 • N(S3)= {(2,1,4,3), (1,4,2,3), (1,2,3,4)} • with respective costs = {83, 72, -} => Sc=S4=(1,4,2,3) • Set L={(2,4),(3,4)} • Step 3: Let k=4
Tabu search exampleIteration 4 • Step 2 • N(S4)= {(4,1,2,3), (1,2,4,3), (1,4,3,2)} • with respective costs = {92, -, 123} => Sc=S5=(4,1,2,3) • Set L={(1,4),(2,4)} • Step 3: Let k=5
Tabu search exampleIteration 5 • Step 2 • N(S5)= {(1,4,2,3), (4,2,1,3), (4,1,3,2)} • with respective costs = {-, 109, 143} => Sc=S6=(4,2,1,3) • Set L={(2,1),(4,1)} • Step 3: Let k=6