Bài toán lập lịch công việc nhóm với ràng buộc công việc–người, teamworkscheduling problem with job–person constraint TWSPwJP [1], là bài toán mới dựatrên cơ sở các nghiên cứu trước đó v
Mục đích nghiên cứu
Mục đích của đề tài là nghiên cứu phát triển và đánh giá tính hiệu quả của các phương pháp được đề xuất để giải quyết bài toán lập lịch TWSPwJP Cụ thể như sau:
• Cơ sở lý thuyết về bài toán TWSPwJP, bao gồm việc tổng hợp, hệ thống khái niệm, đặc điểm và tính chất của bài toán, mô hình hoá toán học mô tả chính xác bài toán.
• Phát triển các thuật toán heuristic và metaheuristic để giải TWSPwJP, cụ thể là:
– Phát triển thuật toán heuristic cho phép xác định lời giải nhanh, first-come first-served (FCFS).
– Nghiên cứu các phương pháp metaheuristic phổ biến và hiệu quả như giải thuật simulated annealing (SA) và thuật toán genetic algorithm (GA) cho phép tìm kiếm lời giải tốt hơn cho bài toán.
• Thiết kế và xây dựng phương pháp học heuristic dựa trên kỹ thuật học tăng cường (reinforcement learning) kết hợp với mạng Deep Q-Network (DQN) Phương pháp này cho phép học chính sách lập lịch tối ưu qua sự tương tác giữa mô hình với môi trường bài toán, và có tiềm năng thu được lời giải chất lượng tốt đối với các bài toán thực tế phức tạp.
• Thực nghiệm mô phỏng để đánh giá hiệu quả và chất lượng của các phương pháp giải đề xuất, dựa trên các chỉ tiêu đánh giá như chất lượng lời giải tìm được và thời gian tính toán.
• Kết quả thử nghiệm sẽ được phân tích và nhận xét về ưu điểm cũng như hạn chế của từng phương pháp Từ đó xác định được giải pháp tối ưu cho mỗi dạng bài toán, tương ứng với các điều kiện về nguồn lực và ràng buộc khác nhau.
Qua việc hiện thực hoá các mục tiêu trên, nghiên cứu hy vọng sẽ có những đóng góp mới về vào lĩnh vực tối ưu hóa lập lịch công việc, cung cấp những công cụ và phương hiệu quả để giải quyết bài toán tối ưu quan trọng nhưng phức tạp là TWSPwJP.
Ý nghĩa khoa học và thực tiễn của đề tài
Đề tài “Nghiên cứu giải quyết bài toán lập lịch công việc nhóm với một số ràng buộc xác định” có ý nghĩa quan trọng về khoa học và thực tiễn Về khoa học, đề tài đóng góp thành quả nghiên cứu vào sự phát triển của lĩnh vực vận trù học (operations research – OR), đặc biệt là đối với các bài toán tối ưu lập lịch công việc Cụ thể:
• Luận văn phát triển một hệ thống toàn diện về bài toán TWSPwJP, làm rõ các khái niệm, đặc điểm, và tính chất của bài toán Trên cơ sở đó, một mô hình toán học chặt chẽ được xây dựng để mô tả bài toán đầy đủ và chính xác Đóng góp này giúp các nhà nghiên cứu có thể tiếp tục phát triển và khai thác các ý tưởng mới cho bài toán trên nền tảng lý thuyết đã xây dựng.
• Các thuật toán metaheuristic như SA và GA được áp dụng thành công vào bài toán TWSPwJP Chúng có thể tạo ra lời giải tốt trong thời gian ngắn, phù hợp để giải quyết các bài toán thực tế.
• Ngoài ra, một phương pháp learning-based heuristic cũng được xây dựng dựa trên sự kết hợp giữa học tăng cường và mạng DQN để giải bài toán TWSPwJP. Việc áp dụng thành công các kỹ thuật của trí tuệ nhân tạo và học máy vào giải bài toán tối ưu tổ hợp là một hướng nghiên cứu mới, mở ra hướng tiếp cận đầy triển vọng trong tương lai Thành công của phương pháp này sẽ khuyến khích các đề tài tiếp theo về việc tích hợp các kỹ thuật học máy và tối ưu hóa để giải quyết các bài toán thực tế phức tạp [3].
• Các kết quả nghiên cứu của luận văn đã được công bố tại các hội nghị khoa học uy tín, góp phần phát triển hướng nghiên cứu kết hợp giữa lĩnh vực tối ưu và trí tuệ nhân tạo, tạo tiền đề trong việc hợp tác nghiên cứu, mở rộng các hướng tiếp cận mới trong tương lai.
Về khía cạnh ứng dụng, luận văn này đóng góp nhiều giá trị thiết thực cho việc quản lý và vận hành sản xuất trong các tổ chức và doanh nghiệp Các phương pháp được nghiên cứu tìm hiểu trong luận văn cung cấp công cụ hiệu quả cho nhà quản lý nhân lực và sản xuất để lập kế hoạch công việc tối ưu, cải thiện đáng kể chất lượng các quyết định lập lịch và giảm thời gian hoàn thành dự án Ứng dụng các phương pháp này còn giúp nhà quản lý ra quyết định kịp thời và hiệu quả hơn trong môi trường sản xuất kinh doanh thay đổi liên tục Ngoài ra, kinh nghiệm từ việc triển khai thành công các phương pháp lập lịch hiệu quả góp phần hoàn thiện quy trình quản lý lập kế hoạch và nâng cao năng lực đội ngũ lãnh đạo doanh nghiệp trong thời đại số.
Bố cục của luận văn
• Chương 1cung cấp cái nhìn tổng quan về đề tài nghiên cứu, bao gồm động lực lựa chọn đề tài, mục tiêu, phạm vi và đối tượng nghiên cứu, cũng như tầm quan trọng của đề tài về lý thuyết và thực tiễn.
• Chương 2trình bày cơ sở lý thuyết về bài toán tối ưu tổ hợp và bài toán lập lịch công việc Chương này cung cấp các định nghĩa, khái niệm cơ bản, phân loại bài toán tối ưu tổ hợp, và giới thiệu một số bài toán điển hình Đồng thời, chương này cũng mô tả chi tiết các bài toán lập lịch công việc cá nhân và lập lịch công việc nhóm, bao gồm phát biểu bài toán và các phương pháp giải quyết.
• Chương 3tập trung vào bài toán lập lịch công việc nhóm với ràng buộc công việc–người TWSPwJP, bao gồm phát biểu bài toán, phân tích các đặc điểm và tính chất của bài toán, mô hình hoá toán học MILP Tiếp theo, chương này trình bày các phương pháp giải bao gồm phương pháp chính xác và các phương pháp xấp xỉ như heuristic FCFS, các phương pháp metaheuristic SA và GA, và phương pháp learn-heuristic sử dụng học tăng cường với mạng DQN Cũng trong chương này, các kết quả thực nghiệm và đánh giá được trình bày chi tiết.
Chương 3 cũng mô tả bộ dữ liệu mô phỏng đã sử dụng, thiết kế thực nghiệm và các chỉ số để đánh giá Cuối cùng là phần nhận xét, thảo luận về kết quả đạt được.
• Chương 4tổng kết những đóng góp chính của luận văn về cả lý thuyết và thực tiễn, đánh giá kết quả đạt được so với mục tiêu đề ra Chương này cũng đề xuất những hướng phát triển tiếp theo của đề tài trong tương lai.
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Bài toán tối ưu tổ hợp
Định nghĩa và khái niệm cơ bản
Tối ưu tổ hợp (combinatorial optimization problem – COP) là một lớp bài toán quan trọng trong vận trù học (operations research – OR) và khoa học máy tính (computer science – CS) [4], [5] Bài toán tối ưu tổ hợp được định nghĩa bởi các thành phần sau:
• Tập hữu hạn các phần tửE ={e 1 , e 2 , , e n }.
• Tập conF ⊆2 E là tập chứa các lời giải khả thi (feasible solutions).
• Hàm mục tiêuf : F → Rgán cho mỗi lời giải khả thi một giá trị thực.
Mục tiêu của bài toán COP là xác định một lời giải khả thiS ∗ ∈F sao chof(S ∗ ) (giá trị của hàm mục tiêu) đạt cực tiểu hoặc cực đại:
Các khái niệm liên quan:
• Không gian tìm kiếm (search space): tất cả các lời giải (solutions), bao gồm cả lời giải khả thi và không khả thi của bài toán.
• Ràng buộc (constraint): là điều kiện mà một lời giải phải thỏa mãn để trở thành lời giải khả thi.
• Lân cận (neighborhood): với mỗi lời giảiS, lân cận củaSlà tập hợp các lời giải có thể xác định bằng cách biến đổiStheo một quy tắc cho trước.
• Tối ưu cục bộ (local optimum): là một lời giải khả thi mà trong lân cận của nó không tồn tại lời giải nào tốt hơn.
• Tối ưu toàn cục (global optimum): là lời giải khả thi có giá trị tốt nhất.
Bài toán COP thường có không gian nghiệm rất lớn, gia tăng theo hàm mũ của kích thước đầu vào, rất khó xác định nghiệm tối ưu toàn cục Nhiều bài toán đã được chứng minh là NP-hard, tức là không tìm được thuật toán đa thức có thể giải chúng một cách hiệu quả Tuy nhiên, nhiều phương pháp heuristic và metaheuristic đã được đề xuất cho phép tìm các lời giải gần tối ưu trong khoảng thời gian tính toán hợp lý.
Phân loại bài toán tối ưu tổ hợp
2.1.2.1 Theo tính chất của hàm mục tiêu và ràng buộc [6]
• Tối ưu hóa tuyến tính (linear optimization): cả hàm mục tiêu và các ràng buộc đều có dạng tuyến tính theo các biến quyết định Ví dụ: bài toán vận tải, quy hoạch tuyến tính, bài toán cái túi tuyến tính.
• Tối ưu phi tuyến (nonlinear optimization): hàm mục tiêu hoặc ít nhất một ràng buộc có dạng phi tuyến Ví dụ: bài toán quy hoạch toàn phương, tối ưu lồi phi tuyến.
• Tối ưu lồi (convex optimization): hàm mục tiêu là một hàm lồi (hoặc hàm lõm) và tập lời giải khả thi được xác định bởi các ràng buộc lồi Ví dụ: bài toán quy hoạch lồi, tối ưu normed.
2.1.2.2 Theo tính rời rạc của biến quyết định [7]
• Tối ưu rời rạc (discrete optimization): những biến quyết định chỉ nhận giá trị thuộc một tập hợp rời rạc, thường là tập hợp các số nguyên Ví dụ: bài toán quy hoạch nguyên, người bán hàng, bài toán lập lịch.
• Tối ưu liên tục (continuous optimization): những biến quyết định có thể nhận bất kỳ giá trị nào nằm trong một khoảng liên tục, thông thường là tập hợp các số thực Ví dụ: bài toán quy hoạch tuyến tính liên tục, tối ưu lồi liên tục.
• Tối ưu hỗn hợp (mixed-integer optimization): một số biến quyết định nhận giá trị rời rạc, trong khi các biến còn lại nhận giá trị liên tục Ví dụ: bài toán quy hoạch nguyên hỗn hợp, bài toán đóng gói hình học.
2.1.2.3 Theo độ phức tạp tính toán [8]
• Lớp đa thức P (polynomial-time): bao gồm các bài toán mà thời gian giải theo thuật toán tốt nhất hiện có tỷ lệ thuận theo đa thức với kích thước dữ liệu đầu vào Ví dụ: bài toán đường đi ngắn nhất, quy hoạch tuyến tính, cây khung nhỏ nhất.
• Lớp NP (nondeterministic polynomial-time): đây là lớp mà các bài toán với lời giải cho trước có thể được kiểm tra tính đúng đắn trong thời gian đa thức Lớp
NP bao gồm lớp P và được cho là chứa nhiều bài toán khó hơn lớp P Ví dụ: bài toán người bán hàng, cái túi, tô màu đồ thị.
• Lớp NP-hard: một bài toán được gọi là NP-hard nếu mọi bài toán trong lớp NP đều có thể qui về nó trong thời gian đa thức Nói cách khác, bài toán NP-hard có độ phức tạp bằng hoặc lớn hơn bài toán khó nhất trong lớp NP Hầu hết các bài toán tối ưu tổ hợp trên thực tế đều rơi vào lớp này Ví dụ: bài toán lập lịch tối ưu, thiết kế mạch VLSI.
• Lớp NP-complete: một bài toán được gọi là NP-complete nếu như nó vừa thuộc lớp NP vừa thuộc lớp NP-hard Có thể hiểu, các dạng bài toán NP-complete là dạng “tiêu biểu” hoặc “khó nhất” của lớp NP Ví dụ: bài toán tìm clique cực đại trong đồ thị (maximum clique problem), bài toán định danh luận lý mệnh đề (boolean satisfiability problem – SAT).
Việc phân loại các bài toán tối ưu hóa tổ hợp (COP) mang lại nhiều lợi ích Nó giúp hiểu rõ hơn về đặc điểm, mức độ khó của từng loại bài toán, và còn là cơ sở để lựa chọn phương pháp giải quyết phù hợp Ví dụ, nếu một bài toán thuộc lớp P, ta có thể tìm lời giải tối ưu bằng các giải thuật đa thức Trái lại, với các bài toán NP-hard,việc tìm lời giải tối ưu thường rất phức tạp và đòi hỏi thời gian tính toán lớn Trong trường hợp này, các phương pháp xấp xỉ như các kỹ thuật heuristic và metaheuristic thường được áp dụng để tìm lời giải gần tối ưu trong thời gian hợp lý Các phương pháp giải quyết bài toán COP rất đa dạng, bao gồm các kỹ thuật metaheuristic [9], các phương pháp dựa trên học máy [10], [11], và nhiều hướng tiếp cận khác.
Một số bài toán tối ưu tổ hợp phổ biến
2.1.3.1 Bài toán người bán hàng
Bài toán người bán hàng (traveling salesman problem – TSP) là một trong những bài toán tối ưu hóa tổ hợp điển hình và được nghiên cứu rộng rãi Bài toán đặt ra như sau: Cho trước một tập hợp các thành phố và khoảng cách (hoặc chi phí) giữa từng cặp thành phố Một người bán hàng xuất phát từ một thành phố bất kỳ, phải đi qua mỗi thành phố còn lại đúng một lần, và cuối cùng trở về thành phố ban đầu Mục tiêu là tìm một hành trình có tổng khoảng cách (hoặc chi phí) là nhỏ nhất.
TSP được chứng minh thuộc lớp bài toán NP-hard [12], và có nhiều ứng dụng quan trọng trong logistics, sản xuất, viễn thông Một số biến thể của TSP bao gồm: TSP với các ràng buộc về thời gian (TSP with time windows), TSP đa người bán hàng (multiple TSP), TSP cho phép bỏ qua một số thành phố (TSP with profits). Để giải quyết bài toán TSP, các phương pháp chính bao gồm các thuật toán heuristic, metaheuristic và các phương pháp tối ưu chính xác.
• Các thuật toán chính xác: dynamic programming, linear programming, branch and cut,
• Các thuật toán heuristic: greedy algorithm, thuật toán cải tiến k-opt, Lin- Kernighan,
• Các kỹ thuật metaheuristic: genetic algorithm, ant colony optimization, tabu search,
Mặc dù là bài toán NP-hard, đã có nhiều kết quả đạt được trong việc giải quyết bài toán TSP với các trường hợp cụ thể, đồng thời những ứng dụng của bài toán TSP vẫn đang là động lực thúc đẩy cho sự phát triển của các công trình nghiên cứu về các giải pháp tối ưu mới.
Bài toán cái túi (knapsack problem - KP) cũng là một bài toán tối ưu hóa, trong đó ta có một tập hợp các vật phẩm, mỗi vật phẩm có trọng lượng và giá trị riêng Bài toán yêu cầu chọn ra một số vật phẩm để đưa vào một chiếc túi có giới hạn về sức chứa sao cho tổng giá trị của các vật phẩm được chọn là lớn nhất có thể, đồng thời tổng trọng lượng của chúng không vượt quá sức chứa của túi.
Bài toán KP cũng đã được chứng minh thuộc lớp NP-hard [13], và có nhiều biến thể như bài toán phân đoạn (fractional knapsack problem), túi nhị phân (0-1 knapsack problem), hay bài toán nhiều cái túi (multiple knapsack problem) Các bài toán được liệt kê đều mang tính nền tảng và nhiều ứng dụng thực tế như chọn danh mục đầu tư, lập kế hoạch sản xuất, cắt vật liệu, nén dữ liệu.
Các phương pháp giải quyết bài toán cái túi bao gồm:
• Các thuật toán chính xác: dynamic programming, backtracking algorithm, branch and bound,
• Các thuật toán xấp xỉ: greedy algorithm, phương pháp xấp xỉ tỷ lệ (approximate scaling),
• Các kỹ thuật metaheuristic: genetic algorithm, swarm optimization,
Nghiên cứu về bài toán cái túi và các ứng dụng của nó là một hướng đi quan trọng trong lĩnh vực tối ưu tổ hợp và đang có tiềm lực phát triển mạnh mẽ.
Các bài toán lập lịch (scheduling problem) là một trong những lớp bài toán tối ưu được ứng dụng rộng rãi nhất trong thực tế Nội dung của bài toán bao gồm phân bổ các tài nguyên hữu hạn (máy móc, nhân công, phòng học, lịch trình) để hoàn thành một tập các công việc hoặc tác vụ theo cách tối ưu Mục tiêu tối ưu thường gặp là tối thiểu makespan, tối thiểu số lượng công việc trễ hạn, hoặc cân bằng tài nguyên. Bài toán lập lịch bao gồm nhiều lớp bài toán nhỏ như lập lịch trên một máy đơn, lập lịch trên các máy song song, lập lịch trên hệ thống sản xuất dạng flowshop và jobshop, lập lịch với các nguồn lực bị giới hạn (resource-constrained project scheduling) Các bài toán này có thể được mở rộng thêm bằng cách xem xét các yếu tố tác động như sự suy giảm năng suất theo thời gian [14], những điều kiện ràng buộc về quy mô lô sản xuất và việc cài đặt máy móc [15]–[17], hoặc các hạn chế liên quan đến tính khả dụng của thiết bị [18]–[20] Hầu hết các lớp bài toán lập lịch thực tế đều thuộc lớp
NP-hard Do tính phổ biến và quan trọng của bài toán, rất nhiều mô hình, thuật toán đã được nghiên cứu và tìm hiểu.
Các phương pháp giải quyết bài toán lập lịch bao gồm:
• Các phương pháp chính xác: linear/nonlinear programming, branch and bound, dynamic programming,
• Các thuật toán xấp xỉ heuristic: luật ưu tiên (priority dispatching rules), thuật toán tham lam (greedy algorithm), thời gian xử lý ngắn nhất/dài nhất (shortest/longest processing time – SPT/LPT),
• Các kỹ thuật metaheuristic: genetic algorithm, swarm optimization, tabu search, simulated annealing),
• Các phương pháp dựa trên AI và học máy như: mạng nơ-ron nhân tạo (artificial neural network – ANN), thuật toán tiến hóa (evolutionary algorithm), hệ chuyên gia (knowledge-based expert system),
Những năm gần đây, các xu hướng nghiên cứu tập trung vào các phương pháp kết hợp (hybrid methods) nhằm tận dụng ưu điểm của nhiều kỹ thuật tối ưu khác nhau. Bên cạnh đó, các bài toán lập lịch mới như lập lịch linh hoạt (flexible scheduling), lập lịch xanh (green scheduling), lập lịch trong môi trường không chắc chắn (uncertain environments) cũng đang thu hút sự quan tâm.
Bài toán phân nhóm (clustering problem) là một bài toán tối ưu trong các lĩnh vực học máy và khai phá dữ liệu Mục tiêu phân cụm là phân cắt một tập dữ liệu thành các cụm dữ liệu (clusters) sao cho các phần tử cùng nhóm có tính tương đồng cao, các phần tử khác nhóm thì có tính tương đồng thấp.
Bài toán này có nhiều ứng dụng thực tế như phân khúc khách hàng, phát hiện bất thường, phân tích mạng xã hội, gom nhóm kết quả tìm kiếm Tùy vào cách định nghĩa về hàm mục tiêu và tính tương đồng, các bài toán phân nhóm có thể được chia thành các lớp bài toán con như phân nhóm phân cấp (hierarchical clustering), phân nhóm phân hoạch (partitional clustering), phân nhóm mờ (fuzzy clustering), phân nhóm mật độ (density-based clustering) [21].
Các kỹ thuật giải quyết bài toán phân cụm gồm có:
• Các thuật toán kinh điển: k-means, k-medoids, DBSCAN, thuật toán phân cấp,
• Các mô hình xác suất: mô hình hỗn hợp Gaussian, phương pháp Bayes,
• Các kỹ thuật metaheuristic: genetic algorithm, swarm optimization, simulated annealing,
• Các phương pháp dựa trên mạng nơ-ron: bản đồ tự tổ chức (self-organizing map – SOM), mạng adaptive resonance theory (ART),
Nghiên cứu về bài toán phân cụm đang ngày càng tập trung vào các vấn đề như phân cụm bán giám sát (semi-supervised clustering), phân cụm đa quan điểm (multi- view clustering), phân cụm mạng lưới (network clustering), cũng như khai thác các kỹ thuật học sâu để nâng cao chất lượng phân cụm.
Bài toán định tuyến (routing problem) liên quan đến việc tìm các tuyến đường tối ưu trên một mạng, thoả mãn các điều kiện ràng buộc về dung lượng, khoảng cách, thời gian và tối ưu hóa một số mục tiêu như chi phí, độ tin cậy Các bài toán định tuyến thường gặp trong các lĩnh vực viễn thông, giao thông vận tải và chuỗi cung ứng logistic.
Một số biến thể quan trọng của routing problem bao gồm: bài toán định tuyến xe (vehicle routing problem – VRP), bài toán định tuyến với ràng buộc dung lượng (capacitated VRP), bài toán định tuyến với cửa sổ thời gian (VRP with time windows), bài toán định tuyến trong mạng viễn thông (telecommunication network routing), bài toán định tuyến linh hoạt (dynamic routing) [22].
Các phương pháp giải bài toán định tuyến bao gồm:
• Các thuật toán chính xác: quy hoạch tuyến tính nguyên hỗn hợp, thuật toán nhánh và cắt, quy hoạch ràng buộc,
• Các thuật toán xấp xỉ: các thuật greedy algorithm, Clarke-Wright savings, sweep,
• Các kỹ thuật metaheuristic: simulated annealing, tabu search, ant colony optimization, genetic algorithm,
• Các phương pháp dựa trên AI và học máy: mạng nơ-ron, thuật giải tiến hóa, hệ chuyên gia, học tăng cường,
Các phương pháp giải bài toán tối ưu tổ hợp
Phương pháp này xác định lời giải tối ưu toàn cục bằng cách duyệt qua toàn bộ không gian tìm kiếm và đánh giá từng lời giải Một số phương pháp tìm kiếm chính xác phổ biến như sau: a) Dynamic programming
Dynamic programming - DP (quy hoạch động) giải quyết các bài toán tối ưu có cấu trúc con tối ưu (optimal substructure), tức là lời giải của bài toán lớn được xây dựng từ lời giải của các bài toán con Ý tưởng chính của DP là “chia để trị”, tức là bài toán lớn được phân chia thành các bài toán con, thực hiện việc giải các bài toán con một cách độc lập, sau đó kết hợp lời giải con để thu được lời giải tối ưu cho bài toán ban đầu, đồng thời tránh việc trùng lặp tính toán bằng cách lưu trữ lời giải con.
DP có thể giải quyết nhiều bài toán tối ưu tổ hợp như bài toán chia khoảng, cái túi, dãy con chung dài nhất, và nhiều bài toán lập lịch, phân bổ nguồn lực [23]. Tuy nhiên, hạn chế chính của DP này là yêu cầu không gian bộ nhớ lớn, dùng để lưu trữ các lời giải con, đặc biệt với các bài toán quy hoạch động có không gian trạng thái (state space) lớn.
Nhằm khắc phục hạn chế này, các kỹ thuật như quy hoạch động ngẫu nhiên (stochastic DP), quy hoạch động xấp xỉ (approximate DP), quy hoạch động vi phân (differential DP) nhằm giảm bộ nhớ lưu trữ và tăng tốc độ tính toán Ngoài ra, việc kết hợp thuật toán quy hoạch động với các kỹ thuật tối ưu khác như nhánh và cận, thuật toán di truyền cũng đang là hướng nghiên cứu được quan tâm. b) Backtracking
Backtracking (thuật toán quay lui) là kỹ thuật xác định lời giải tối ưu bằng cách xây dựng lời giải từng phần Thuật toán thử một giá trị tại mỗi bước, cho một biến quyết định, đánh giá giá trị này và tiếp tục tìm kiếm nếu nó thỏa mãn các ràng buộc Thuật toán quay lui (backtrack) nếu không tìm được giá trị thoả mãn, hủy bỏ giá trị vừa gán và thử lại một giá trị khác Quá trình được thực hiện lặp đi lặp lại tới khi xác định được một lời giải hoàn chỉnh hoặc đã duyệt hết không gian tìm kiếm [23].
Backtracking thường được ứng dụng với các bài toán liệt kê tổ hợp, một số bài toán tối ưu trên cấu trúc dữ liệu cây và đồ thị, và các bài toán thỏa mãn ràng buộc (constraint satisfaction problems) Ưu điểm của backtracking là dễ dàng cài đặt, có thể kết hợp với các kỹ thuật cắt tỉa nhằm thu hẹp không gian tìm kiếm Tuy nhiên nhược điểm của nó là có thể phải duyệt qua một không gian tìm kiếm lớn, nhất là khi bài toán cần giải quyết có nhiều ràng buộc phức tạp. Để cải tiến tốc độ của thuật toán quay lui, các kỹ thuật thường được sử dụng như đánh giá sớm (forward checking), tất cả các giá trị khác nhau (all-different), min- conflict, và kết hợp học máy để dự đoán các nhánh tìm kiếm triển vọng Thuật toán quay lui cũng thường được tích hợp trong các công cụ giải bài toán thỏa mãn ràng buộc (constraint solvers) và bộ giải SAT (SAT solvers) hiện đại. c) Branch and bound branch and bound – BnB (thuật toán nhánh và cận) là một phương pháp tìm kiếm lời giải tối ưu bằng cách chia nhỏ không gian tìm kiếm (search space) thành các nhánh con (branching), đồng thời dùng các cận trên và cận dưới (bounding) để cắt bỏ các nhánh không chứa lời giải tối ưu BnB duy trì một tập hợp các bài toán con, trong đó mỗi bài toán tương ứng với một nhánh tìm kiếm Tại mỗi bước, thuật toán chọn một bài toán con, tính cận dưới và cận trên cho nó Nếu cận dưới lớn hơn lời giải tốt nhất hiện có, nhánh tương ứng bị loại bỏ Ngược lại, bài toán con lại tiếp tục được chia nhỏ thành các bài toán con mới và quá trình lặp lại đến khi không còn bài toán con nào [23].
Thuật toán BnB có khả năng giải quyết nhiều loại bài toán tối ưu như các bài toán quy hoạch tuyến tính/phi tuyến nguyên (integer linear/nonlinear optimization), bài toán scheduling, sắp xếp, định tuyến (routing), bài toán cây khung cực tiểu (minimum spanning tree) Hiệu quả của BnB phụ thuộc rất nhiều vào chiến lược chia nhánh, chọn bài toán con, và độ chính xác của các cận Các cải tiến của BnB tập trung vào tích hợp với các kỹ thuật tối ưu khác như mặt phẳng cắt (cutting plane), heuristic và đa tiêu chí (multi-criteria) Ngoài ra, các phương pháp song song hóa và phân tán cũng được nghiên cứu để tăng quy mô của các bài toán mà BnB có thể xử lý. d) Linear programming
Linear programming – LP và mixed integer linear programming – MILP là các công cụ mạnh mẽ để mô hình hóa và sử dụng các solver để giải các bài toán tối ưu tổ hợp Đối với LP/MILP, mục tiêu và ràng buộc được biểu diễn bằng các hàm tuyến tính Nếu các biến quyết định (decision variables) chỉ nhận giá trị thực, bài toán là LP; còn nếu có cả biến thực và biến nguyên, bài toán là MILP Các bài toán LP có thể được xác định lời giải một cách hiệu quả bằng các thuật toán như đơn hình (simplex), điểm nội (interior point) Các mô hình MILP thường được giải bằng kết hợp quy hoạch tuyến tính với các kỹ thuật tìm kiếm như nhánh và cận, nhánh và cắt (branch and cut).
Các mô hình LP/MILP có thể áp dụng để tìm lời giải cho nhiều vấn đề tối ưu tổ hợp trong thực tiễn như cắt vật liệu, vận tải, lập lịch sản xuất, thiết kế mạng viễn thông Ưu điểm của LP/MILP là tính linh hoạt trong mô hình hóa, có thể kết hợp với các kỹ thuật tối ưu khác và sự hỗ trợ của nhiều phần mềm tối ưu
(solvers) mạnh như CPLEX, Gurobi, OR-Tools, SCIP [24] Tuy nhiên, nhược điểm là LP/MILP chỉ có thể giải các bài toán có kích thước đầu vào vừa và nhỏ, trong khi nhiều bài toán thực tế với kích thước dữ liệu đầu vào rất lớn cũng như yêu cầu thời gian tính toán nhanh.
Nghiên cứu về LP/MILP hiện nay tập trung chủ yếu vào các phương pháp tiền xử lý (preprocessing), sinh bất đẳng thức (inequality generation), chiến lược chia nhánh (branching strategies) để tăng tốc độ tính toán, cũng như khai thác cấu trúc đặc biệt của từng lớp bài toán (ví dụ: cấu trúc nhiều giai đoạn, cấu trúc ngẫu nhiên) để xây dựng các thuật toán chuyên biệt Ngoài ra, ứng dụng học máy trong LP/MILP, chẳng hạn như dùng mạng nơ-ron để dự đoán các ràng buộc vi phạm, cũng là hướng nghiên cứu tiềm năng. e) Constraint-based optimization
Constraint-based optimization (tối ưu dựa trên ràng buộc) sử dụng các kỹ thuật lập trình ràng buộc (constraint programming – CP) để mô hình hóa bài toán và tìm lời giải thỏa mãn tất cả các ràng buộc [25] Điểm mạnh của CP là cho phép mô hình hóa linh hoạt các ràng buộc phức tạp và tận dụng kỹ thuật suy diễn cho phép thu hẹp không gian tìm kiếm Nhiều hệ thống CP hiện đại còn được tích hợp thêm các kỹ thuật tối ưu khác như LP, metaheuristic để nâng cao hiệu năng tìm kiếm.
Các phương pháp heuristic tìm lời giải xấp xỉ tốt trong thời gian ngắn bằng cách khai thác các đặc điểm, tính chất của bài toán Phương pháp heuristic thường được thiết kế dựa trên kinh nghiệm, trực giác hoặc các quy tắc mang tính định tính để tạo ra các lời giải khả thi Ưu điểm của heuristic là dễ cài đặt tốc độ tính toán nhanh. Tuy nhiên, nhược điểm của heuristic là chất lượng lời giải phụ thuộc nhiều vào chiến lược heuristic và tính hiệu quả chỉ được đảm bảo cho một số lớp bài toán cụ thể Các phương pháp heuristic phổ biến: a) Các phương pháp tham lam (greedy methods): xác định lời giải từng bước bằng cách lựa chọn quyết định cục bộ tốt nhất tại mỗi bước. b) Các phương pháp dựa trên quy tắc ưu tiên (priority rule-based methods): các thành phần lời giải được sắp xếp và lựa chọn theo một số quy tắc ưu tiên định trước. c) Các phương pháp cải tiến lời giải (improvement methods): cải thiện lời giải hiện tại bằng các phép biến đổi cục bộ.
Không giống với heuristic, metaheuristic không bị phụ thuộc vào đặc điểm riêng, cụ thể của từng bài toán, mà dựa trên các nguyên tắc tìm kiếm thông minh như: duyệt không gian tìm kiếm theo chiến lược xác định, tránh các cực trị cục bộ, cân bằng giữa khai thác và thăm dò Metaheuristic thường kết hợp các thành phần: biểu diễn lời giải, hàm mục tiêu, toán tử sinh lời giải láng giềng và cơ chế thoát khỏi cực trị cục bộ Xuất phát từ lời giải ban đầu, metaheuristic tiếp tục sinh ra các lời giải láng giềng bằng toán tử và chấp nhận lời giải láng giềng theo một chiến lược xác định Quá trình được thực hiện lặp lại cho tới khi điều kiện dừng được thoả mãn.
Các phương pháp metaheuristic điển hình như: a) Simulated annealing: mô phỏng quá trình luyện kim để tìm kiếm lời giải tối ưu. b) Genetic algorithm: mô phỏng quá trình chọn lọc tự nhiên để tìm ra các lời giải tối ưu hoặc gần tối ưu. c) Variable neighborhood search: khai thác tính đa dạng của lân cận để thoát khỏi cực trị cục bộ. d) Ant colony optimization: mô phỏng hành vi tìm kiếm thức ăn của đàn kiến để tìm lời giải tối ưu.
Bài toán lập lịch công việc cá nhân và công việc nhóm
Bài toán lập lịch công việc cá nhân
Bài toán lập lịch công việc cá nhân (personal scheduling problem – PSP).
Tập hợp n công việc J = {J 1 , J 2 , , J n } được cho trước, mỗi công việc J i có thời gian thực hiện p i Đồng thời, cho trước m khung thời gian làm việc W {W 1 , W 2 , , W m }, trong đó mỗi khung thời gianW t có thời điểm bắt đầu và kết thúc lần lượt làb t và b t+1 Mục tiêu của bài toán PSP là xác định một lịch trình sao cho:
• Mỗi job có thể được chia thành các subjob với thời gian xử lý không nhỏ hơn split min , được thực thi trong một hoặc nhiều khung thời gian trống (available windows).
• Tại mỗi thời điểm trong một khung thời gian, chỉ có tối đa một job được thực hiện.
• Tổng thời gian thực hiện của các subjob bằng đúng thời gian yêu cầup i của job đó.
PSP là một bài toán NP-hard [30], và có thể được ký hiệu theo định dạng 3 trường α|β|γ[5] như sau:
1|splittable;split min ;available−windows|C max trong đó 1 thể hiện môi trường một người, splittable cho biết công việc có thể bị chia nhỏ,split min là kích thước giới hạn nhỏ nhất mà job/subjob có thể chia nhỏ, available− windowsthể hiện các khung thời gian làm việc riêng, và C max là mục tiêu tối ưu tổng thời gian hoàn thành tất cả các công việc – makespan.
Bài toán lập lịch công việc nhóm
Bài toán lập lịch công việc nhóm (teamwork scheduling problem – TWSP) là một mở rộng của bài toán PSP, được áp dụng cho một nhóm nhiều người với các khung thời gian làm việc khác nhau Bài toán TWSP với các đặc điểm:
• Các thành viên trong nhóm đều có thể xử lý được tất cả các công việc.
• Một job có thể được xử lý bởi nhiều người và có thể được cắt nhỏ làm nhiều phần gọi là các subjob.
• Kích thước của các job/subjob bị giới hạn chặn dưới bởi một ngưỡngsplit min
P|splittable;split min ;available−windows|C max trong đó P thể hiện môi trường nhiều người đồng nhất (parallel identical machines), splittable cho biết công việc có thể bị chia nhỏ, split min là kích thước giới hạn nhỏ nhất mà job/subjob có thể chia nhỏ,available−windowsthể hiện việc mỗi thành viên trong nhóm có các khung thời gian làm việc riêng, vàC max là mục tiêu tối ưu thời điểm makespan.
Một tập hợp n công việc J = {J 1 , J 2 , , J n } và một tập hợp k người M {M 1 , M 2 , , M k } được cho trước Mỗi công việc J i có thời gian thực hiện p i Mỗi ngườiM j có một tập các khung thời gian làm việc trống W j = {W 1 j , W 2 j , , W m j j }, trong đó mỗi khung thời gian W t j với thời gian bắt đầu và kết thúc là b j,t và b j,t+1 Mục tiêu của bài toán là tìm một phương án phân công công việc cho từng người sao cho:
• Mỗi job có thể được chia thành các subjob và được giao cho một hoặc nhiều thành viên thực hiện trong các khung thời gian làm việc của họ.
• Kích thước của mỗi job/subjob không nhỏ hơnsplit min
• Tổng thời gian thực hiện của các subjob bằng đúng thời gian yêu cầup i của job đó.
• Tại mỗi thời điểm trong một khung thời gian, mỗi người chỉ thực hiện tối đa một job/subjob.
TWSP là một bài toán NP-hard [31], và có nhiều biến thể tùy thuộc vào các ràng buộc và mục tiêu cụ thể, chẳng hạn như trường hợp có sự phụ thuộc thứ tự giữa các công việc, có nhiều tiêu chí tối ưu đồng thời, hay có yếu tố ngẫu nhiên và bất định.
CHƯƠNG 3 BÀI TOÁN LẬP LỊCH CÔNG VIỆC NHÓM
VỚI RÀNG BUỘC CÔNG VIỆC–NGƯỜI
Phát biểu bài toán
Bài toán TWSPwJP là một bài toán tối ưu tổ hợp nhằm phân công các công việc cho nhóm các thành viên Các công việc có thể được phân chia thành các phần nhỏ hơn với thời gian thực hiện tối thiểusplit min (bounded-splitting jobs)với ràng buộc về khung thời gian làm việc khả dụng của từng thành viên và ràng buộc về việc mỗi công việc chỉ được giao cho một thành viên duy nhất[1] Bài toán đặt ra yêu cầu tìm một phương án sắp xếp các công việc sao cho tổng thời gian hoàn thành toàn bộ công việc đạt giá trị nhỏ nhất có thể, hay nói cách khác là tối ưu hóa makespan.
Bài toán TWSPwJP được xác định bởi tập n công việc J = {J 1 , J 2 , , J n }, trong đó thời gian thực hiện của mỗi công việc J i là p i Mỗi công việc (job) có thể được chia thành các công việc con (subjob) với điều kiện mỗi công việc con phải có thời gian thực hiện không nhỏ hơn split min Có k thành viên trong nhóm (machines) M = {M 1 , M 2 , , M k } Mỗi thành viên M j có m j khung thời gian làm việcW j ={W 1 j , W 2 j , , W m j j }, trong đó mỗi khung thời gianW t j được xác định bởi thời điểm bắt đầub j,t và thời điểm kết thúcb j,t+1 Các công việc hoặc công việc con chỉ có thể được phân công trong các khung thời gian làm việc này Ràng buộc công việc–người yêu cầu tất cả các subjob của cùng một công việc phải được giao cho cùng một thành viên.
TWSPwJP có thể được biểu diễn theo ký hiệu 3 trường α|β|γ [5] như sau:
P|splittable;split min ;available−windows;job−person|C max , trong đó:
• P biểu thị môi trường nhiều người đồng nhất (parallel identical machine environment).
• splittablechỉ ra công việc có thể được chia nhỏ thành các công việc con.
• split min xác định kích thước nhỏ nhất của mỗi job/subjob.
• available−windowscho biết các khung thời gian làm việc khả dụng còn trống của các thành viên.
• job− person thể hiện ràng buộc một công việc chỉ được giao cho một thành viên.
• C max biểu thị mục tiêu cực tiểu hóa thời điểm makespan. Để hiểu rõ hơn về bài toán, một dữ liệu minh hoạ cho bài toán TWSPwJP được thể hiện trong Bảng 3.1 như sau:
• n = 6 công việc{J 1 , J 2 , J 3 , J 4 , J 5 , J 6 }với thời gian xử lý tương ứng của từng công việc làp 1 = 6, p 2 = 7,p 3 = 8,p 4 = 5,p 5 = 10,p 6 = 4, và ngưỡng cắt nhỏ công việc cho phép làsplit min = 3.
• k = 2 máy {M 1 , M 2 }, trong đó máy M 1 có m 1 = 4 khung thời gian {W 1 1 , W 2 1 , W 3 1 , W 4 1 } được xác định lần lượt theo các khoảng thời gian [0,7], [7,12], [12,20], [20,+∞), và máy M 2 có m 2 = 5 khung thời gian
{W 1 2 , W 2 2 , W 3 2 , W 4 2 , W 5 2 }được xác định lần lượt theo các khoảng thời gian[0,5], [5,11],[11,18],[18,25],[25,+∞).
• MáyM 1 có3 cột mốc tại các thời điểm làt= 7,t= 12,t= 20, và máy M 2 có
4cột mốc tại các thời điểm làt= 5,t = 11,t= 18,t= 25như trong Hình 3.1.
Bảng 3.1: Dữ liệu được cung cấp cho bài toán TWSPwJP (a) Công việc (split min = 3)
Hình 3.1: Mô tả về các khung thời gian trong bài toán TWSPwJP
Các kết quả có thể đạt được cho bài toán TWSPwJP dựa trên dữ liệu đầu vào trong Bảng 3.1:
• Một lời giải khả thi vớiC max = 22có một idle-time tại khoảng thời gian [6,7] trên máyM 1 và một idle-time tại khoảng thời gian[4,5]trên máyM 2 như Hình 3.2.
Hình 3.2: Một lịch trình sắp xếp công việc với lời giải khả thi có giá trị C max ∗ = 21
• Một lời giải tối ưu với C max ∗ = 21có một idle-time tại khoảng thời gian [6,7] trên máyM 1 và không có idle-time nào trên máyM 2 như Hình 3.3.
Hình 3.3: Một lịch trình sắp xếp công việc với lời giải tối ưu có giá trị C max ∗ = 21
Phân tích bài toán
Ràng buộc và mục tiêu
• Các công việc có thể được chia thành các công việc con với kích thước không nhỏ hơn một ngưỡng cho trước, được ký hiệu làsplit min
• Chỉ được phép gán các công việc hoặc công việc con vào những khung thời gian mà các thành viên trong nhóm có thể làm việc.
• Các công việc con của cùng một công việc chỉ được phân công cho duy nhất một thành viên.
• Mục tiêu của bài toán là xác định lịch phân công công việc khả thi sao cho tổng thời gian hoàn thành tất cả các công việc là nhỏ nhất.
Đặc điểm
• Bài toán TWSPwJP luôn đảm bảo có ít nhất một lời giải khả thi do khung thời gian làm việc cuối cùng của mỗi thành viên không bị giới hạn về kích thước.
• Bài toán TWSPwJP có thể tồn tại nhiều lời giải tối ưu khác nhau nhưng đều có cùng một giá trị makespanC max
• Nghiệm không có thời gian rỗi (idle time) trong các khung thời gian làm việc chắc chắn là nghiệm tối ưu Tuy nhiên, điều ngược lại không phải lúc nào cũng đúng, nghĩa là trong một số trường hợp, nghiệm tối ưu vẫn có thể xuất hiện thời gian rỗi.
Tính chất
• Trong mỗi khung thời gian làm việc, thứ tự thực hiện các công việc hoặc công việc con có thể bất kỳ.
• Mỗi khung thời gian làm việc chứa tối đa 0 hoặc 1 công việc con của cùng một công việc.
• Trong mỗi khung thời gian làm việc, chỉ có tối đa một khoảng thời gian rỗi Nếu có thời gian rỗi, nó phải nằm ở cuối khung thời gian làm việc.
• Không thể tồn tại khoảng thời gian rỗi nào có độ dài lớn hơn hoặc bằng 2 × split min
• Tồn tại nghiệm tối ưu sao cho mỗi công việc J i có thể được chia thành nhiều nhất lànsub i =min
• Trong lịch phân công công việc, thứ tự của các công việc hoặc công việc con có cùng kích thước có thể bất kỳ.
Cận trên và cận dưới của lời giải
Bài toán TWSPwJP có cận trên (U B) và cận dưới (LB) cho makespan được xác định lần lượt bởi các công thức sau đây:
Mô hình hoá toán học
Bài toán TWSPwJP có thể biểu diễn thông qua mô hình toán học MILP như sau:
• t∈ {1,2, , m j }: khung thời gian làm việc của thành viênj
• m j : số khung thời gian làm việc của thành viênj
• p i : thời gian thực hiện công việci
• split min : kích thước tối thiểu cho phép của công việc con
• b j,t : thời điểm bắt đầu khung thời giantcủa thành viênj
• x i,j,t ∈ {0,1}: bằng 1 nếu công việc con của công việc i được giao cho khung thời giantcủa thành viênj, bằng 0 nếu ngược lại
• y i,j,t ≥ 0: kích thước của công việc con của công việc i được giao cho khung thời giantcủa thành viênj
• s i,j,t ≥ 0: thời điểm bắt đầu của công việc con của công việcitrong khung thời giantcủa thành viênj
• z i,j ∈ {0,1}: bằng 1 nếu công việc i được giao cho thành viên j, bằng 0 nếu ngược lại
• C max ≥ 0: thời gian hoàn thành tất cả các công việc (makespan)
Hàm mục tiêu: minimizeC max
Các ràng buộc trong mô hình MILP này đảm bảo tính đúng đắn của lịch phân công công việc Ràng buộc (3.1) đảm bảo tổng thời gian thực hiện của các công việc con bằng thời gian thực hiện của công việc tương ứng Ràng buộc (3.2) đảm bảo tổng thời gian thực hiện của các công việc con trong một khung thời gian không vượt quá khả năng của khung thời gian đó Ràng buộc (3.3) quy định thời gian thực hiện của công việc con không nhỏ hơnsplit min và không lớn hơn thời gian thực hiện của công việc tương ứng Ràng buộc (3.4) đảm bảo thời điểm bắt đầu của công việc con trong một khung thời gian phải nằm trong khoảng thời gian của khung thời gian đó và tránh xung đột với các công việc con khác Ràng buộc (3.5) ngăn chặn sự chồng chéo (overlap) giữa các công việc con trong cùng một khung thời gian Ràng buộc (3.6) đảm bảo rằng nếu một công việc được giao cho một thành viên, thì phải tồn tại ít nhất một công việc con của công việc đó được giao cho một khung thời gian của thành viên đó Cuối cùng, ràng buộc (3.7) đảm bảo mỗi công việc chỉ được giao cho đúng một thành viên.
Các phương pháp giải quyết bài toán
Phương pháp chính xác
Phương pháp quy hoạch tuyến tính nguyên hỗn hợp sử dụng solver để giải mô hìnhMILP cho bài toán TWSPwJP đã được trình bày trong Mục 3.3 Mô hình này có thể được giải bằng các solver thương mại như CPLEX, Gurobi, OR-Tools hoặc các solver nguồn mở như CBC, GLPK Tuy nhiên, do tính chất NP-hard của bài toán, việc giải trực tiếp mô hình MILP có thể gặp khó khăn đối với các bài toán có kích thước dữ liệu đầu vào lớn Thay vào đó, phương pháp này thường chỉ phù hợp với các bài toán có kích thước dữ liệu đầu vào vừa và nhỏ.
Phương pháp heuristic
Phương pháp heuristic first-come, first-served (FCFS) là một cách tiếp cận đơn giản để giải quyết bài toán TWSPwJP Phương pháp này duy trì một danh sách các khung thời gian làm việc khả dụng cho mỗi thành viên và lần lượt phân công các công việc vào khung thời gian sớm nhất có thể đáp ứng được thời gian thực hiện của công việc đó Nếu một công việc không thể hoàn toàn khớp với một khung thời gian duy nhất, nó sẽ được chia nhỏ thành các công việc con để lấp đầy không gian còn lại trong khung thời gian hiện tại và các khung thời gian khả dụng tiếp theo trên cùng một thành viên Quá trình này tiếp tục cho đến khi tất cả các công việc đều được lên lịch Mã giả của thuật toán FCFS được trình bày trong Thuật toán 1 và các hàm phụ trợ như
GetMachineHasReady,AllocateJobToWindowđược trình bày chi tiết sau đây.
1 Input: Set of jobs J , set of machines M
5 foreach time window w ∈ availableTimeWindows (m) do
Output: Machine which has shortest completion time
1 if rj i ≥spmandrw t ≥ spm then
3 Allocate jobJ i with a size ofrj i toW t ;
5 if rj i −rw t ≥ spm then
6 Allocate jobJ i with a size ofrw t toW t ;
8 if rj i −spm≥ spm then
9 Allocate jobJ i with a size ofrj i −spmtoW t ;
Phương pháp metaheuristic
Thuật toán simulated annealing (SA) là một phương pháp metaheuristic mô phỏng quá trình ủ kim loại SA bắt đầu với một lời giải ban đầu được tạo ra bằng cách xáo trộn ngẫu nhiên trình tự các công việc và lặp đi lặp lại khám phá không gian tìm kiếm bằng cách di chuyển đến các lời giải lân cận Cấu trúc lân cận cho bài toán TWSPwJP được định nghĩa bởi các bước di chuyển hoán đổi (swap move), trong đó vị trí của hai công việc được chọn ngẫu nhiên sẽ được hoán đổi Mã giả của thuật toán SA được trình bày trong Thuật toán 4.
1 Input:Initial temperatureT max , cooling rateα, temperature threshold
2 Initialize temperatureT max , cooling rateα
3 Generate initial solutionS current by randomly shuffling job sequence
10 if makespan(S current )