You are on page 1of 11

Chapter 4

TABU SEARCH &


GENETIC ALGORITHMS

1 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 15-Sep-21
Tabu Search
• Khái niệm (Concepts):
– Di chuyển từ lời giải này sang lời giải khác. Nếu tốt thì
tiếp tục, nếu không thì chuyển hướng hoặc dừng.
– Trong quá trình di chuyển sẽ không đi vào vùng cấm –
Tabu list. Tabu-list chứa những di chuyển vừa rồi
nhưng bị cấm trong một số lần di chuyển kế tiếp.
– Quá trình di chuyển: đi đến lân cận (hàng xóm). Các
điểm lân cận được xác định bằng nhiều cách. Cách
phổ biến nhất là hoán chuyển vị trí hai phần tử liền kề
(two adjacent elements).

15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 2
Tabu Search Algorithm
• Step 1.
– k=1
– Chọn lời giải ban đầu sử dụng vài Giải thuật kinh nghiệm và
đặt Sbest = S1
• Step 2.
– Xác định lân cận N(Sk)
– Chọn ứng viên Sc  N(Sk)
– Nếu di chuyển Sk → Sc bị cấm bởi một cặp di chuyển trong
Tabu list thì di chuyển đến Step 2
– Nếu di chuyển Sk → Sc không bị cấm thì Sk+1 = Sc
• Áp dụng cơ chế chồng (stack)
• Đưa di chuyển vừa rồi lên đầu của danh sách
• Đẩy danh sách xuống 1 vị trí
• Xóa vị trí cuối cùng
15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 3
Tabu Search Algorithm
– Nếu hàm F(Sc) tốt hơn F(Sbest) then Sbest = Sc
– Go to Step 3.
• Step 3.
– k = k+1 ;
– If stopping condition = true then STOP
else go to Step 2

15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 4
4
Single Machine Total Weighted Tardiness
Example

Jobs 1 2 3 4
pj 10 10 13 4
dj 4 2 1 12
wj 14 12 1 12

15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 5
Example: 1|dj|wjTj
• Neighborhood: all schedules that can be obtained through adjacent
pairwise interchanges.
• Tabu-list:
1) Select length of Tabu list: max numbers of pairs (2).
2) Put pairs of jobs (j, k) that were swapped within the last two moves

• Initialization: Iteration 1
– S1 = 2, 1, 4, 3; Let Sbest = S1
– F(S1) = wjTj = 12·8 + 14·16 + 12·12 + 1 ·36 = 500 ➔ F(Sbest) = F(S1)
– The neighbors of S1 :
– F(1, 2, 4, 3) = 480
– F(2, 4, 1, 3) = 436
– F(2, 1, 3, 4) = 652
– Select candidate Sc = 2, 4, 1, 3
– Tabu-list: { (1, 4) }

15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 6
Example: 1|dj|wjTj (cont.)
• Iteration 2:
– S2 = 2, 4, 1, 3, F(S2) = 436
– The neighbors of S2 :
– F(4, 2, 1, 3) = 460
– F(2, 1, 4, 3) (= 500) tabu!
– F(2, 4, 3, 1) = 608
– Tabu-list: { (2, 4), (1, 4) }

• Iteration 3:
– S3 = 4, 2, 1, 3, F(S3) = 460
– F(2, 4, 1, 3) (= 436) tabu!
– F(4, 1, 2, 3) = 440
– F(4, 2, 3, 1) = 632
– Tabu-list: { (2, 1), (2, 4) }

HCM University of Technology - ISE


15-Sep-21 Department Assoc. Prof. Ho Thanh 7
7
Phong
Example: 1|dj|wjTj (cont.)

• Iteration 4:
– S4 = 4, 1, 2, 3, F(S4) = 440
– F(1, 4, 2, 3) = 408 = F(Sbest)
– F(4, 2, 1, 3) (= 460) tabu!
– F(4, 1, 3, 2) = 586
– Tabu-list: { (4, 1), (2, 1) }
– F(Sbest)= 408

• Iteration 5:
– S5 = 1, 4, 2, 3, F(S5) = 408
– ...
– This turns out to be the optimal schedule
– Tabu search still continues

15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 8
8
Practical considerations:
• Tabu tenure: Thời gian di chuyển
– t too small - risk of cycling
– t too large - may restrict the search too much
– t = 7 has often been found sufficient to prevent cycling.
• Số lần di chuyển bị cấm: 5 – 9
• Nếu một di chuyển bị cấm nhỏ hơn mức cho phép thì có thể
chấp nhận di chuyển.
• Không bao giờ biết được lời giải có thật sự tối ưu hay
không. Tiêu chuẩn dừng dựa trên thời gian và độ lệch giữa
hai lần lặp có nhỏ hơn một vô cùng bé cho trước.!

15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 9
Pseudo-code
1: s ← s0
2: sBest ← s
3: tabuList ← null
4: while (not stoppingCondition())
5: candidateList ← null
6: for(sCandidate in sNeighborhood)
7: if (not containsTabuElements(sCandidate, tabuList))
8: candidateList ← candidateList + sCandidate
9: end
10: end

HCM University of Technology - ISE


15-Sep-21 Department Assoc. Prof. Ho Thanh 10
10
Phong Assoc. Prof. Ho Thanh Phong
Pseudo-code
11: sCandidate ← LocateBestCandidate(candidateList)
12: if (fitness(sCandidate) < fitness(sBest))
13: sBest ← sCandidate
14: tabuList ← featureDifferences(sCandidate, sBest)
15: while(size(tabuList) > maxTabuListSize)
16: ExpireFeatures(tabuList)
17: end
18: end
19: end
20: return(sBest)

15-Sep-21 HCM University of Technology - ISE Department Assoc. Prof. Ho Thanh Phong 11

You might also like