Ế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

Một phần của tài liệu Luận án tiến sĩ Nghiên cứu tối ưu cân bằng dây chuyền công nghiệp may sản phẩm dệt kim (Trang 88 - 113)

dây chuyền may theo công suất cho trước (GALB-1)

Mô hình 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 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ặcnhị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 kin ràng buc: ∀ 1 ≤ 𝑖 ≤ 𝑗 ≤ 𝑘: 𝑆𝑖 ∩ 𝑆𝑗 = ∅ (3.1) ∀ 1 ≤ 𝑗 ≤ 𝑘: 𝑇𝑗 = ∑𝑖∈𝑆𝑗 𝑡𝑖 (3.2) ∀ 1 ≤ 𝑗 ≤ 𝑘: 𝑇𝑗 ≤ 3(𝑅 + ∆𝑅) (3.3) nj= {12 3 𝑛ế𝑢 𝑇𝑗 ≤ 𝑅 + ∆𝑅 𝑛ế𝑢 𝑅 + ∆𝑅 < 𝑇𝑗 ≤ 2(𝑅 + ∆𝑅) 𝑛ế𝑢 2(𝑅 + ∆𝑅) < 𝑇𝑗 ≤ 3(𝑅 + ∆𝑅) (3.4) 𝑅𝑗 =𝑇𝑛𝑗 𝑗 (3.5) 𝑁 = ∑𝑘𝑗=1𝑛𝑗 (3.6) 𝐻 =𝑘′𝑘 . 100 (%) (3.7)

Trong đó: Si Sj là NCSX thứij, tilà thời gian của NCCNi, Tj là thời gian của NCSX j, njlà 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

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ó quá ba công nhân, điều kiện 3.4 đểxác định số công nhân của mỗi NCSX.

* Mc tiêu ca bài toán:

Mục tiêu thứ nhất: Tối thiểu hóa số công nhân (minimize N).

75

* 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 đề xut

Đểđư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 toán đề xuất được trình bày trong các phần sau.

a) Áp dng thut toán Vét cn (Exhaustive Search) gii bài toán cân bng dây chuyn may khi cho trước công sut 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ị wstcurSol 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 wstchư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 wstvà đệ quy trạng thái (i, j, wst, curSol).

76

+ 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 kchưa được chia đểđưa vào NCSX hiện tại wst. Với mỗi NCCN kchưa được chia, ta thêm NCCN k vào NCSX hiện tại wstvà đệ 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 toá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 > Mthen

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 NCCNivào wst

10: Exhaustive (i, j, wst, curSol)

11: Chuyển NCCNira 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: fork ← j + 1 to M do 21: ifNCCNk 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 dng thut toán Luyn kim (Simulated Annealing) gii bài toán cân bng dây chuyền may khi cho trước công sut GALB-1

Thuật toá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

77

chí có thể tìm ra giải pháp tối ưu toàn cục nếu thời gian chạy đủ lớn. Các thành phần chính của thuật toá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 bng chuyn 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 toá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 toá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 ≠ uv đượ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 áncơ 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 dng phương án CBC mi.

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 2phươ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 toá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 toán tiếp theo, do đó ởbước thuật toán đầu tiên tất cả các phương án đều có thểđược chọn, ởbước thuật toán tiếp theo slà 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 toá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ể:

78

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 sut chp nhn.

Hàm xác suất chấp nhận: Là một thành phần chính của thuật toá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 áncũ.

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 ss′, ∆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 toá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 đó, ∆Ecó 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 bng chuyn 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 toá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 TmaxLcà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 toá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à

79

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 χ 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 toán 3.2 sau:

Thut toán 3.2 Thut toán SAgii bài toán cân bng chuyn 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 Ldo 6: Chọn ngẫu nhiên một lân cận s’ 7: ifs’ tốt hơn sthen 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: returnTìm phương án tốt nhất.

c) Áp dng thut toán kết hp Luyn kim Tham lam gii bài toán bài toán cân bng dây chuyền may khi cho trước công sut vi mc tiêu ti thiu 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 NCCNu sao cho không còn bất kỳNCCNv ≠ u, trong đó v

phải được thực hiện trước khi uđược thực hiện.

Bước 2: Tạo NCSXX chứa u và một sốNCCN còn lại để XNCSX hợp lý và giá trị WsX được tối đa hóa:

Một phần của tài liệu Luận án tiến sĩ Nghiên cứu tối ưu cân bằng dây chuyền công nghiệp may sản phẩm dệt kim (Trang 88 - 113)

Tải bản đầy đủ (PDF)

(162 trang)