1 / 28

IOE/MFG 543

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

isealy
Download Presentation

IOE/MFG 543

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IOE/MFG 543 Chapter 14: General purpose procedures for scheduling in practice Section 14.4: Local search (Simulated annealing and tabu search)

  2. 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

  3. 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.

  4. Local search example1||SwjTj

  5. 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)= …

  6. 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)=…

  7. 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) =

  8. 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

  9. 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)

  10. 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

  11. Local search example (8) Total enumeration

  12. 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

  13. 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

  14. 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

  15. 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.

  16. SA example:1||SwjTj

  17. 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

  18. 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

  19. 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

  20. 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?

  21. 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

  22. Tabu search algorithm • Set k=1. Select S1 and set S0=S1. • Select Sc from N(Sk). • If the move SkSc is on the tabu list set Sk+1=Sk and go to 3 • If SkSc 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.

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

More Related