Tập đỉnh của đồ thị gồm: đỉnh 0 là đỉnh xuất phát, các đỉnh còn lại của đồ thị tương ứng với các thao tác. ũi tên thể hiện thứ tự thực hiện các gian đoạn của một công việc, chú ý là gi a 2 đỉnh bất kỳ của 2 công việc khá nhau tồn tại một đường đi, tức là khi hoàn thành xong một giai đoạn nào đó của công việc này chúng ta có thể chuyển ua làm giai đoạn tiếp theo của công việc khác.
Như vậy, số đỉnh của đồ thị cho bài toán lập lịch sản xuất gồm n công việc và m máy là: Số đỉnh = (n * m) +1.
Hành trình của một con kiến xuất phát từ đỉnh O và phải đi ua tất cả các đỉnh của đồ thị, và đảm bảo thứ tự thực hiện các giai đoạn theo chiều mũi tên.
Mỗi hành trình của kiến là một dãy có thứ tự của tất cả các thao tác, dãy thứ tự các thao tác này sẽ được ánh xạ sang một lịch sản xuất bằng cách như sau: xếp thực hiện các thao tác, một thao tác được thực hiện nếu thỏa mãn hai điều kiện sau: thao tác trước (trong cùng một công việc) của thao tác này đã được thực hiện xong và máy thực hiện thao tác này đang rảnh rỗi.
Con kiến phải di chuyển từ một đỉnh tới đỉnh tiếp sau của cùng một công việc hoặc di chuyển sang công việc khác lúc này đỉnh di chuyển đến chính là giai đoạn tiếp theo của công việc đó. Cứ thế kiến di chuyển qua tất cả các giai đoạn của các công việc là tìm được một phương án.
4.2 Ma trận mùi và thông tin heuristic
Trên mỗi cạnh của đồ thị được gắn cặp giá trị { , dij} thể hiện thông tin mùi và thông tin heuristic gi a các đỉnh. Thời gian xử lý của thao tác (tương ứng với đỉnh j) được sử dụng làm thông tin heuristic cho cạnh (i, j), giá trị này lấy được từ ma trận thời gian xử lý {pij}.
Khi cài đặt chương trình ta sẽ dùng 2 mảng để quản lý 2 bộ giá trị trên đó là mảng T lưu th ng tin heuristic và mảng P lưu th ng tin thời gian sử lý.
4.3 Quy tắc chuyển trạng thái
Mỗi con kiến tìm đường trên đồ thị và hành trình là ãy các đỉnh thể hiện thứ tự các thao tác được thực hiện. Mỗi bước di chuyển của con kiến phải bảo đảm được thứ tự thực hiện của các thao tác trong cùng một công việc. Điều đó được thực hiện bằng cách, mỗi con kiến sẽ duy trì hai danh sách: danh sách A là anh sách các đỉnh có thể được thăm tại bước hiện tại của tất cả các con kiến (được kiểm tra tính thứ tự thực hiện của các thao tác trong cùng một công việc); danh sách S chứa các đỉnh đã được thăm của các con kiến, ùng lưu vết đường đi. Sau mỗi bước di chuyển của kiến, hai danh sách này sẽ được cập nhật lại theo nguyên tắc:
+ Thao tác j vừa được lựa chọn sẽ được loại khỏi A, và A được thêm vào thao tác ngay sau thao tác j của cùng công việc đó.
+ Thao tác j được thêm vào S để lưu vết đường đi cũng như phục vụ việc tính toán giá trị của hàm mục tiêu ở cuối mỗi vòng lặp.
Sau khi con kiến kết thúc hành trình của mình thì danh sách S chính là thứ tự thực hiện các thao tác.
Tại mỗi bước một con kiến có thể lựa chọn sự phân chia theo xác suất biến đổi để xây ựng một lời giải theo c ng thức sau :
ij ij ij ij 1 ( ) ( ) 1 ( ) ij j Tabu t d p t t d (4.1)
trong đó: ij là th ng tin mùi và dij là th ng tin heuristic. Sự ảnh hưởng của th ng tin mùi và th ng tin heuristic được đánh giá uá hai tham số và .
4.4 Quy tắc cập nhật mùi
Quy tắc cập nhật mùi TSIACO được chia làm 2 giai đoạn:
Cập nhật tuần tự: ở r bước lặp đầu theo công thức:
(4.2) trong đó
Cập nhật tốt nhất: chỉ sử dụng một lời giải tốt nhất để cập nhật vết mùi theo công thức
(4.3)
(4.4)
Trong thuật toán TSIACO, các vệt mùi được giới hạn trong đoạn [ , ], trong đó và là các số thực tùy ý thỏa mãn . So với việc giới hạn trong MMAS, các giới hạn này độc lập với hàm mục tiêu. Tức là
khi có lời giản tốt nhất tìm ra thì giá trị giới hạn này kh ng thay đổi. Người ta đã chứng minh được rằng với cùng một tỉ lệ bay hơi, các thuật toán TSIACO với các khoảng giới hạn mùi [ , ] có chức năng tương đương. Bình thường người ta dùng và
4.5 tả thuật toán TSIACO giải bài toán lập lịch sản xuất.
Bắt đầu thuật toán các vết mùi được khởi tạo một giá trị là , với
là một hằng số được gọi là thành phần khởi tạo. Giá trị khởi tạo liên quan tới cách lựa chọn để cập nhật mùi. Ví dụ, nếu mùi cần được khởi tạo với giới hạn trên của vết mùi, thì m2 bằng 1, nếu mùi cần khởi tạo bằng một nửa của giới hạn trên thì m2 bằng 0.5
Áp ụng m hình chu n của các thuật toán đàn kiến kết hợp với các đặc trưng của bài toán. Thuật toán thực hiện trong Nc vòng lặp, sử ụng một tập gồm m con kiến và tại mỗi vòng lặp, mỗi con kiến xây ựng một lời giải theo quy tắc ở mục 3.1. Sau khi một con kiến xây ựng xong lời giải, mỗi lời giải của kiến là một dãy có thứ tự của tất cả các thao tác, dãy thứ tự các thao tác này sẽ được ánh xạ sang một lịch sản xuất. Và sau khi cả đàn kiến đều tạo ra được lịch sản xuất của mình, mỗi lịch sẽ được tính thời gian hoàn thành để đánh giá “độ tốt” của lời giải các con kiến. Cuối cùng là thủ tục cập nhật mùi toàn cục cho ma trận cường độ mùi, như mục 4.4
Procedure h ật t án TSIACO ch i t án lập lịch sản xuất Begin Đặt các tha ố ệt i hởi tạ while (chưa đủ Nc lần lặp) do begin Khởi tạo Mảng S rỗng
Khởi tạo mảng A chứa các giai đ ạn đầu các công việc
for to do
Kiến xây dựng lời giải;
end-for
Cập nhật vết mùi
Cập nhật lời giải tốt nhất
end;
Đưa ra lời giải tốt nhất
End;
Hình 4.2: Lược đồ thuật toán TSIACO giải bài toán lập lịch sản xuất
4.6 Độ phức tạp các thuật toán
Thuật toán được thực hiện trong Nc vòng lặp, mỗi lần lặp có k kiến xây dựng hành trình. Với đồ thị cấu trúc mô tả ở mục 4.1 thì mỗi kiến sẽ phải đi ua
n*m đỉnh (n là số công việc, m là số máy), o đó độ phức tạp của thuật toán là:
CHƯƠNG 5. KẾT QUẢ THỰC NGHIỆ , SO SÁNH VÀ ĐÁNH GIÁ GIÁ
5.1 Bộ liệu chu n
Để chạy thực nghiệm tôi sử dụng 10 bộ d liệu: Orb1, Orb2, .., Orb10 lấy từ website http://people.brunel.ac.uk/~mastjjb/jeb/orlib/jobshopinfo.html. Đây cũng chính là bộ d liệu được Đỗ Đức Đ ng [1] đã sử dụng trong luận văn trước đây để chạy chương trình. Bộ d liệu này mô tả cho bài toán có kích thước là: 10 công việc thực hiện trên 10 máy, đây là nh ng bộ d liệu được cho là phức tạp.
Bộ d liệu là các file dạng text lần lượt là Orb1.txt, Orb2.txt, .., Orb10.txt có định dạng như sau:
- Dòng đầu tiên là hai số n, m là số công việc và số máy
- n dòng tiếp theo, mỗi dòng tương ứng mô tả cho một công việc, công việc thực hiện trên m máy mỗi c ng đoạn có hai thành phần (máy, thời gian xử lý). Các máy được đánh số từ 0.
5.2 Tiến hành chạy thực nghiệm
Kết quả thực nghiệm sẽ phụ thuộc vào các tham số cài đặt, để tiến hành so sánh với SMMAS đã làm trước đây nhằm đánh giá sự hiệu quả của mỗi thuật toán t i đã cài đặt cùng bộ các tham số Đỗ Đức Đ ng đã làm (xem [1]). Vì ACO là lớp thuật toán meta-heuristic nên mỗi lần chạy sẽ cho các kết quả cụ thể là khác nhau, nên tôi tiến hành chạy chương trình 10 lần trên mỗi bộ d liệu, thống kê kết quả thu được, so sánh thông qua 2 tiêu trí là kết quả tốt nhất và kết quả trung bình của 10 lần chạy đó.
Tác giả D.P.Williamson đã chứng minh được rằng việc tìm nghiệm xấp xỉ cho thời gian hoàn thành tất cả các công việc kh ng vượt quá 5/4 thời gian hoàn thành tối ưu cũng đã là bài toán thuộc lớp NP-khó (xem [18]). Do đó, ngoài việc so sánh hiệu quả gi a các thuật toán, luận văn còn so sánh kết quả thu đươc của
các thuật toán với 5/4 thời gian tối ưu (Optimization - Opt) để thấy được hiệu quả của các thuật toán ACO
Chương trình được viết bằng ngôn ng c++, sử dụng Dev-C để soạn thảo và biên dịch trên m i trường windows. Sau khi biên dịch chương trình thu được file TSIACO.exe, đặt file exe cùng thư mục với 10 file trong bộ d liệu ùng để chạy thực nghiệm
Hình 5.1: Thư mục file chương trình và liệu thực nghiệm
Từ cửa sổ cmd của windows di chuyển tới thư mục chứa file exe
Hình 5.2: Di chuyển tới thư mục chứa file chạy chương trình
Sau đó ta gọi file TSIACO.exe cùng tham số -i orbx.txt để chạy chương trình với file d liệu orbx.txt
Hình 5.3: Chạy chương trình với tham số file d liệu
Chương trình sẽ chạy khoảng 2 phút và ta thu được kết quả như sau
Hình 5.4: Kết quả chạy chương trình
Với hình trên ta thấy rằng, sau khi chạy chương trình với bộ d liệu orb01.txt, kết quả thời gian tốt nhất hoàn thành các công việc là 1367, trình tự thực hiện các công việc như trong phần đánh ấu trên hình. Trình tự công việc là dãy các chi tiết gồm 2 tham số (a,b) giai đoạn thứ b của công việc thứ a.
5.3 Kết uả thực nghiệm và đánh giá
Sau khi chạy chương trình với 10 bộ d liệu, mỗi bộ 10 lần như phần 5.2 tôi thống kê lại kết quả thu được phục vụ việc so sánh đánh giá
5.3.1 Kết quả thực nghiệm
Tiến hành thực nghiệm với các tham số ở bảng 5.1
Tham số Giá trị
Tham số bay hơi (ρ1) 0.01 Tham số bay hơi (ρ2) 0.03 Số lần lặp (Nc) 50000 Số con kiến ban (nant) 10
min 0.2
max 0.8
α 1.0
β 0.4
Bảng 5.1: Các tham số sử dụng cho các thuật toán ACO
Và thu được kết quả như bảng bên ưới
Problem Opt 5/4
Opt Best Avg %Best %Avg
Orb1 1059 1323.8 1319 1351 -0.36 2.05 Orb2 888 1110 1043 1102.7 -6.04 -0.66 Orb3 1005 1256.3 1302 1351.9 3.64 7.61 Orb4 1005 1256.3 1240 1278 -1.3 1.73 Orb5 887 1108.8 1014 1099.2 -8.55 -0.87 Orb6 1010 1262.5 1238 1310.6 -1.94 3.81 Orb7 397 496.25 485 508 -2.27 2.37 Orb8 899 1123.8 1121 1165.3 -0.25 3.69 Orb9 934 1167.5 1159 1181.4 -0.73 1.19 Orb10 944 1180 1174 1202.2 -0.51 1.88
Bảng trên thống kê kết quả sau 10 lần chạy thực nghiệm đối vởi cả 10 bộ d . Trong đó mỗi hàng thể hiện cho một bộ d liệu. Cột Opt - giá trị tối ưu của bài toán, 5/4 Opt - giá trị ùng để so sánh, Best – kết quả tốt nhất, Avg – kết quả trung bình, %Best – phần trăm khác biệt của kết uả tốt nhất với 5/4 Opt, %Avg – phần trăm khác biệt của kết uả trung bình so với 5/4 Opt.
Bảng kết quả trên ta thấy có tới 9 kết quả tốt nhất thu được là nhỏ hơn 5/4 kết quả tối ưu. Đặc biệt với 2 bộ d liệu số 2 và số 5 có kết quả trung bình tốt hơn cả 5/4 kết quả tối ưu của bài toán.
5.3.2 So sánh với thuật toán ACO khác
Trước đây trong luận văn thạc sĩ của Đỗ Đức Đ ng (xem [1]) có phần kết quả thực nghiệm với 3 thuật toán là SMMAS, MMAS và MLAS, trong đó thuật toán SMMAS cho kết quả tốt hơn cả, ở luận văn này tôi xin được sử dụng lại kết quả của thuật toán S AS làm cơ sở so sánh với thuật toán TSIACO
Problem Opt 5/4 Opt
SMMAS TSIACO
Best % Best Best % Best
Orb1 1059 1324 1329 0.4% 1319 -0.363 Orb2 888 1110 1090 -1.8% 1043 -6.036 Orb3 1005 1256 1301 3.6% 1302 3.6377 Orb4 1005 1256 1248 -0.7% 1240 -1.297 Orb5 887 1109 1086 -2.1% 1014 -8.55 Orb6 1010 1263 1304 3.3% 1238 -1.941 Orb7 397 496.3 509 2.6% 485 -2.267 Orb8 899 1124 1128 0.4% 1121 -0.249 Orb9 934 1168 1148 -1.7% 1159 -0.728 Orb10 944 1180 1177 -0.3% 1174 -0.508
Kết quả được t đậm là kết quả tốt hơn trong hai thuật toán SMMAS và TSIACO, kết quả nền xám là kết quả tốt hơn 5/4 kết quả tối ưu. Từ kết quả trên cho ta thấy TSIACO có tới 9 kết quả là tốt hơn so với SMMAS, một kết quả còn lại thì xấp xỉ với SMMAS. Chứng tỏ hiệu quả tuyệt đối của TSIACO so với SMMAS.
KẾT LUẬN
Phương pháp tối ưu đàn kiến là phương pháp tương đối mới mẻ và tỏ ra đặc biệt hiệu quả, điều này đã được chứng minh thông qua thực nghiệm. Phương pháp tối ưu đàn kiến lu n được quan tâm, phát triển kể từ khi giới thiệu cho đến nay thể hiện qua sự phong phú, đa ạng của các thuật toán. Các thuật toán trực tiếp đưa ra hướng tiếp cận mới giải các bài toán tối ưu tổ hợp, ua đó có nhiều ứng dụng trong thực tiễn trên các lĩnh vực như: sản xuất, truyền thông, sinh học, hoạt động xã hội …..
Bài toán lập lịch sản xuất là một trong nh ng bài toán khó, được đề xuất từ lâu, được đầu tự nghiên cứu, phát triển một cách nghiêm túc và có nhiều ứng ụng, đặc biệt là trong các uá trình tự động hóa sản xuất trong các nghành c ng nghiệp. Việc sử dụng phương pháp tối ưu đàn kiến để giải bài toán lập lịch sản xuất đã được Dorigo đề xuất từ trước với thuật toán AS, trước đây Đỗ Đức Đ ng [1] trong luận văn của mình đã từng sử dụng thuật toán S AS để giải bài toán này và thu được kết quả tốt. Với thuật toán Hệ kiến hai giai đoạn TSIACO là thuật toán rất mới có nh ng cải tiến trong việc cập nhật vết mùi bằng cách chia ra làm hai giai đoạn cập nhật. Giai đoạn đầu thuật toán sử dụng r lời giải tốt nhất để cập nhật, giai đoạn còn lại chỉ sử dụng lời giải tốt nhất toàn cục để cập nhật như trình bày ở chương 3. Qua thực nghiệm tôi làm trên cùng bộ d liệu SMMAS [1] đã sử dụng để so sánh tôi thấy rằng kết quả của mình tốt hơn đáng kể so với S AS thu được trước đây. Qua đây chúng ta thấy rằng phương pháp tối ưu đàn kiến hết sức phong phú, đa ạng là một hướng tiếp cận mới, mạnh mẽ và triển vọng còn có khả năng khai thác nghiên cứu và cải tiến mạnh hơn n a trong tương lại.
TÀI LIỆU THAM KHẢO Tiếng Việt
1. Đỗ Đức Đ ng (2009), Phương pháp tối ưu đàn kiến giải bài toán lập lịch sản xuất, Luận văn thạc sĩ công nghệ th ng tin ĐHCN-ĐHQGHN. 2. Đỗ Đức Đ ng (2012), Phương pháp tối ưu đàn kiến và ứng dụng, Luận
án tiến sĩ c ng nghệ th ng tin ĐHCN-ĐHQGHN.
Tiếng Anh
3. Applegate D, and Cook W (1991), A computational study of the job- shop scheduling problem, ORSA Journal on Computing, vol 3, no. 1. 4. Blazewicz J. & Dror M. & Weglarz J. (1991), Mathematical
Programming Formulations for Machine Scheduling: A Survey,
European Journal of Operational Research, Invited Review Vol. 51 (3), pp. 283-300.
5. C. Blum and M. Dorigo (2004), The Hyper-Cube Framework for Ant Colony Optimization, IEEE Transactions on Systems, Man, and Cybernetics – Part B, Vol 34 (2), pp. 1161-1172.
6. Giffler B. & Thompson G. L. (1960), Algorithms for Solving Production Scheduling Problems, Operations Research Vol. 8 (4), pp. 487-503.