Bài toán lập lịch sản xuất (Job shop scheduling JSS)

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 lập lịch sản xuất (Trang 40)

Mô tả lại bài lập lịch sản xuất (đã đƣ giới thiệu ở chƣơng II)

Có n công việc (jobs) J1, J2, .., Jn cần thực hiện trên m máy (machine) M1, M2,.., Mm thỏa mãn các ràng buộc sau:

1. Mỗi công việc Jj (j=1..n) có m thao tác 1, 2,..,

m

jr jr jr

O O O phải đƣợc thực hiện theo thứ tự lần lƣợt trên các máy

1, 2,..,

m

r r r

M M M , thao tác Ojri(i=1..m)yêu cầu sử dụng máy Mri trong một khoảng thời gian pjri liên tiếp;

2. Tại mỗi thời điểm, mỗi máy chỉ có thể thực hiện một công việc.

Mục tiêu:

Cần xây dựng lịch để thời gian hoàn thành tất cả các công việc là nhỏ nhất. Dữ liệu đầu vào của bài toán lập lịch sản xuất gồm hai ma trận: ma trận {Tjk} mô tả danh sách các thao tác phải thực hiện trên các máy của mỗi công việc và ma trận thời gian xử lý {pjk}. Tjk = r nghĩa là thao tác thứ k của công việc j là Ojr

đƣợc thực hiện trên máy r với thời gian xử lý là pjk.

Ví dụ: Bài toán lập lịch sản xuất gồm 2 công việc thực hiện trên 3 máy (bảng 4), dữ liệu bao gồm dãy thứ tự thực hiện lần lƣợt trên các máy cùng với thời gian xử lý trên máy đó. Công việc 1 (gồm 3 thao tác O11→ O12→ O13) đƣợc thực hiện

41

lần lƣợt trên máy 1 với 3 đơn vị thời gian, trên máy 2 với 3 đơn vị thời gian, và trên máy 3 với 1 đơn vị thời gian. Công việc 2 (gồm 3 thao tác O22→ O23→ O21) đƣợc thực hiện lần lƣợt trên máy 2 với 2 đơn vị thời gian, trên máy 3 với 3 đơn vị thời gian, và trên máy 1 với 4 đơn vị thời gian.

Công việc Máy (thời gian thực hiện)

1 1(3) 2(3) 3(1)

2 2(2) 3(3) 1(4)

Bảng 4: Bài toán lập lịch sản xuất gồm 2 công việc thực hiện trên 3 máy

jk jk

1 2 3 3 3 1

{T }= , {p }=

2 3 1 2 3 4

Hình 4: Ma trận thể hiện trình tự và thời gian xử lý

3

3

xây dựng (xem [6]) vì

ịch sản xuất, Dorigo (xem [7]) ý tƣởng xây dựng cấu trúc dựa trên ma trận {Tjk}.

42 (adsbygoogle = window.adsbygoogle || []).push({});

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. Quan hệ giữa các đỉnh của đồ thị gồm hai loại: Các cung có hƣớng bảo đảm thứ tự thực hiện của các thao tác trong cùng một công việc; Các cạnh vô hƣớng (đƣờng đậm) thể hiện khả năng di chuyển của con kiến trong quá trình tìm đƣờng.

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 0 và phải đi qua tất cả các đỉnh của đồ thị. 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.

Hình 6: Một hành trình của kiến trên đồ thị cấu trúc

Trong Hình 6 đƣờng cong có hƣớng mô tả một hành trình của kiến, O11→O22 →O12→O13→O23 →O21, nhƣ vậy thao tác O11, O22 đƣợc xếp thực hiện trên máy 1 và máy 2, O12 sẽ đƣợc xếp thực hiện trên máy 2 ngay sau khi O11 và O12 đã thực hiện xong,..

43

3

Trên mỗi cạnh của đồ thị đƣợc gắn cặp giá trị { ij, 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}. Chú ý rằng, trên các cạnh vô hƣớng thì thông tin heuristic là không đối xứng. Nói chung, thông tin heuristic trên cạnh (i, j) thì khác với thông tin trên cạnh (j, i), do đó thông tin mùi trên cạnh (i, j) cũng sẽ khác với thông tin mùi trên cạnh (j, i).

3

Mỗi con kiến tìm đƣờng trên đồ thị và hành trình là dã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ì ba danh sách: danh sách G là danh sách các đỉnh chƣa đƣợc thăm; danh sách Tabu là các đỉnh có thể đƣợc thăm tại bƣớc hiện tại (đƣợ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. Sau mỗi bƣớc di chuyển, cả ba danh sách này sẽ đƣợc cập nhật lại, thao tác j vừa đƣợc lựa chọn sẽ bị loại bỏ khỏi G và đƣợc thêm vào S, nếu còn thao tác sau thao tác j (trong cùng công việc với thao tác j) sẽ đƣợc nạp vào Tabu. 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.

: ij ij ij ij 1 ( ) ( ) 1 ( ) ij j Tabu t d p t t d (3.1)

44

T : ij là dij

.

3

Trong mục này, từ đặc điểm của bài toán và dựa vào phân tích tính hội tụ của vết mùi luận văn đƣa ra cách áp dụng cách cập nhật mùi MMAS (là c

), đồng thời đề xuất hai cách cập nhật mùi mới là SMMAS và MLAS cho bài toán lập lịch sản xuất.

Bài toán lập lịch sản xuất là bài toán có thông tin heuristic ít. Nếu sự khác biệt giữa min và max lớn thì việc tìm kiếm chỉ tập trung quanh lời giải tốt nhất tìm đƣợc, còn các cạnh không thuộc lời giải này sẽ có cƣờng độ vết mùi nhanh chóng tụt về min. Do đó, trong bài toán lập lịch sản xuất nên thiết đặt sự khác biệt giữa

min và max nhỏ.

3.2.4.1 Quy tắc cập nhật mùi Max Min Ant System (MMAS)

g - i - . min max max ). , . i j i j i j i j (1 ) ( ) ( 1) (1 ) ( ) t t t (3.2.1)

45 } 0 , ) 1 ( max{ )) ( ( min 1 ij ij t w L (3.2.2) ] , [ m in m ax nhƣ sau : min i j max i j (3.2.3)

3.2.4.2 Cập nhật mùi theo quy tắc Smooth-Max Min Ant System (SMMAS)

Theo quy tắc MMAS việc tìm kiếm chỉ tập trung quanh lời giải tốt nhất tìm đƣợc, còn các cạnh không thuộc lời giải này sẽ có cƣờng độ vết mùi nhanh chóng tụt về min. Hơn nữa, việc thay 1

( ( ))

L w t bởi max không ảnh hƣởng tới việc học tăng cƣờng. Để tăng hiệu quả của thuật toán này, chúng tôi sử dụng quy tắc Max- Min trơn nhƣ sau:

ij (1 ) ij ij (3.3.1) Trong đó max ij min ( , ) ( ) ( , ) ( ) i j w t i j w t (3.3.2)

Với cách cập nhật mùi SMMAS thì cạnh không thuộc hành trình của các con kiến sẽ có cƣờng độ vết mùi giảm chậm về min làm tăng khả năng tìm kiếm. Đồng thời cách cập nhật mùi SMMAS sẽ không mất thời gian điều khiển vết mùi nằm trong [ min, max] nhƣ cách cập nhật mùi MMAS.

i j min (adsbygoogle = window.adsbygoogle || []).push({});

i j max

46

3.2.4.3 Cập nhật mùi theo quy tắc Multi-level Ant System (MLAS)

Q MLAS đề xuất, online

offline nhƣ sau:

Cập nhật online: các cạnh thuộc vào đƣờng đi của các con kiến sẽ đƣợc cập nhật theo công thức:

1( 1) (1 ) 1( )

i i i i

u u t u u t mid (3.4.1)

Cập nhật offline: các cạnh thuộc vào đƣờng đi của các con kiến tốt nhất sau mỗi lần lặp sẽ đƣợc cập nhật theo công thức:

1( 1) (1 ) 1( ) max i i i i u u t u u t (3.4.2) ax , mid m . Nếu điều chỉnh hợp mid và max hợp lý sẽ cho kết quả tốt, tuy nhiên việc điều chỉnh này là không hề đơn giản (xem [17]). Trong thực nghiệm, chúng tôi đã tiến hành điều chỉnh max tăng dần, còn mid thì luôn đƣợc duy trì bằng 1

2 max , đây là một cách điều chỉnh đơn giản nhất mà vẫn cho kết quả khả quan. Đồng thời khi cho mid và max tăng dần thay cho viêc bay hơi vết mùi ở các thành phần không thuộc các lời giải của mỗi con kiến (nhƣ cách cập nhật của MMAS, SMMAS) và không mất thời gian điều khiển vết mùi nằm trong [ min, max] (nhƣ cách cập nhật mùi MMAS) làm tăng hiệu quả thuật toán.

3.2.5 ACO giải bài toán lập lịch sản xuất.

Á

. Thuật toán thực hiện trong Nc vòng lặp, s

theo quy tắc

47

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 tạo lịch sản xuất

lịch tính thời gian hoàn thành để đánh giá “độ tốt” của lời giải các con kiến. C

, (mục 3.2.4). Procedure lập lịch sản xuất Begin while (chưa đủ Nc lần lặp) do begin end; End;

Hình 7: Lƣợc đồ thuật toán ACO giải bài toán lập lịch sản xuất

3.2.6 Độ phức tạp các thuật toán MMAS, SMMAS, MLAS

Tất cả các thuật toán trên đều đƣợ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 3.2.1 thì mỗi kiến sẽ phải đi qua n*m đỉnh (n là số công việc, m là số máy), do đó mỗi thuật toán mất ít nhất là: O(Nc*k*n*m).

Với thuật toán MMAS, sau mỗi lần lặp phải mất O((n*m)2) để bay hơi và điều khiển vết mùi nằm trong [ min, max] nên độ phức tạp của MMAS là:

O(Nc*(k*n*m + (n*m)2)).

Thuật toán SMMAS có độ phức tạp bằng MMAS nhƣng trên thực tế SMMAS nhanh hơn thuật toán MMAS vì SMMAS sẽ không mất thời gian điều khiển vết mùi nằm trong [ min, max] nhƣ cách cập nhật mùi MMAS.

48

Thuật toán MLAS, sau mỗi lần lặp không phải mất thời gian để bay hơi và điều khiển vết mùi nằm trong [ min, max] nên độ phức tạp của MLAS là

O(Nc*k*n*m), nhỏ hơn so với MMAS và SMMAS. (adsbygoogle = window.adsbygoogle || []).push({});

Thuật toán Độ phức tạp

MMAS O(Nc*(k*n*m + (n*m)2))

SMMAS O(Nc*(k*n*m + (n*m)2))

MLAS O(Nc*k*n*m)

49

CHƢƠNG 4

4.1

Chúng tôi tiến hành thực nghiệm trên 10 bộ dữ liệu chuẩn: Orb1, Orb2, .., Orb10. Các bộ dữ liệu này đƣợc xếp vào là những bộ dữ liệu phức tạp, có kích thƣớc là: 10 công việc thực hiện trên 10 máy (xem [1]).

Các bộ dữ liệu Orb1, Orb2, .., Orb10 tƣơng ứng trong 10 file văn bản Orb1.pro, Orb2.pro, .., Orb10.pro có khuôn dạng nhƣ sau:

- Dòng đầu tiên mô tả tên bộ dữ liệu

- Dòng thứ hai 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 mô tả cho một công việc là một danh sách gồm hai thành phần (máy, thời gian xử lý). Các máy đƣợc đánh số từ 0.

4.2

Khi tiến hành thực nghiệm, để so sánh khách quan, trong tất cả các thuật toán chúng tôi sử dụng các tham số giống nhau và không sử dụng tìm kiếm địa phƣơng. Vì ACO là lớp thuật toán meta-heuristic nên ngoài việc so sánh kết quả tốt nhất thì kết quả trung bình sau nhiều lần chạy cũng là căn cứ quan trọng. Với mỗi bộ dữ liệu chúng tôi tiến hành chạy 10 lần để lấy kết quả tốt nhất và kết quả trung bình. (Kết quả tốt nhất và kết quả trung bình sau 10 lần chạy dùng để so sánh tính hiệu quả của các thuật toán)

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 [20]). 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 nghiệm tìm đƣợ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.

50

4.2.1 Kết quả thực nghiệm của MMAS

Chúng tôi tiến hành thực nghiệm cho thuật toán MMAS với các tham số nhƣ sau:

Tham số Giá trị

Tham số bay hơi (ρ) 0.01

Số lần lặp (Nc) 50000

Số con kiến (nant) 10

α 1.0

β 0.4

Bảng 6: Các tham số sử dụng cho các thuật toán ACO

Tỉ lệ min và max là tham số quan trong nhất, qua phân tích đặc điểm của bài toán lập lịch sản xuất, luận văn đƣa ra đề xuất trong bài toán lập lịch sản xuất nên thiết đặt sự khác biệt giữa min và max nhỏ. Chúng tôi đã tiến hành thực nghiệm cách cập nhật mùi MMAS cho các tỉ lệ min và max là 1 1 1 1, , ,

2 3 4 5 và kết quả thực

nghiệm cho thấy với tỉ lệ 1

2 cho kết quả tốt nhất, tỉ lệ khác biệt càng lớn thì kết quả càng kém cả về kết quả tốt nhất (Best), và kết quả trung bình (Average – Avg). Problem min max 1 2 min max 1 3 min max 1 4 min max 1 5

Best Avg Best Avg Best Avg Best Avg (adsbygoogle = window.adsbygoogle || []).push({});

Orb1 1340 1368 1366 1398.7 1395 1424.4 1397 1447.1 Orb2 1093 1127.8 1123 1143.8 1103 1158.5 1162 1185.2 Orb3 1309 1348.5 1337 1364.9 1305 1384.9 1354 1395.3 Orb4 1263 1297.2 1301 1325 1318 1349.6 1345 1373.9

Bảng 7: Kết quả thực nghiệm MMAS với 4 bộ dữ liệu Orb1 đến Orb4 với các tỉ lệ khác nhau (Kết quả ở cột Best là kết quả tốt nhất sau 10 lần chạy, kết quả ở cột Avg là kết quả trung

51

Vì vậy, chúng tôi quyết định chọn tỉ lệ min và max là 1

2 khi áp dụng các thuật toán ACO cho bài toán lập lịch sản xuất.

Problem Opt 5/4 Opt Best Avg %Best %Avg

Orb1 1059 1324 1340 1368 1.2% 3.3% Orb2 888 1110 1093 1128 -1.5% 1.6% Orb3 1005 1256 1309 1349 4.2% 7.3% Orb4 1005 1256 1263 1297 0.5% 3.3% Orb5 887 1109 1078 1118 -2.8% 0.9% Orb6 1010 1263 1281 1344 1.5% 6.5% Orb7 397 496.3 510 514.7 2.8% 3.7% Orb8 899 1124 1179 1190 4.9% 5.9% Orb9 934 1168 1168 1198 0.0% 2.6% Orb10 944 1180 1194 1228 1.2% 4.1%

Bảng 8: Kết quả thực nghiệm MMAS cho các bộ dữ liệu chuẩn tỉ lệ min và max là 1

2

(Kết quả trong ô đƣợc tô là kết quả tốt hơn 5/4 Opt)

Số liệu ở cột %Best và %Avg là phần trăm sai khác của kết quả tốt nhất và kết quả trung bình so với 5/4 Opt. Thuật toán MMAS cho kết quả khá khả quan, với bộ test Orb2, Orb5 thuật toán tìm đƣợc kết quả tốt hơn 5/4 Opt, các bộ test còn lại cho kết quả xấp xỉ 5/4 Opt.

52

4.2.2 Kết quả thực nghiệm của MMAS, SMMAS và MLAS

Problem Opt 5/4 Opt

SMMAS MMAS MLAS

Best % Best Best % Best Best % Best

Orb1 1059 1324 1329 0.4% 1340 1.2% 1328 0.3% Orb2 888 1110 1090 -1.8% 1093 -1.5% 1094 -1.4% Orb3 1005 1256 1301 3.6% 1309 4.2% 1322 5.2% Orb4 1005 1256 1248 -0.7% 1263 0.5% 1248 -0.7% Orb5 887 1109 1086 -2.1% 1078 -2.8% 1086 -2.1% Orb6 1010 1263 1304 3.3% 1281 1.5% 1281 1.5% Orb7 397 496.3 509 2.6% 510 2.8% 498 0.3% Orb8 899 1124 1128 0.4% 1179 4.9% 1150 2.3% Orb9 934 1168 1148 -1.7% 1168 0.0% 1169 0.1% Orb10 944 1180 1177 -0.3% 1194 1.2% 1187 0.6%

Bảng 9: So sánh kết quả tốt nhất sau 10 lần chạy của MMAS, SMMAS và MLAS. Kết quả đƣợc tô đậm là kết quả tốt nhất trong ba thuật toán MMAS, SMMAS và MLAS.

Trong 10 test, SMMAS có 6 test cho kết quả tốt nhất trong 3 thuật toán. MLAS có 3 test cho kết quả tốt nhất trong 3 thuật toán, trong khi MMAS chỉ có 1 test. Kết quả thực nghiệm cho thấy, hai cách cập nhật mùi mới cho kết quả tốt hơn trong hầu hết các test (trừ test 5), đặc biệt SMMAS có đến 5 test cho kết quả tốt hơn 5/4 Opt (Orb2, Orb4, Orb5, Orb9, Orb10).

53

Problem Opt Opt 5/4 SMMAS MMAS MLAS

Avg % Avg Avg %Avg Avg %Avg

Orb1 1059 1324 1363.3 3.0% 1368 3.3% 1357.8 2.6% Orb2 888 1110 1117.4 0.7% 1128 1.6% 1121.2 1.0% Orb3 1005 1256 1348.2 7.3% 1349 7.3% 1336.7 6.4% Orb4 1005 1256 1291.2 2.8% 1297 3.3% 1291.6 2.8% Orb5 887 1109 1105.4 -0.3% 1118 0.9% 1104.5 -0.4% Orb6 1010 1263 1332.2 5.5% 1344 6.5% 1329.3 5.3% Orb7 397 496.3 513.4 3.4% 514.7 3.7% 509 2.6% Orb8 899 1124 1173.8 4.4% 1190 5.9% 1164.7 3.6% Orb9 934 1168 1195.6 2.4% 1198 2.6% 1190.1 1.9% Orb10 944 1180 1207.1 2.3% 1228 4.1% 1219.9 3.4%

Bảng 10: So sánh kết quả trung bình sau 10 lần chạy của MMAS, SMMAS và MLAS. Kết quả đƣợc tô đậm là kết quả tốt nhất trong ba thuật toán MMAS, SMMAS và MLAS

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 lập lịch sản xuất (Trang 40)