Thuật toán ACO-CP của Christine Solon để giải CarSP (2007)

Một phần của tài liệu Phương pháp tối ưu đàn kiến giải bài toán trình tự xe (Trang 50)

Để có thể giải bài toán trình tự xe bằng phƣơng pháp tối ƣu ACO thì trƣớc tiên ta phải xây dựng đƣợc một đồ thị cấu trúc tƣơng ứng với yêu cầu của bài toán. Việc tìm lời giải bài toán lúc này đƣa về việc tìm đƣờng đi ngắn nhất giữa các đỉnh của đồ thị xây dựng đƣợc, ý tƣởng xây dựng đồ thị cấu trúc đƣợc Dorigo và đồng sự đề xuất.

Hình 3.1: Đồ thị cấu trúc tƣơng ứng cho bài toán trình tự xe

Giải quyết một bộ (C, O, p, q, r) của bài toán liên quan đến việc tìm trình tự sắp xếp các xe là một hoán vị của tập hợp các xe C thỏa mãn ràng buộc về dung lƣợng. ài toán này có thể dễ dàng đƣợc mô hình hóa nhƣ việc tìm kiếm một con đƣờng tốt nhất trong đồ thị Hamilton liên kết một đỉnh tƣơng ứng với mỗi chiếc xe.

Để xây dựng các trình tự, các con kiến giao tiếp với nhau bằng cách đặt vết mùi trên các cạnh của một đồ thị đầy đủ có hƣớng trong đó thể hiện một đỉnh tƣơng ứng với mỗi xe ci C. Có một đỉnh phụ, ký hiệu bởi co C, từ đó kiến khởi công xây dựng trình tự (đỉnh thêm này sẽ đƣợc coi là một chiếc xe không đòi hỏi yêu cầu lựa chọn). Số lƣợng mùi trên cạnh (ci, cj) đƣợc ký hiệu là (ci, cj) đại diện cho mong muốn học đƣợc xe cjchỉ sau xe ci trong trình tự.

Tác giả áp dụng theo đề xuất trong hệ kiến MAX - MIN áp đặt cận dƣới – cận trên tƣơng ứng là min và τmaxtrên những vết mùi (với 0 <τmin< max). Mục đích cách sử dụng giới hạn vết mùi trong đoạn [ ] để tránh bỏ qua các cạnh tạm thời chƣa thuộc lời giải tốt và sa lầy vào các lời giải cục bộ. Ngoài ra,

những vết mùi đƣợc khởi tạo tới τmax, do đó đạt đƣợc một thăm dò cao hơn của không gian tìm kiếm trong các vòng lặp đầu tiên1

3.1.2 Xây dựng trình tự xe bởi kiến theo thuật toán ACO-CP

Sơ đồ thuật toán của việc xây dựng một trình tự π bởi một con kiến đƣợc phác thảo dƣới đây:

Hình 3.2: Kiến xây dựng lời giải

ƣu ý rằng để đánh giá sựkhác biệt của hai chiếc xe, hàm d: C × C → N trả về số lƣợng lựa chọn khác nhau mà hai chiếc xe yêu cầu, ví dụ, d (ci, cj)

=∑ . (đã trình bày trong mục phát biểu bài toán)

Kiến xây dựng lời giải bằng cách, bắt đầu từ một trình tự rỗng 1, chiếc xe đƣợc lặp đi lặp lại thêm vào cuối trình tự cho đến khi tất cả các xe đã đƣợc lập trình tự . Tại mỗi lần lặp, sự lựa chọn của một chiếc xe đƣợc thực hiện trong tập các xe ứng cử viên (cand) đƣợc giới hạn trong bộ xe mà đƣa ra số lƣợng nhỏ nhất các vi phạm ràng buộc mới (dòng 4)2

, là tập các xe trong trình tự C – π. Để

1

trình tự π có thể được khởi tạo một chuỗi không rỗng để xem xét những trình tự xe cuối cùng trên dây chuyền ngày hôm trước, vì nó là trường hợp trong các bài toán của Renault đề xuất cho thử thách ROADEF.

2 Lưu ý rằng chiến lược ưu tú này, rằng loại bỏ xe ô tô đưa ra thêm các vi phạm ràng buộc, có thể không được tối ưu để giải quyết trường hợp quá nhiều ràng buộc. Để giải quyết trường hợp quá nhiều ràng buộc, nó có thể không thích hợp để loại bỏ xe đưa ra nhiều hành vi vi phạm ràng buộc nhưng để giảm xác suất của việc lựa lựa chọn chúng như đề xuất trong [Sol00, GGP04].

1. <c0>

2. While || |C| do

3. Cho C- kí hiệu là tập các xe của C mà không có trong trình tự

4. cand { ck C- | cj C-, ((d(ck,cj)=0 (k j) và newViolations(,ck) newViolations(, cj)}

5. cho ci là chiếc xe cuối cùng trình tự  (ví dụ, =’.<ci>) 6. chọn cj cand với xác suất 𝑝𝑐𝑖𝑐𝑗 ∑ [ 𝑐𝑖 𝑐𝑗 ] [ 𝑐𝑗 ]

[ 𝑐𝑖 𝑐𝑘 ] [ 𝑐𝑘 ]

𝑐𝑗 𝑐𝑎𝑛𝑑

7. .<cj> 8. endwhile

phá vỡ tính đối xứng, chúng ta chỉ xem xét các ô tô yêu cầu lựa chọn có cấu hình khác nhau; để giới thiệu một chiến lƣợc ƣu tú, tác giả lựa chọn trong số xe ô tô tốt nhất liên quan đến số lƣợng vi phạm ràng buộc mới.

Mỗi con kiến duy trì một bộ nhớ trong chứa thông tin lần lƣợt các đỉnh mà nó đã duyệt qua, thông tin này dùng để tính tổng số lƣợng ràng buộc bị vi phạm và xác định các cạnh đƣợc cập nhập mùi.

Mỗi một đỉnh sau khi đƣợc kiến chọn sẽ bị loại ra khỏi danh sách các xe ứng cử viên và đƣợc thêm vào cuối trình tự cần sắp xếp.

Việc lựa chọn một xe cj trong bộ các ứng cử viên đƣợc thực hiện liên quan đến một xác suất. Xác suất này có thể đƣợc định nghĩa theo nhiều cách khác nhau phụ thuộc vào hai hệ số: hệ số mùi và hệ số heuristic η. Hệ số heuristic này có thể là một hàm heuristic bất kỳ đƣợc mô tả trong phần 3.13.

3.1.3 Thông tin Heuristic

Trong [GPS03] nêu năm định nghĩa khác nhau cho hàm Heuristic η. Những định nghĩa này đƣợc dựa trên tỷ suất sử dụng của yêu cầu lựa chọn và nhằm mục đích có lợi cho việc chọn đƣợc chiếc xe yêu cầu lựa chọn có nhu cầu cao đối với khả năng của trạm. Tuy nhiên tác giả đã sử dụng một trong 5 hàm heuristic của [GPS03] thu đƣợc các kết quả trung bình tốt nhất đƣợc xác định bởi tổng của tỷ suất sử dụng các lựa chọn theo yêu cầu của xe, theo công thức

Trong đó utilRate(oj,C - ) là tỷ lệ sử dụng lựa chọn oj đối với tập gồm có C - π xe chƣa đƣợc sắp xếp trong π. Tỷ lệ sử dụng này là tỷ lệ phần trăm của C-π chiếc xe yêu cầu oj với số lƣợng tối đa của các xe trong một trình tự có độ dài là |C - π | có thể có oj trong khi vẫn thỏa mãn ràng buộc khả năng của trạm, tức là

Một tỷ lệ sử dụng lớn hơn 1 chỉ ra rằng nhu cầu cao hơn khả năng, do đó khả năng của các trạm chắc chắn sẽ vƣợt mức; một tỷ lệ sử dụng gần 0 chỉ ra rằng nhu cầu là rất thấp đối với khả năng của các trạm.

3.2 Hai thuật toán của Christine Solon để giải CarSP (2008)

3.2.1 ACO1:Cấu trúc mùi đầu tiên để xác định các trình tự con tốt

Kiến tạo vệt mùi trên các cạnh của đồ thị để tìm hành trình tốt của tất cả các đỉnh (mỗi xe là một đỉnh). Dựa trên nguyên tắc này, tác giả đã đề xuất trong [Sol00] một thuật toán ACO đầu tiên cho bài toán trình xe.

Cách tốt nhất để giải thích thế nào là tỷ lệ vi phạm ràng buộc: đƣợc tính bằng cách đƣa ra một ví dụ. Cho phép xem xét một tỷ lệ 1 3 và trình tự các xe _X _ _ XX, trong đó "X" biểu thị một chiếc xe mà đòi hỏi lựa chọn và "_" biểu thị một xe mà không đòi hỏi phải lựa chọn. Để đánh giá trình tự này, tác giả phải chia chuỗi thành bốn trình tự con có kích thƣớc là 3, đầu tiên là chuỗi X _ _, thứ hai là chuỗi X _ X, thứ ba là chuỗi _ XX và cuối cùng là chuỗi XX _. Sau đó tác giả đánh giá mỗi chuỗi con theo công thức sau:

Số lƣợng vi phạm trên một chuỗi con= (Số lƣợng xe liên quan đến việc ràng buộc tỷ lệ trên chuỗi con) - (tỷ lệ ràng buộc tử số)

Về cơ bản, các thuật toán theo chƣơng trình lập lịch hệ kiến MAX-MIN [SH00]. Đầu tiên, những vết mùi đƣợc khởi tạo một τmax1 trên ràng buộc nhất định. Mỗi vòng lặp mỗi kiến xây dựng một trình tự , và những vết mùi đƣợc cập nhật. Để ngăn chặn hội tụ sớm, những vết mùi đƣợc giới hạn bởi 2 cận trên và dƣới là τmin1 và τmax1 sao cho 0 <τmin1<τmax1. Các thuật toán dừng lặp hoặc khi một con kiến đã tìm thấy một lời giải, hoặc khi một số lƣợng tối đa vòng lặp đã đƣợc thực hiện.

Cấu trúc mùi

Mùi đƣợc đặt trên các cặp xe ô tô. Đối với những cặp xe khác nhau (ci, cj) C × C, tác giả kết hợp một vết mùi τ1(ci, cj), vết mùi này đại diện cho mong muốn lựa chọn xe cj đƣợc lập kế hoạch chỉ sau khi xe ci

Xây dựng lời giải trình tự xe bởi kiến

Ở mỗi vòng lặp mỗi kiến xây dựng một trình tự trình tự , theo thuật toán của Hình 3.2. Để lựa chọn chiếc xe ci tiếp theo sẽ đƣợc thêm vào cuối của trình tự π hiện tại thì hàm xác suất chuyển trạng thái phụ thuộc vào hai hệ số: một hệ số vết mùi mà đánh giá mong muốn chọn thêm ci vào cuối π, và hệ số η: thông tin heuristic đƣợc giới thiệu trong phần 3.1.3 theo công thức 3.3.1 và 3.3.2 để phát hiện thông tin mới, tức là,

[ ] [  ]

∑ [ ] [  ] nếu cuối trình tự  là cj (3.3.1)

[  ]

∑ [  ] nếu  rỗng (3.3.2)

Sự ảnh hƣởng của thông tin mùi và thông tin heuristic đƣợc đánh giá qua hai tham số 1 và .

Bƣớc cập nhật Mùi

Mỗi lần kiến xây dựng đƣợc một trình tự sắp xếp , những vết mùi đƣợc cập nhật.

Đầu tiên, tất cả các vết mùi đƣợc giảm để mô phỏng bay hơi, ví dụ, cho mỗi cặp xe khác nhau (ci, cj) C × C, số lƣợng mùi τ1(ci, cj) đƣợc nhân với một hệ số (1 - ρ1), trong đó ρ1 là tỷ lệ bay hơi sao cho 0 ≤ ρ1≤ 1. Sau đó, những con kiến tốt nhất ở mỗi vòng lặp đƣợc lƣu lại những vết mùi của chúng, tỷ lệ nghịch với số lƣợng vi phạm ràng buộc: đối với mỗi trình tự π đƣợc xây dựng trong suốt vòng lặp, nếu giá trị của π là tối thiểu trong mỗi chu kỳ thì với mỗi cặp xe liên tiếp <cj, ck>π, tác giả tăng vết mùi τ1(cj, ck) = 1 cost (π). Trong đó cost(π) đƣợc tính theo công thức (1.1.2)

ay hơi mùi:

Tăng vết mùi: = + 1/cost π

{

[ ]

Mục đích của bƣớc này là xác định ranh giới mùi để có lợi cho một thăm dò tốt hơn về không gian tìm kiếm bằng cách ngăn chặn sự khác biệt tƣơng đối giữa những vết mùi trở nên quá cực đoan trong khi xử lý [SH00]

3.2.2 ACO2: Cấu trúc mùi thứ hai để xác định xe ô tô quan trọng

Hàm Heuristic η kết hợp với cấu trúc mùi đầu tiên trong hàm xác suất chuyển trạng thái định nghĩa trong mục 3.3.1 nhằm mục đích lợi cho việc lựa chọn xe quan trọng, ví dụ nhƣ chiếc xe mà yêu cầu lựa chọn với tỷ lệ sử dụng cao để chúng có thể đƣợc lên kế hoạch mà không vi phạm ràng buộc về dung lƣợng. Tác giả đã giới thiệu một cấu trúc mùi mới để xác định những mẫu xe quan trọng đối với kinh nghiệm quá khứ của đàn kiến.

Cấu trúc Mùi

Các xe ô tô khác nhau có thể yêu cầu cùng một tập hợp các lựa chọn. Do đó, tác giả nhóm những chiếc xe đòi hỏi các lựa chọn tƣơng tự vào các lớp, và tác giả kết hợp một cấu trúc mùi với mọi lớp khác nhau.

Tác giả phân các xe ci C có cùng yêu cầu lựa chọn vào chung một lớp. Tức là, classOf (ci) = {oj O | rij= 1}, và tác giả biểu thị bởi các lớp (C) tập hợp tất cả các lớp xe khác nhau, ví dụ, các lớp (C) = {classOf (ci) | ci C}. Cho một lớp xe cc (C), τ2 (cc) là số lƣợng mùi đặt trên đó. Số lƣợng này đại diện cho kinh nghiệm quá khứ của đàn kiến liên quan đến ràng buộc trong việc trình tự xe ô tô của lớp này mà không vi phạm ràng buộc dung lƣợng của trạm.

Cấu trúc mùi thứ hai giới thiệu ở đây không đƣợc quản lý theo hệ kiến MAX-MIN [SH00]. Đặt giới hạn cận trên và cận dƣới lên trên vết mùi và khởi tạo chúng với các ràng buộc đảm bảo đƣợc việc thăm dò của không gian tìm kiếm có đƣợc các lời giải tốt.

Xây dựng một trình tự xe bởi kiến

Kiến từng bƣớc xây dựng trình tự theo thuật toán đƣợc mô tả trong hình 3.2. Để lựa chọn lớp xe ci tiếp theo đƣợc thêm vào cuối của trình tự π hiện tại, hàm xác suất chuyển trạng thái chỉ phụ thuộc vào một hệ số mùi mà đánh giá độ cứng lớp của ci, Tức là,

(3.3.2)

Trong đó α2 là một tham số cho phép một để điều chỉnh trọng lƣợng của hệ số mùi.

Bƣớc cập nhật Mùi

Kiến tạo mùi trên lớp xe trong khi xây dựng trình tự : mỗi xe không có nhiều thời gian có thể đƣợc dự kiến mà không cần đƣa ra một số ràng buộc mới bị vi phạm, một số mùi đƣợc thêm vào các lớp lựa chọn của những chiếc xe mà vẫn có thể lên kế hoạch (do đó chỉ ra rằng những chiếc xe của lớp này cần phải có đƣợc dự kiến trƣớc đó, các xe có cùng yêu cầu lựa chọn thì cho chung vào một lớp). Số lƣợng mùi gia tăng bằng số lƣợng vi phạm ràng buộc mới đƣợc đƣa ra bởi những chiếc xe của lớp này. Chính xác hơn, tác giả sửa đổi thuật toán của hình 3.2 bằng cách chèn giữa dòng 5 và 6 dòng sau đây:

If then

For mọi xe lớp cc {classOf(ci) ci C-π} do

2(cc)  2(cc)+cost (π,<ci>)-cost(π) Trong đó ci là xe của lớp (cc)

ƣu ý rằng vết mùi này đặt thủ tục xảy ra trong suốt bƣớc xây dựng, và không đặt sau khi tất cả những con kiến đã hoàn thành bƣớc xây dựng của chúng, nhƣ trong hầu hết các thuật toán ACO.

Cuối cùng, vết mùi đƣợc bay hơi sau mỗi lần xây dựng thứ tự. Thực hiện bằng cách nhân số lƣợng mùi τ2(cc) đặt trên mỗi lớp xe lớp cc (C) với một hệ số (1-ρ2), trong đó ρ2 là tỷ lệ bay hơi sao cho 0 ≤ ρ2≤ 1 nhƣ sau:

3.2.3 ACO 1+2:Sự kết hợp hai cấu trúc mùi

Hai cấu trúc mùi đề xuất đạt đƣợc hai mục tiêu bổ sung: cấu trúc đầu tiên nhằm mục đích xác định các trình tự con đầy hứa hẹn của xe; cấu trúc thứ hai

nhằm mục đích xác định các lớp xe quan trọng. Do đó, ngƣời ta có thể dễ dàng kết hợp các hai cấu trúc mùi bổ sung:

• Kiến tạo vết mùi trên các cặp xe (ci, cj) C × C và số lƣợng của mùi τ1(ci, cj) Đại diện cho các kinh nghiệm quá khứ của đàn liên quan đến việc học xe cj sau xe ci.

Với cấu trúc mùi đầu tiên này, những vết mùi đƣợc giới hạn trong khoảng [τmin1; τmax1] và chúng đƣợc khởi tạo các ràng buộc trên τmax1.

Những vết mùi đƣợc cập nhật vào cuối mỗi chu kỳ, mỗi con kiến của đàn đã tính toán một trình tự hoàn chỉnh, và chỉ có những con kiến tốt nhất của vòng lặp tạo vết mùi.

• Kiến cũng tạo mùi trên lớp lớp xe cc (C) và số lƣợng mùi τ2 (cc) đại diện cho mong muốn học để xây dựng trình tự xe ô tô của lớp này mà không vi phạm ràng buộc dung lƣợng của trạm.

Với cấu trúc mùi thứ hai này sẽ đƣợc giới hạn là τmin2 và những vết mùi đƣợc khởi tạo này bị hạn chế thấp hơn. Mùi đƣợc đặt bởi mỗi con kiến trong khi xây dựng một trình tự , và bƣớc bay hơi sẽ xảy ra ở cuối mỗi quá trình xây dựng trình tự.

Các thuật toán tiếp theo kiến sẽ xây dựng trình tự giống nhƣ một trong những hiển thị trong hình 3.2. Để lựa chọn xe ci tiếp theo đƣợc thêm vào cuối các trình tự π hiện tại, hàm xác suất chuyển đổi phụ thuộc vào hai hệ số mùi khác nhau, tức là,

Nhƣ thƣờng lệ, α1và α2 là những thông số tính toán đƣợc sử dụng để xác định trọng lƣợng tƣơng đối của hai hệ số mùi.

ƣu ý rằng hàm Heuristic η giới thiệu trong công thức 3.1.3 kết hợp với cấu trúc mùi đầu tiên trong phần 3.1.4 không còn đƣợc sử dụng trong xác suất chuyển đổi mới này. ởi vì hệ số này, nhằm mục đích xác định xe quan trọng, đã đƣợc thay thế bằng cấu trúc mùi thứ hai.

3.3 Thuật toán TSIACO (2011)

Năm 2011, Zhaojun Zhang và Zuren Feng [10] đề xuất quy tắc cập nhật mùi mới và áp dụng giải bài toán TSP, đó là thuật toán TSIACO (Two- Stage updating Pheromone for Invariant Ant Colony Optimization algorithm). Thuật toán TSIACO đƣợc đánh giá tốt hơn rõ rệt so với thuật toán MMAS, áp dụng cho bài toán TSP.

TSIACO đƣợc phát triển dựa trên phƣơng pháp ACO truyền thống và việc lựa chọn đỉnh viếng thăm cũng áp dụng thủ tục bƣớc ngẫu nhiên, sự khác biệt ở đây là việc chia làm hai giai đoạn trong việc cập nhật vết mùi. Ở giai đoạn đầu

Một phần của tài liệu Phương pháp tối ưu đàn kiến giải bài toán trình tự xe (Trang 50)