cân bằng dây chuyền công nghiệp may sản phẩm dệt kim
Kết quả nghiên cứu xác định thuật toán giải bài toán cân bằng dây chuyền may theo cơng suất cho trước (GALB-1)
Mơ hình bài tốn
Bài toán cân bằng dây chuyền may khi cho trước cơng suất với mục tiêu thứ nhất tối thiểu hóa số cơng nhân, mục tiêu thứ hai tối đa hiệu suất cân bằng, kí hiệu là GALB-1 được mơ hình hóa như sau:
* Dữ liệu đầu vào:
Quy trình cơng nghệ may sản phẩm được gọi là tập NCCN, kí hiệu là Tasks. Cơng suất dây chuyền P (sản phẩm/ ca) hoặc nhịp dây chuyền R (giây). Thời gian làm việc một ca Tlv (giây).
Sai lệch giới hạn nhịp ∆R ∈ {5%R, 10%R, 15%R}. Trình tự cơng nghệ của NCCN.
* Các điều kiện ràng buộc:
∀ 1 ≤ 𝑖 ≤ 𝑗 ≤ 𝑘: 𝑆𝑖 ∩ 𝑆𝑗 = ∅ (3.1) ∀ 1 ≤ 𝑗 ≤ 𝑘: 𝑇𝑗 = ∑𝑖∈𝑆𝑗 𝑡𝑖 (3.2) ∀ 1 ≤ 𝑗 ≤ 𝑘: 𝑇𝑗 ≤ 3(𝑅 + ∆𝑅) (3.3) nj= { 1 2 3 𝑛ế𝑢 𝑇𝑗 ≤ 𝑅 + ∆𝑅 𝑛ế𝑢 𝑅 + ∆𝑅 < 𝑇𝑗 ≤ 2(𝑅 + ∆𝑅) 𝑛ế𝑢 2(𝑅 + ∆𝑅) < 𝑇𝑗 ≤ 3(𝑅 + ∆𝑅) (3.4) 𝑅𝑗 =𝑇𝑗 𝑛𝑗 (3.5) 𝑁 = ∑𝑘𝑗=1𝑛𝑗 (3.6) 𝐻 =𝑘′ 𝑘 . 100 (%) (3.7)
Trong đó: Si và Sj là NCSX thứ i và j, ti là thời gian của NCCNi, Tj là thời gian của NCSX j, nj là số công nhân cần cho NCSX j, R là nhịp của dây chuyền, ΔR là sai lệch giới hạn nhịp, Rj là nhịp riêng của NCSX j, N là tổng số công nhân, H là hiệu
suất cân bằng, k’ là số NCSX có nhịp riêng thuộc khoảng giới hạn nhịp dây chuyền,
k là tổng số NCSX.
Điều kiện 3.1 chỉ ra rằng khơng có NCCN nào thuộc đồng thời cả hai NCSXi và j, điều kiện 3.2 xác định thời gian của NCSX thứ j, điều kiện 3.3 cho thấy thời gian của NCSX không lớn hơn ba lần giới hạn trên của nhịp để đảm bảo mỗi NCSX khơng có q ba cơng nhân, điều kiện 3.4 để xác định số công nhân của mỗi NCSX.
* Mục tiêu của bài toán:
Mục tiêu thứ nhất: Tối thiểu hóa số cơng nhân (minimize N). Mục tiêu thứ hai: Tối đa hóa hiệu suất cân bằng (maximize H).
* 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: Số công nhân N, hiệu suất cân bằng H tối ưu.
Thuật toán đề xuất
Để đưa ra câu trả lời cho câu hỏi thuật toán nào phù hợp giải bài toán cân bằng chuyền GALB-1, luận án đã đề xuất giải bài toán theo ba phương pháp: Ứng dụng thuật toán Vét cạn, Luyện kim, kết hợp thuật toán Luyện kim và Tham lam. Chi tiết của từng thuật tốn đề xuất được trình bày trong các phần sau.
a) Áp dụng thuật toán Vét cạn (Exhaustive Search) giải bài toán cân bằng dây chuyền may khi cho trước công suất GALB-1
Thuật toán Vét cạn (Ex) dùng để giải bài toán GALB-1 được thiết lập bằng cách đệ quy. Giả thiết mỗi phương án phối hợp các NCCN thành NCSX là một Tập NCSX có dạng (NCSX1, NCSX2, … NCSXk), các bước thực hiện như sau:
Bước 1. Xét tất cả các NCCN mà NCSX1 có thể nhận được, thử cho
NCSX1 nhận lần lượt các NCCN đó. Với lần thử tiến hành kiểm tra:
- Nếu NCSX1 thỏa mãn điều kiện ràng buộc thì chuyển NCSX1 vào Tập NCSX. - Nếu NCSX1 khơng thỏa mãn điều kiện ràng buộc của bài toán, tiến hành xét tiếp các NCCN còn lại để phối hợp với các NCCN đã có trong NCSX1, thử cho NCSX1 nhận lần lượt các NCCN đó. Với mỗi bước thử lại tiến hành kiểm tra điều kiện ràng buộc, nếu khơng tìm được NCCN nào thì chuyển NCSX1 vào Tập NCSX.
Với mỗi kết quả tìm được NCSX1 ta sẽ thực hiện:
Bước 2. Xét tất cả các NCCN mà NCSX2 có thể nhận được, thử cho NCSX2 nhận
lần lượt các giá trị đó. Với mỗi NCCN thử cho NCSX2 tiến hành kiểm tra các điều kiện ràng buộc của bài toán như bước 1.
Giả sử xét đến NCCNi, quá trình thực hiện bằng cách đệ quy, mỗi trạng thái đệ quy có dạng (i, j, wst, curSol), trong đó wst là NCSX hiện tại, i là NCCN thứ nhất trong NCSX hiện tại, j là NCCN cuối cùng được thêm vào NCSX hiện tại và curSol là phương án phối hợp NCCN thành NCSX hiện tại đang được xây dựng. Ở mỗi trạng thái đệ quy (i, j, wst, curSol), ta thực hiện các bước sau (quy ước là sau khi gọi đệ quy một trạng thái mới, ta phải đặt lại các giá trị wst và curSol về giá trị ban đầu như lúc chưa gọi đệ quy):
* Nếu i > M, tức là chỉ số i của NCCN lớn hơn tổng số NCCN của quy trình cơng nghệ may, khi đó curSol là một phương án phối hợp NCCN thành NCSX hoàn chỉnh. Nếu phương án hiện tại curSol tốt hơn phương án tốt nhất hiện tại bestSol, thì thay bestSol bằng curSol và kết thúc đệ quy.
* Nếu i ≤ M thì ta có:
- Nếu NCSX hiện tại wst chưa có NCCN nào (wst =∅) thì tìm một NCCN chưa được chia vào bất cứ NCSX nào trước đó để thêm vào wst, ta có:
+ Nếu NCCN i đã được chia vào NCSX, tiến hành đệ quy trạng thái (i+1, j+1,
∅, curSol).
+ Nếu NCCN i chưa được chia vào NCSX nào, thì cho NCCN đó vào NCSX hiện tại wst và đệ quy trạng thái (i, j, wst, curSol).
+ Nếu NCSX hiện tại wst là một NCSX hợp lệ và khơng mâu thuẫn về trình tự thực hiện NCCN với các NCSX có trong curSol, ta cho wst vào curSol và đệ quy
trạng thái (i+1, j+1, ∅, curSol).
+ Nếu NCSX hiện tại wst có ít hơn ba NCCN, ta duyệt tất cả các NCCN k chưa được chia để đưa vào NCSX hiện tại wst. Với mỗi NCCN k chưa được chia, ta thêm NCCN k vào NCSX hiện tại wst và đệ quy trạng thái (i, k, wst, curSol).
Sau khi tìm được tất cả các phương án phối hợp NCCN thành NCSX thì tiến hành tìm phương án có số lượng cơng nhân nhỏ nhất. Trong các phương án vừa tìm, tiếp tục so sánh để xác định phương án có có hiệu suất cân bằng cao nhất. Thuật toán Vét cạn được thiết lập bằng cách đệ quy giải bài toán GALB-1 được minh họa dưới dạng mã giả trong Thuật toán 3.1 sau:
Thuật toán 3.1 Thuật toán Ex giải bài tốn GALB-1
Kí hiệu: i: NCCN thứ nhất trong NCSX hiện tại
j: NCCN cuối cùng được thêm vào NCSX hiện tại
wst: NCSX hiện tại
curSol: Phương án phối hợp NCCN thành NCSX hiện tại bestSol: Phương án phối hợp NCCN thành NCSX tốt nhất
1: Thuật toán Exhaustive (i, j, wst, curSol)
2: if i > M then
3: if curSol tốt hơn bestSol then
4: bestSol ← curSol
5: else if wst = ∅ then
6: if NCCNi được đánh dấu then
7: exhaustive (i+1, j+1, ∅, curSol)
8: else
9: Chuyển NCCNi vào wst
10: Exhaustive (i, j, wst, curSol)
11: Chuyển NCCNi ra ngoài wst 12: else
13: if wst hợp lệ then
14: Đánh dấu tất cả các NCCN có trong wst 15: Chuyển wst vào CurSol
16: exhaustive(i + 1, j + 1, ∅, curSol) 17: Chuyển wst ra ngoài curSol
18: Bỏ đánh dấu tất cả các NCCN có trong wst 19: if |wst| < 3 then
20: for k ← j + 1 to M do
21: if NCCNk không bị đánh dấu then
22: Chuyển NCCNk vào wst 23: Exhaustive (i, k, wst, curSol) 24: Chuyển NCCNk ra ngoài wst
b) Áp dụng thuật toán Luyện kim (Simulated Annealing) giải bài toán cân bằng dây chuyền may khi cho trước cơng suất GALB-1
Thuật tốn Luyện kim (SA) được chọn để giải quyết bài toán cân bằng dây chuyền may do tính đơn giản và hiệu quả. Khơng gian tìm kiếm nghiệm rộng và thậm
chí có thể tìm ra giải pháp tối ưu tồn cục nếu thời gian chạy đủ lớn. Các thành phần chính của thuật tốn SA ứng dụng giải bài toán cân bằng dây chuyền may gồm:
+ Xây dựng phương án cân bằng chuyền cơ sở. + Xây dựng phương án CBC mới (lân cận). + Xác suất chấp nhận.
+ Xác định các bước tìm phương án CBC tối ưu (lịch làm mát).
- Xây dựng phương án cân bằng chuyền cơ sở.
Phương án CBC cơ sở s0 là phương án phối hợp NCCN thành NCSX xây dựng ban đầu của bài tốn, nó có thể là bất kỳ một phương án hợp lý nào đó và nó khơng ảnh hưởng đến chất lượng thuật toán SA, trong nội dung này phương án cơ sở được xây dựng ngẫu nhiên, các bước của thuật tốn được mơ tả dưới đây:
Bước 1: Chọn một NCCN u sao cho khơng có bất kỳ NCCN v ≠ u mà v được thực hiện trước khi u được thực hiện.
Bước 2: Tạo một NCSX X chứa NCCN u và một số NCCN còn lại sao cho X thỏa mãn các ràng buộc của bài toán: 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 3: Thêm NCSX X vào phương án cơ sở s0.
Bước 4: Nếu cịn NCCN chưa được chọn thì quay lại bước 1, nếu khơng cịn thì kết thúc.
- Xây dựng phương án CBC mới.
Phương án CBC mới (lân cận) được xây dựng từ phương án CBC cơ sở thực hiện như sau: Chuyển một NCCN từ NCSX này sang NCSX khác (bao gồm cả việc tạo một NCSX mới chỉ bao gồm NCCN đó), như minh họa trong hình 3.1 chuyển NCCN 9 từ NCSX 4 sang NCSX 5, hoặc đổi chỗ hai NCCN của hai NCSX khác nhau, như minh họa trong hình 3.2 đổi chỗ NCCN 2 và 3 cho nhau.
NCSX 1 2 3 4 5 NCSX 1 2 3 4 5 NCCN 1, 2 3, 4 5, 6 7, 8, 9 10 NCCN 1, 2 3, 4 5, 6 7, 8, 9 10 NCSX 1 2 3 4 5 NCCN 1 2 3 4 5 NCCN 1, 2 3, 4 5, 6 7, 8 10, 9 NCSX 1, 3 2, 4 5, 6 7, 8 9, 10 Hình 3.1 Chuyển một NCCN từ NCSX này sang NCSX khác
Hình 3.2 Đổi chỗ hai NCCN của hai NCSX khác nhau
Giả sử mỗi NCCN trở thành một NCSX thì mỗi NCCN sẽ có tối đa M cách
chuyển sang NCSX khác. Như vậy có nhiều nhất M 2 phương án CBC mới và thuật toán chỉ chọn những phương án thỏa mãn các điều kiện ràng buộc, được gọi là phương án hợp lệ. Trong số những phương án hợp lệ, thuật toán chỉ xét đến χ phương án tốt nhất theo hàm mục tiêu và chọn ngẫu nhiên một trong số đó. Lý do khơng chọn trong số tất cả các phương án hợp lệ là để tiết kiệm thời gian tính tốn mà khơng làm giảm hiệu quả thuật toán quá nhiều.
Khi bắt đầu thuật toán, số phương án χ được chọn ở mức cao và giảm dần ở các bước thuật tốn tiếp theo, do đó ở bước thuật tốn đầu tiên tất cả các phương án đều có thể được chọn, ở bước thuật tốn tiếp theo s là phương án phối hợp NCCN thành NCSX hiện tại, chỉ những phương án tốt hơn s mới được lấy để thay thế s.
Tại mỗi bước thuật tốn (Ti) thực hiện vịng lặp L lần, mục đích sử dụng vịng lặp là để mở rộng phạm vi tìm kiếm các phương án mới. Với mỗi vịng lặp thực hiện tìm kiếm và thay thế phương án s, cụ thể:
Bước 1: Tìm kiếm các phương án CBC mới (lân cận) của phương án cơ sở s0
hiện tại.
Bước 2: Đánh giá và sắp xếp các phương án CBC mới từ tốt đến không tốt theo
hàm mục tiêu: Sắp xếp phương án có số cơng nhân từ thấp đến cao, trong số các phương án có số cơng nhân bằng nhau thì sắp xếp theo hiệu quả cân bằng H từ lớn đến bé.
Bước 3: Lấy ra χ phương án CBC có hàm mục tiêu tốt nhất trong tất cả các phương án CBC mới tìm được: Lấy các phương án có số cơng nhân từ thấp đến cao, nếu có nhiều phương án có số cơng nhân bằng nhau thì chọn phương án có hiệu quả cân bằng cao hơn để lấy.
Bước 4: Chọn ngẫu nhiên một trong χ phương án đó làm phương án hiện tại. Bước 5: Thực hiện vòng lặp L lần từ bước 1 đến bước 4.
- Xác suất chấp nhận.
Hàm xác suất chấp nhận: Là một thành phần chính của thuật tốn SA, nó cho
phép chấp nhận phương án phối hợp NCCN thành NCSX không cải thiện hơn so với phương án cũ.
Thông thường, xác suất P chấp nhận phương án không cải thiện phụ thuộc vào bước thuật toán hiện tại (nhiệt độ hiện tại T), phương án hiện tại s và phương án mới
s′ theo công thức sau [85]:
𝑃(𝑇, 𝑠, 𝑠′) = 𝑒−𝑓(𝑠 ′)−𝑓(𝑠)
𝑇 = 𝑒−∆𝐸𝑇 (3.8)
Trong đó f (s), f (s′) là giá trị các hàm mục tiêu của phương án s và s′, ∆E = f
(s′) - f (s) là sự khác biệt về chất lượng giữa phương án mới và hiện tại. Tuy nhiên,
trong thuật toán SA để cân bằng dây chuyền may, luận án xây dựng xác suất chấp nhận P chỉ phụ thuộc vào T theo một công thức đơn giản:
𝑃(𝑇) = 𝑇
𝑇𝑚𝑎𝑥
(3.9)
Lý do chính giải thích tại sao ∆E khơng được sử dụng trong trường hợp bài tốn này là do chất lượng của phương án s và phương án mới khơng khác nhau nhiều, thậm chí chúng rất gần nhau. Bởi vì s′ được tạo từ s bằng cách di chuyển một NCCN từ
NCSX này sang NCSX khác hoặc hoán đổi hai NCCN giữa hai NCSX và s’ được chọn trong số χ lân cận tốt nhất của s. Do đó, ∆E có xu hướng rất nhỏ và khơng đáng kể. Trong trường hợp này, công thức P(T) đơn giản và hợp lý hơn ∆E. Hơn nữa, xây dựng một công thức hợp lý cho f(s) không phải là một việc dễ dàng, và công thức sau khi được xây dựng không chắc đã đánh giá được đúng độ tốt của một giải pháp.
- Xác định các bước tìm phương án cân bằng chuyền tối ưu.
Số bước tìm kiếm phương án CBC tối ưu dựa trên lịch làm mát của thuật toán SA được xác định như sau:
+ Đặt giá trị bước thuật toán đầu tiên là T1 = Tmax (là nhiệt độ ban đầu).
+ Bước thuật tốn thứ hai có giá trị quy ước là T2 = T1 -Tdec , Tdec là giá trị giảm bước thuật toán.
+ Bước thuật toán thứ i có giá trị quy ước là Ti = Ti-1 -Tdec.
Về lý thuyết Tmax và L càng cao thì cơ hội tìm được phương án tối ưu càng cao,
giá trị Tdec càng thấp thì giải pháp cuối cùng sẽ càng tốt. Tuy nhiên, để tiết kiệm thời gian tính tốn, ba thơng số này cần được điều chỉnh phù hợp. Kế thừa các kết quả nghiên cứu [61] [109] xác định giá trị bước thuật toán ban đầu nằm trong khoảng 80 đến 400, giá trị giảm là 5. Thử nghiệm sơ bộ thuật toán SA cho thấy các giá trị bước thuật toán ban đầu Tmax = 200, số vòng lặp tại mỗi bước thuật toán L = 60, Tdec = 5 là
phù hợp với bài toán cân bằng dây chuyền may. Khi bắt đầu thuật toán đặt χ =
Tmax/Tdec và χ giảm đi 1 đơn vị khi chuyển đến bước thuật toán tiếp theo để đảm bảo
chất lượng lời giải mà không mất quá nhiều thời gian. Các giá trị này được đặt cho các thuật toán Luyện kim áp dụng cho tất cả các bài toán cân bằng dây chuyền may trong luận án.
Mã giả thuật toán Luyện kim áp dụng cho bài toán cân bằng dây chuyền may GALB-1 được trình bày trong thuật tốn 3.2 sau:
Thuật toán 3.2 Thuật toán SA giải bài toán cân bằng chuyền GALB-1
1: Thuật toán SA (s0, Tmax, L, Tdec, P)
2: s ← s0 // Xây dựng phương án CBC cơ sở 3: T ← Tmax // Bước thuật toán đầu tiên
4: while T > 0 do
5: for i ← 1 to L do
6: Chọn ngẫu nhiên một lân cận s’ 7: if s’ tốt hơn s then
8: s ← s’
9: else
10: Chỉ định s ← s’, với xác suất P(T) 11: T ← T - Tdec // Bước thuật toán tiếp theo
12: return Tìm phương án tốt nhất.
c) Áp dụng thuật toán kết hợp Luyện kim – Tham lam giải bài toán bài toán cân bằng dây chuyền may khi cho trước công suất với mục tiêu tối thiểu số công nhân GALB-1
Thuật toán SA-Gr được áp dụng cho bài toán cân bằng dây chuyền may gồm các thành phần sau:
+ Xây dựng phương án CBC cơ sở áp dụng thuật toán Tham lam. + Xây dựng phương án CBC mới (lân cận).
+ Xác suất chấp nhận.
+ Xác định các bước tìm kiếm phương án CBC tối ưu (lịch làm mát).
Xây dựng phương án CBC cơ sở áp dụng thuật toán Tham lam gồm các bước sau:
Bước 1: Chọn một NCCN u sao cho khơng cịn bất kỳ NCCN v ≠ u, trong đó v