chuyền để tối đa hiệu suất cân bằng (GALB-E)
Mô hình hóa bài toán
Bài toán xác định nhịp dây chuyền để tối đa hiệu suất cân bằng GALB-E có tất cảcác điều kiện ràng buộc giống với bài toán GALB-1 đã nêu ở mục 3.1.1, điểm khác là dữ liệu đầu vào và mục tiêu tối ưu của bài toán.
Mục tiêu của bài toán là xác định nhịp dây chuyền và một cách phối hợp các NCCN thành NCSX sao cho hiệu suất cân bằng Hđược tối đa hóa. Nếu có nhiều đáp
án cho ra cùng hiệu suất cân bằng H tối ưu, thì đáp án có số công nhân N và nhịp R
nhỏ nhất sẽđược chọn.
* Dữ liệu đầu vào:
Bảng quy trình công nghệ may (Tập NCCN Tasks).
Hệ số sai lệch giới hạn nhịp ∆∈{5%,10%,15%}. Trình tự thực hiện của NCCN.
* Các điều kiện ràng buộc:
100
* Mục tiêu bài toán:
- Mục tiêu thứ nhất: Tối đa hóa hiệu suất cân bằng (maximize H). - Mục tiêu thứ hai: Tối thiểu hóa số công nhân (minimize N). - Mục tiêu thứ ba: Tối thiểu hóa nhịp dây chuyền (minimize R).
* Dữ liệu đầu ra:
Kết quả phối hợp NCCN thành NCSX.
Các chỉ số cân bằng dây chuyền: Nhịp dây chuyền R tối ưu, hiệu suất cân bằng
H tối ưu, số công nhân N tối ưu.
Thuật toán chung xác định nhịp dây chuyền R để tối đa hiệu suất cân bằng H (GALB-E)
a) Thuật toán chung giải bài toán GALB-E
Gọi VR là tập các giá trị cần duyệt của nhịp dây chuyền Rđể tồn tại ít nhất một giá trị R’∈ VR sao cho hiệu suất cân bằng tối đa của bài toán có thểđạt được khi R =
R’. Có thể có nhiều tập các giá trị nhịp thỏa mãn điều kiện để trở thành tập VR. Ví dụ
khi VRlà tập số thực, thì luôn tồn tại một giá trịR’∈ VR sao cho tồn tại một cách phối hợp NCCN đểH đạt tối đa khi R = R’.
Duyệt tất cả các giá trị của R trong tập VR. Với mỗi giá trị của R, áp dụng thuật toán giải bài toán cân bằng dây chuyền khi cho trước nhịp GALB-1 đã đề xuất trong mục 3.1.1để tìm kiếm phương án có hiệu suất cân bằng H cao nhất. Tuy nhiên trong bài toán GALB-E có thay đổi trong việc so sánh độ tốt của hai giải pháp, đó là giải pháp A tốt hơn giải pháp B nếu hiệu suất cân bằng của giải pháp A lớn hơn so với của giải pháp B. So sánh tất cả các giá trị tối đa của Htìm được với mỗi giá trị đầu vào
R, từđó có được H tối đa toàn cục và giá trịRtương ứng. Thuật toán chung giải bài
toán GALB-Enhư sau:
Thuật toán 3.4 Thuật toán giải bài toán GALB-E.
1: Thuật toán GALB_maxH-minN-minR (Tasks, ∆)
2: Xây dựng tập VR 3: H ← 0; N ← ∞; R ←∞ 4: for R’ ∈VRdo 5: (H’, N’, wst)← GALB_maxH-minN (Tasks, R’, ∆) 6: ifH’ > H then 7: H ← H’; N ← N’; R ← R’
8: else ifH’ = Hand N’ < Nthen
9: H ← H’; N ← N’; R ← R’
10: else ifH’ = HandN’ = N andR’ < Rthen
11: H ← H’; N ← N’; R ← R’
12: (H’, N’, wst)← GALB_maxH-minN (Tasks, R, ∆)
13: return (H’, N’, R, wst)
Hàm GALB_maxH-minN-minR gồm các bước giải bài toán xác định nhịp dây chuyền sao cho hiệu suất cân bằng H cao nhất, số công nhân N nhỏ nhất.
Hàm GALB_maxH-minN để giải bài toán con nhận vào ba tham số: Dữ liệu quy trình công nghệ may được gọi là tập NCCN Tasks, giá trị nhịp R và hệ số sai lệch nhịp ∆. Thuật toán này giải quyết bài toán cân bằng chuyền khi cho trước nhịp dây
101
chuyền tương tự như bài toán đã đề cập trong mục 3.1.1, chỉ khác là ưu tiên tối đa
hóa hiệu suất cân bằng Htrước khi tối thiểu hóa số công nhân N.
b) Xây dựng tập giá trị nhịp dây chuyền VR
Thực hiện thuật toánkhi đặt VR bằng tập số thực là điều bất khả thi vì tập số
thực có vô hạn phần tử. Trong phần này, luận án đề xuất một phương pháp tạo tập VR
từ một sốlượng hữu hạn các số thực mà vẫn đảm bảo thỏa mãn định nghĩa của tập
VR. Cách làm như sau: Gọi Y là tập hợp các NCSX thỏa mãn tất cả các ràng buộc của bài toán, ta đặt: VR*= {𝑇𝑋 1±∆| X ∈ Y} ∪ { 𝑇𝑋 2(1±∆)| X ∈ Y} ∪ { 𝑇𝑋 3(1±∆)| X ∈ Y}
Trong đó X là NCSX thuộc tập Y, Tx là thời gian của NCSX X.
Vì tập Y có hữu hạn phần tử nên tập VR*cũng có hữu hạn phần tử. Nếu có thể
chứng minh với mọi giá trị R’ luôn tìm được một giá trị R”∈ VR* sao cho H tối đa
khi R = R’ không lớn hơn H tối đa khi R = R” thì ta có thểđặt VR = VR*. Điều này
được chứng minh trong Bổđề3.2 sau đây:
Bổđề 3.2. Với mọi giá trịR’luôn tìm được một giá trịR’’ ∈ VR*đểH tối đa
khi R = R’ không lớn hơn H tối đa khi R = R’’.
Chứng minh: - Nếu ∄X ∈ Y: ((𝑇𝑋 1+∆≤ R’ ≤ 𝑇𝑋 1−∆) ∨ ( 𝑇𝑋 2(1+∆)≤ R’ ≤ 𝑇𝑋 2(1−∆)) ∨ ( 𝑇𝑋 3(1+∆)≤ R’ ≤ 𝑇𝑋 3(1−∆)))
thì với R = R’, hiệu suất cân bằng H sẽ luôn luôn bằng 0 với mọi giải pháp, bổđề
hiển nhiên đúng. - Nếu ∃X ∈ Y: ((𝑇𝑋 1+∆≤ R’ ≤ 𝑇𝑋 1−∆) ∨ ( 𝑇𝑋 2(1+∆)≤ R’ ≤ 𝑇𝑋 2(1−∆)) ∨ ( 𝑇𝑋 3(1+∆)≤ R’ ≤ 𝑇𝑋 3(1−∆))),
ta gọi γ là phần tử lớn nhất thuộc VR* mà không vượt quá R’. Dễ dàng nhận thấy rằng
∀X ∈ Y mà 𝑇𝑋 1+∆≤ R’ ≤ 𝑇𝑋 1−∆là đúng, ta cũng có 𝑇𝑋 1+∆≤ γ≤ 𝑇𝑋 1−∆là đúng, nếu không ta sẽ có γ < 𝑇𝑋
1+∆, khi đó γ sẽ không phải là phần tử lớn nhất thuộc VR*mà không vượt quá
R’. Điều tương tựcũng xảy ra khi 𝑇𝑋
1+∆≤ R’ ≤ 𝑇𝑋
1−∆ hoặc 𝑇𝑋
2(1+∆) ≤ R’ ≤ 𝑇𝑋
2(1−∆) . Vì vậy mọi NCSX có thời gian thuộc khoảng giới hạn nhịp khi R = R’ thì cũng có thời gian thuộc khoảng giới hạn nhịp khi R = γ. Do đó hiệu suất cân bằng tối đa khi R = γ sẽ
luôn luôn không nhỏ hơn hiệu suất cân bằng tối đa khi R = R’, bổ đề được chứng minh.
Tập Y có nhiều nhất M 3 phần tử, do đó SR’ có nhiều nhất 3M 3 phần tử.
c) Xác định một số giá trị của R có thể bỏ qua để giảm thời gian tính
Mặc dù cách xây dựng tập giá trị của nhịp VR trong mục 3.1.3.2 b để|VR| ≤ 3M3
đã được đề xuất, số lượng phần tử của VR vẫn còn khá lớn. Tuy vậy, một số giá trị
của R có thể không cần xét đến để giảm thời gian tính. Ý tưởng đơn giản là bỏ qua không xét một giá trị R = R’ nếu cận trên của hiệu suất cân bằng tối đa khi R = R’
nhỏhơn hoặc bằng hiệu suất cân bằng tối đa hiện tại. Cận trên của hiệu suất cân bằng tối đa khi R = R’ có thểđược tính như sau:
Đặt c = số các NCCN không thuộc bất kì NCSX cân bằng nào. Khi đó cận trên của hiệu suất cân bằng tối đa khi R = R’ sẽđược đặt bằng 𝑀−𝑐
𝑀−𝑐+⎾𝑐/3⏋. Sở dĩ đây là
cận trên vì giá trị lớn nhất có thể của H sẽ đạt được khi mỗi NCCN có xuất hiện ở
102
nhịp riêng nằm trong khoảng giới hạn nhịp dây chuyền [Rmin, Rmax], đồng thời các
NCCN còn lại được chia thành các NCSX có đúng 3 NCCN (nếu c không chia hết
cho 3, các NCCN bị thừa ra được ghép thành 1 NCSX).
d) Thuật toán đề xuất giải bài toán con GALB_maxH-minN
Các thuật thuật toán meta-heuristic, được đưa ra để khắc phục các hạn chế khi không gian tìm kiếm quá lớn và kích thước dữ liệu đầu vào tăng lên. Mục đích của nhóm thuật toán này tìm ra lời giải gần tối ưu trong thời gian chấp nhận được. Trong phần 3.1.1 và 3.1.2 đã áp dụng thuật toán Luyện kim, Luyện kim-Tham lam giải hai bài toán GALB-1 và GALB-2 cho lời giải chấp nhận được trong thời gian hợp lý. Thuật toán Di truyền cũng thuộc lớp thuận toán tiến hóa đã được một số công trình nghiên cứu áp dụng giải bài toán cân bằng dây chuyền. Vậy thuật toán nào phù hợp nhất để giải bài toán GALB-E, để trả lời câu hỏi đó luận án đã áp dụng hai thuật toán Luyện kim và Di truyền (Genetic Algorithm) để giải bài toán GALB-E.
Áp dụng thuật toán Luyện kim giải bài toán con GALB_maxH-minN
Cách thực hiện hàm GALB_maxH-minN không khác so với hàm
GALB_minN-maxH của bài toán GALB-1, ngoại trừ phép so sánh hai phương án được thay đổi đểưu tiên hiệu suất cân bằng Hhơn so với số công nhân N. Do đó, các
thuật toán SA dùng cho hàm GALB_minN-maxH của bài toán GALB-1 được đề cập
ở phần 3.1.1.2.b được sử dụng lại cho hàm GALB_maxH-minN với thay đổi về cách
so sánh độ tốt của hai phương án.
Áp dụng thuật toán Di truyền cho hàm GALB_maxH-minN a) Khởi tạo tập các phương án CBC
Tập các phương án CBC được khởi tạo một cách ngẫu nhiên, các phương án
cần đảm bảo không vi phạm các điều kiện ràng buộc, các bước sinh ngẫu nhiên một
phương án thực hiện như sau:
- Bước 1: Tạo một Tập phương án P = ∅để chứa các phương án, Tập phương án
có sốlượng phương án (kích thước) tối đa là POP_SIZE. - Bước 2: Tạo một phương án s = ∅.
- Bước 3: Chọn một NCCN u còn lại sao cho không có bất kỳNCCN v ≠ u còn lại mà v phải được thực hiện trước khi uđược thực hiện.
- Bước 4: Tạo một NCSX X chứa NCCN u và một số NCCN còn lại sao cho NCSX X thỏa mãn các ràng buộc về: Thời gian, thiết bị, số lượng NCCN, số lượng công nhân trong mỗi NCSX và không vi phạm điều kiện về trình tự thực hiện NCCN.
- Bước 5: Thêm NCSX X vào phương án s và xóa tất cả các NCCN thuộc
NCSX X.
- Bước 6: Lặp lại từ bước 3 đến bước 5 cho đến khi không còn NCCN nào trên
sơ đồ trình tự công nghệ.
- Bước 7: Kiểm tra sự trùng lặp của phương án s với các phương án đã có trong
Tập các phương án, nếu thỏa mãn điều kiện không có sự trùng lặp thì chuyển phương
án s vào Tập phương án P. Nếu Tập phương án P chưa đủ số lượng phương án
POP_SIZE thì dựng lại sơ đồ trình tự công nghệban đầu của các NCCN và quay lại
103
b) Độ tốt của phương án CBC
Do số NCSX k tối đa là M với mọi phương án, từđó suy ra được với hai phương
án bất kì A và B, nếu HA > HB thì HA - HB = 𝑘′𝐴 𝑘𝐴 - 𝑘′𝐵
𝑘𝐵 ≥ 𝑀(𝑀−1)1 . Bên cạnh đó, vì N ≥
1, ta có 1
𝑁𝐴 - 1
𝑁𝐵 > -1với mọi cặp phương án (A, B). Từ nhận xét này, ta xây dựng được công thức tính độ tốt của một phương án (hay cá thể) pnhư sau:
fitness(p) = M(M-1)Hp + 1
𝑁𝑝 (3.11)
Công thức trên đảm bảo với phương án A và B, nếu HA > HB thì fitness(A) > fitness(B).Đồng thời nếu HA = HB và NA < NB thì fitness(A) > fitness(B).
c) Lai ghép các phương án cân bằng chuyền
Trong một thế hệ, với mỗi phương án CBC pi trong Tập phương án P và một
phương án pj trong P mà không phải pi sẽđược chọn để lai ghép với pi. Độ tốt của pj
càng lớn, khảnăng để phương ánpjđược lựa chọn càng lớn. Cụ thể, xác suất để pj
được lựa chọn ghép cặp với pi là:
𝑓𝑖𝑡𝑛𝑒𝑠𝑠(𝑝𝑗)
∑𝑝𝑘∈𝑃\𝑝𝑖 𝑓𝑖𝑡𝑛𝑒𝑠𝑠(𝑝𝑘) (3.12)
Hình 3.24 Sơ đồ trình tự công nghệ may gồm 12 NCCN
Thủ tục lai ghép giữa hai phương án pi và pjđược thực hiện bằng cách lấy ngẫu
nhiên các NCSX trong hai phương án để ghép lại thành một phương án mới q, hay còn gọi là con của pi và pj. Giả sửphương án pi và pj thỏa mãn trình tự công nghệ may hình 3.24 ta có thủ tục lai ghép giữa hai phương án được thực hiện như sau:
Bước 1: Lấy ngẫu nhiên mỗi phương án một sốNCSX để lai ghép, giả sửphương
án pichọn NCSX 1, 2, 3, phương án pjchọn NCSX 4, 5, 6
Phương án pi: NCSX 1 2 3 4 5 6
NCCN 1, 6 2, 3 4, 5 7, 8, 10 9 11, 12
Phương án pj: NCSX 1 2 3 4 5 6
NCCN 1, 2 3,4,5 6 7, 10 8, 9 11, 12
Bước 2:Lai ghép các NCSX được chọn của mỗi phương án sẽ tạo thành phương
án mới q như sau:
NCSX 1 2 3 4 5 6
NCCN 1, 6 2, 3 4, 5 7, 10 8, 9 11, 12
Nếu q thỏa mãn tất cảcác điều kiện ràng buộc thì thêm nó vào Tập phương án
P’, nếu không thì thực hiện lại thủ tục lai ghép. Nếu sau một khoảng thời gian tính toán nhất định hoặc sau khi một lượng phương án được sinh ra mà chưa có phương
104
coi nó là q. Vì khảnăng con của pi và pjđược sinh ra không thỏa mãn điều kiện ràng buộc là không nhỏ, ưu tiên việc chọn NCSX từ pi hơn bằng cách tăng xác suất lấy một NCSX từpithay vì đặt xác suất chọn là 50% cho cảpi và pj.
c) Đột biến phương án cân bằng chuyền
Đột biến các phương án CBC (đột biến) được thực hiện qua việc thay đổi ngẫu nhiên một phương án thành một phương án CBC khác bằng cách chuyển một NCCN
từ NCSX này sang NCSX khác hoặc đổi chỗ hai NCCN trong hai NCSX khác nhau.
Xác suất đột biến Prmutation cần được điều chỉnh phù hợp để đạt kết quả cao nhất.
Prmutation quá thấp sẽ khiến sựđa dạng của NCSX bị giảm, nhưng Prmutation quá cao lại làm mất đi những giải pháp tốt.
Một sốlượng nhỏphương án ưu tú nhất trong một thế hệ sẽđược đảm bảo không bịđột biến trước khi bước chọn của thế hệsau được bắt đầu. Điều này được thực hiện nhằm tránh việc các phương án tốt bị mất đi không mong muốn do quá trình đột biến. Minh họa thủ tục chuyển NCCN 10 từ NCSX 4 sang NCSX 5 của phương án pi
tạo thành phương án qimới như sau: Phương án pi: NCSX 1 2 3 4 5 6 NCCN 1, 6 2, 3 4, 5 7, 8, 10 9 11, 12 Phương án qi : NCSX 1 2 3 4 5 6 NCCN 1, 6 2, 3 4, 5 7, 8 9, 10 11, 12
Hoặc đổi chỗ NCCN 10 của NCSX 4 với NCCN 9 của NCSX 5 được phương
án mới qi’:
Phương án qi’:
NCSX 1 2 3 4 5 6
NCCN 1, 6 2, 3 4, 5 7, 8, 9 10 11, 12
d) Điều kiện dừng
Thuật toán sẽ dừng khi độ tốt của phương án tốt nhất không tăng sau ít nhất Gbest
thế hệ liên tiếp, đồng thời trung bình độ tốt của các phương án không tăng sau ít nhất
Gavg thế hệ liên tiếp. Các tham sốGbest và Gavg càng lớn thì khảnăng tìm được đáp án
tốt hơn càng cao, nhưng thời gian chạy cũng tăng lên đáng kể. Thử nghiệm sơ bộ các tham số cho thuật toán GA từđó luận án đã chọn POP_SIZE = 30, Prmutation = 20%,
Gbest = Gavg = 10 cho kết quả phù hợp để giải bài toán GALB-E.
Áp dụng thuật toán Di truyền (GA) cho hàm GALB_maxH-minNđược minh
họa bằng mã giả trong thuật toán 3.5.
Thuật toán 3.5. Thuật toán Di truyền (GA) tối ưu hiệu suất cân bằng và số lượng công nhân theo mỗi giá trị nhịp đầu vào.
1: Thuật toán GA_maxH-minN(Tasks, ∆)
2: Khởi tạo tập phương án CBC P có POP_SIZEphương án (pilà một
phương án CBC trong tập P, pi∈ P)
3: Tính toán độ tốt fitness(pi) của tất cảcác phương án pi trong P
105
5: Loại bỏ𝑃𝑂𝑃_𝑆𝐼𝑍𝐸2 phương án có độ tốt thấp nhất trong P ra khỏi P
6: Tạo tập lời giải P’, gán P’ ← ∅