Bài toán tối ưu hóa
Bài toán tối ưu hóa là bài toán tìm lời giải tốt nhất trong tất cả các lời giải khả thi, bài toán tối ưu hóa được chia thành hai loại tùy thuộc vào các biến là liên tục hay rời rạc. Bài toán tối ưu hóa với các biến rời rạc được gọi là bài toán tối ưu hóa tổ hợp. Nhiều bài toán tối ưu tổ hợp có độ phức tạp tính toán cao và được phân loại thuộc lớp NP khó [40, 41].
Bài toán quyết định là bài toán mà đầu ra chỉ có thể là “yes” hoặc “no” (đúng/sai, 0/1). Đối với một bài toán quyết định, có những bộ dữ liệu vào cho ra câu trả lời (đầu ra) là “yes”, chúng ta gọi đây là bộ dữ liệu “yes”, nhưng cũng có những bộ dữ liệu vào cho ra câu trả lời là “no”, chúng ta gọi những bộ dữ liệu này là bộ dữ liệu “no”.
Một số loại thời gian tính của thuật toán
Thời gian tính tốt nhất: Là thời gian tính tối thiểu cần thiết để thực hiện thuật toán với mọi bộ dữ liệu đầu vào kích thước n (dữ liệu đầu vào lớn).
Thời gian tính tồi nhất: Là thời gian tính tối đa cần thiết để thực hiện thuật toán với mọi bộ dữ liệu đầu vào có kích thước n.
Thời gian tính trung bình: Là thời gian tính cần thiết để thực hiện thuật toán trên một tập hữu hạn các bộ dữ liệu đầu vào có kích thước n. Thời gian tính trung bình được tính theo công thức sau:
Thời gian tính trung bình=(Tổng thời gian tính tất cả các bộ dữ liệu có thể)/ Số bộ dữ liệu [41].
Lớp bài toán P và NP
- Lớp bài toán P: P là lớp các bài toán có thể giải được trong thời gian đa thức [42-44].
Rất nhiều các bài toán quyết định có một đặc điểm chung, đó là để xác nhận câu trả lời “yes” đối với bộ dữ liệu vào “yes” của chúng, ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời “yes” cho bộ dữ liệu vào “yes” đó. Tính ngắn gọn dễ kiểm tra chỉ việc thời gian kiểm tra để đưa ra kết quả chỉ mất thời gian
19
đa thức. Tương tự, có thể đưa ra khái niệm bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời “no”.
- Lớp bài toán NP: NP là lớp các bài toán quyết định mà để xác nhận câu trả lời
“yes” của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra [42-44].
Ví dụ: Bài toán kiểm tra tính hợp số: “Có phải n là hợp số không?”, để xác nhận câu trả lời “yes” cho đầu vào n ta có thể đưa ra một ước số b (1< b < n) của n. Để kiểm tra xem b có phải là ước số của n hay không ta có thể thực hiện phép chia n cho
b sau thời gian đa thức. Trong ví dụ này dễ thấy b là bằng chứng ngắn gọn (b < n) và dễ kiểm tra (có thuật toán thời gian tính đa thức để kiểm tra xem b có là ước số của
n).
- Lớp bài toán Co-NP: Co-NP là lớp các bài toán quyết định mà để xác nhận
câu trả lời “no” của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra [42-44]. Ví dụ: Bài toán kiểm tra tính nguyên tố: “Có phải n là số nguyên tố không?”, để đưa ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời “no” cho đầu vào n ta có thể đưa ra một ước số b của n.
- Lớp bài toán NP-đầy đủ (NP-Complete): Một bài toán quyết định A được gọi là NP-đầy đủ nếu như [42-44]:
+ A là một bài toán trong NP.
+ Mọi bài toán trong NP đều có thể quy dẫn về A.
Bổ đề: Giả sử bài toán A là NP-đầy đủ, bài toán B thuộc NP, và bài toán A qui dẫn được về bài toán B. Khi đó bài toán B cũng là NP-đầy đủ.
- Lớp bài toán NP- khó (NP-Hard):Một cách ngắn gọn có thể hiểu bài toán NP- khó là bài toán mà không có thuật toán thời gian tính đa thức để giải (trừ khi P = NP), mà chỉ có các thuật toán giải trong thời gian hàm mũ. Sau đây là định nghĩa chính thức của bài toán NP-khó [42-44].
Định nghĩa: Một bài toán A được gọi là NP-khó nếu như sự tồn tại thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong NP.
Có thể nói rằng nếu ta có thể giải được một cách hiệu quả một bài toán NP-khó cụ thể, thì ta cũng có thể giải hiệu quả bất kỳ bài toán trong NP bằng cách sử dụng thuật toán giải bài toán NP-khó như một chương trình con.
Từ định nghĩa bài toán NP-khó có thể suy ra rằng mỗi bài toán NP-đầy đủ đều là NP-khó. Tuy nhiên một bài toán NP-khó không nhất thiết phải là NP-đầy đủ [42- 44].
Từ phần trình bày trên, ta thấy có rất nhiều bài toán ứng dụng quan trọng thuộc vào lớp NP-khó, và vì thế khó hy vọng xây dựng được thuật toán cho lời giải chính xác và hiệu quả để giải chúng. Do đó, một trong những hướng phát triển thuật toán giải các bài toán như vậy là xây dựng các thuật toán gần đúng, các thuật toán heuristic/metaheuristic.
Phân loại bài toán tối ưu cân bằng dây chuyền may
Tác giả Helgeson [45] là người đầu tiên phân tích bài toán cân bằng dây chuyền vào năm 1954, trong khi tác giả Salverson [46] lần đầu tiên công bố dưới dạng toán học vào năm 1955. Kể từ đó vấn đề cân bằng dây chuyền đã được quan tâm nghiên cứu song song với sự phát triển các dây chuyền sản xuất. Bài toán cân bằng dây
20
chuyền đơn giản nhất SALBP cũng được coi là bài toán cân bằng chuyền cơ bản được mô hình hóa như sau [9]:
- Quy trình công nghệ gia công sản phẩm là một tập hợp gồm n nguyên công công nghệ (NCCN) V={1 ,. . ., n}, thực hiện NCCN i cần một thời gian ti bằng một loại công cụ hoặc thiết bị.
- Các NCCN được thực hiện theo một trình tự nhất định tùy theo loại sản phẩm. Trình tự thực hiện của các NCCN là một dạng đồ thị có hướng gồm một tập các đỉnh (nút) nối với nhau bởi các cạnh có hướng (cung). Đồ thị có hướng G = (V, E) bao gồm tập đỉnh V và tập cung E là tập các bộ có thứ tự e = (u, v) gồm 2 đỉnh phân biệt
u và v, trong đó u được gọi là đỉnh đầu và v được gọi là đỉnh cuối của cung e (cạnh có hướng). Bậc của một đỉnh v là số cạnh liên thuộc với v, bậc của v được ký hiệu là deg(v). Trong một đồ thị có hướng, bậc trong của đỉnh v là số cung kết thúc tại v, bậc ngoài là số cung xuất phát từ v [40, 41].
Hình 1.16 Sơ đồ trình tự công nghệ [47]
Hình 1.16 là sơ đồ trình tự thực hiện của 15 NCCN, nguyên công thứ 9 chỉ được thực hiện sau khi nguyên công số 7 và 8 hoàn thành, nguyên công 9 cũng phải thực hiện trước nguyên công 10, sơ đồ trình tự thực hiện là một dạng đồ thị có hướng không có chu trình [47].
Cân bằng dây chuyền được thực hiện bằng cách phối hợp các NCCN thành các NCSX và gán cho các vị trí làm việc sao cho điều kiện ràng buộc trình tự được thỏa mãn. Tập hợp Smcác nguyên công được gán cho vị trí m (1,., K) tạo thành tải của vị trí làm việc, thời gian tích lũy 𝑆𝑇𝑚 = ∑𝑖∈𝑆𝑚𝑡𝑖 được gọi là thời gian của vị trí làm việc m. Dây chuyền sản xuất khả thi nếu thời gian của vị trí làm việc không vượt nhịp dây chuyền [1, 3-5].
Căn cứ vào cấu trúc và mô hình sản xuất của dây chuyền, tác giả Baybars (1986) [48] phân loại bài toán cân bằng dây chuyền (Assembly Line Balancing Problem) kí hiệu là ALBP thành hai loại: Cân bằng dây chuyền đơn giản (Simple Assembly Line Balancing) kí hiệu là SALB và cân bằng dây chuyền tổng quát (General Assembly Line Balancing) kí hiệu là GALB.
- Bài toán SALB là phiên bản đơn giản nhất trong lớp bài toán cân bằng dây chuyền, trên dây chuyền chỉ sản xuất một loại sản phẩm theo nhịp dây chuyền cố định, dây chuyền bao gồm một hàng máy bố trí dọc theo hệ thống hỗ trợ vận chuyển bán thành phẩm, không có nguyên công sản xuất bội, nguyên công sản xuất bội gồm hai hay nhiều công nhân thực hiện các công việc giống nhau.
- Bài toán GALB bao gồm các điều kiện ngoài phạm vi của bài toán SALBP, ví dụ như cân bằng dây chuyền theo nhóm sản phẩm hoặc kết hợp nhiều sản phẩm, cho phép tạo thành nguyên công sản xuất bội, cân bằng cho dây chuyền sản xuất hình chữ U…và các vấn đề thực tế khác được xét đến.
21
Tác giả Ghosh và Gagnon (1989) [49] phân loại bài toán cân bằng dây chuyền thành bốn nhóm: Mô hình đơn xác định (SMD) hoặc ngẫu nhiên (SMS), mô hình đa sản phẩm xác định (MMD) hoặc ngẫu nhiên (MMS). Sơ đồ phân loại bài toán cân bằng dây chuyền theo tác giả Ghosh và Gagnon được minh họa trong hình 1.17.
Hình 1.17 Sơ đồ phân loại bài toán cân bằng chuyền (Ghosh và Gagnon, 1989) [49]
- Lớp bài toán SMD là cân bằng cho dây chuyền có mô hình sản xuất đơn sản phẩm, thời gian của các nguyên công là xác định, mục tiêu của bài toán là tối ưu hiệu suất cân bằng, đây là bài toán cân bằng dây chuyền ban đầu cơ bản nhất được ký hiệu là SALB. Khi xét đến các vấn đề như hình thành các nguyên công bội và xét đến một số mục tiêu tối ưu khác thì được gọi là bài toán cân bằng dây chuyền tổng quát kí hiệu là GALB [49, 50].
- Lớp bài toán cân bằng dây chuyền mô hình đơn ngẫu nhiên SMS có thời gian của nguyên công thay đổi. Đây và vấn đề thực tế của các dây chuyền lắp ráp thủ công, trong đó thời gian làm việc của công nhân ít khi liên tục [49, 50].
- Lớp bài toán cân bằng dây chuyền mô hình kết hợp sản phẩm xác định MMD có giả định là dây chuyền sản xuất nhiều sản phẩm khác nhau, nó khác với mô hình kết hợp ngẫu nhiên MMS là thời gian thay đổi theo người công nhân thực hiện [49, 50].
Căn cứ theo các đặc trưng của dây chuyền và các mục tiêu tối ưu, bài toán cân bằng dây chuyền được tác giả Scholl và Becker (2006) phân làm hai lớp bài toán chính là: Cân bằng dây chuyền đơn giản (SALBP) và lớp thứ hai là cân bằng dây chuyền tổng quát (GALBP), sơ đồ phân loại bài toán cân bằng dây chuyền theo tác giả Scholl và Becker được minh họa như hình 1.18 [3, 51].
Hình 1.18 Sơ đồ phân loại bài toán cân bằng chuyền (Scholl và Becker)[3, 51]
Cân bằng dây chuyền (ALBP) Mô hình đơn sản phẩm Mô hình kết hợp / đa sản phẩm Xác định (MMD) Ngẫu nhiên (MMS) Xác định (SMD) Ngẫu nhiên (SMS) SALB GALB SALB GALB SALB GALB SALB GALB
22
SALBP là lớp bài toán cân bằng dây chuyền đơn cho các dây chuyền có hình thức bố trí thiết bị theo hàng, gồm có điều kiện ràng buộc về trình tự thực hiện của các nguyên công [51].
- SALB-1 là bài toán cân bằng chuyền khi cho trước nhịp dây chuyền với mục tiêu tối đa hóa vị trí làm việc trên dây chuyền [51].
- SALBP-2 là bài toán cân bằng chuyền khi cho trước số lượng vị trí làm việc với mục tiêu tối thiểu hóa nhịp dây chuyền [51].
- SALBP-E là bài toán tổng quát với mục tiêu tối đa hóa hiệu suất dây chuyền trên cơ sở đồng thời tối thiểu hóa nhịp dây chuyền và số lượng vị trí làm việc.
- SALBP-F là bài toán xem xét tính khả thi cân bằng dây chuyền khi cố định nhịp dây chuyền và số lượng vị trí làm việc [51].
GALBP là lớp bài toán cân bằng dây chuyền tổng quát, khi bỏ một số giả định của bài toán cân bằng dây chuyền cơ bản SALBP. Lớp bài toán này bao gồm cân bằng dây chuyền chữ U, mô hình hỗn hợp (UALBP và MALBP) và các vấn đề trong thực tế [3].
- MALBP là bài toán cân bằng chuyền mô hình kết hợp, trên dây chuyền sản xuất nhiều loại sản phẩm.
- UALBP là bài toán cân bằng chuyền chữ U, các vị trí làm việc được sắp xếp theo hình chữ U, công nhân được phép làm việc ở hai bên của U, do đó công nhân có thể thực hiện đồng thời các nhiệm vụ không liên tiếp nhau [3].
Tác giả Y. K. Kim [52] đã phân loại bài toán cân bằng dây chuyền theo năm mục tiêu tối ưu, ngoài mục tiêu loại 1 và 2 còn phân theo mục tiêu loại 3 là tối ưu hóa cân bằng khối lượng công việc giữa các vị trí làm việc, loại 4 là tối đa quan hệ trình tự thực hiện, các nguyên công liên quan được gán cho cùng một vị trí làm việc, loại 5 là kết hợp của mục tiêu tối ưu loại 3 và 4.
Theo thống kê của các tác giả Ghosh [49] và Pianthong [50] bài toán cân bằng dây chuyền đơn thẳng SALBP được nghiên cứu nhiều nhất. Trong đó đa phần là các nghiên cứu về mục tiêu tối ưu số lượng vị trí làm việc của lớp bài toán SALB-1 [53] còn lớp bài toán SALBP-E và F phức tạp hơn nhưng ít được quan tâm [54].
Bài toán cân bằng dây chuyền SALBP thường có các giả định sau [4,51,55,56]: - Dây chuyền sản xuất hàng loạt một loại sản phẩm đồng nhất.
- Dây chuyền có cấu trúc thẳng (theo hàng), các vị trí làm việc được bố trí dọc theo dây chuyền.
- Quy trình công nghệ gia công sản phẩm được cho trước. - Trình tự thực hiện của các nguyên công được cho trước.
- Nhịp dây chuyền cho trước, nhịp dây chuyền được xác định thông qua công suất.
- Thời gian của các nguyên công trong quy trình công nghệ gia công sản phẩm xác định.
- Thời gian lớn nhất của nguyên công công nghệ nhỏ hơn hoặc bằng nhịp dây chuyền, không có nguyên công sản xuất bội (không có nguyên công sản xuất có từ hai công nhân trở lên).
Trong một số bài toán giả định thời gian lớn nhất của nguyên công thường là nhỏ hơn nhịp dây chuyền, mỗi nguyên công chỉ gán cho một vị trí làm việc [57]. Khi giả định thời gian lớn nhất của nguyên công nhỏ hơn nhịp dây chuyền thì tốc độ sản xuất của dây chuyền bị giới hạn bởi thời gian lớn nhất của nguyên công. Vấn đề này
23
được giải quyết bằng cách tạo ra các vị trí làm việc song song, nó gồm hai hoặc nhiều bản sao của các vị trí làm việc cùng thực hiện một nhóm công việc giống nhau trường hợp này được gọi là nguyên công sản xuất bội [58]. Mục đích hình thành các nguyên công sản xuất bội để tăng tốc độ sản xuất, cân bằng tải giữa các vị trí làm việc, giảm độ trễ của dây chuyền. Tuy nhiên khi đó người công nhân phải thực hiện nhiều công việc hơn, đòi hỏi kỹ năng của công nhân cao hơn. Để kiểm soát quá trình này, trong một số nghiên cứu đã đặt ra các điều kiện khi tạo thành nguyên công sản xuất bội. Tác giả Sarker và Shantikumar [59] đã giới hạn nguyên công bội ba là tối đa. Tác giả Buxey [58] giới hạn số lượng nguyên công của mỗi vị trí làm việc. McMullen và cộng sự [60] cho phép hình thành các nguyên công bội miễn là đạt được nhịp của dây chuyền. Tác giả Vilarinho và Simaria [61] đã cho phép tạo thành nguyên công bội khi thời gian của nguyên công lớn hơn nhịp dây chuyền, đồng thời quy định khi xây dựng quy trình công nghệ thì thời gian dài nhất của nguyên công không quá hai lần nhịp, không có nguyên công bội lớn hơn hai. Tác giả Kamarudin [53] xây dựng mô hình toán học cho bài toán cân bằng chuyền loại 1 với nhiều ràng buộc để tối thiểu đồng thời số vị trí làm việc, số lượng thiết bị và số lượng công nhân.
Qua nghiên cứu cho thấy bài toán cân bằng dây chuyền có thể phân làm ba nhóm cơ bản là: Theo mục tiêu tối ưu như tối ưu số công nhân, tối ưu nhịp dây chuyền, tối ưu hiệu quả cân bằng (loại 1, 2, E), theo cấu trúc của dây chuyền (dây chuyền đơn thẳng, dây chuyền chữ , …) và theo vấn đề đơn giản và vấn đề tổng quát.