CHƯƠNG 1. TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH 1. Định nghĩa bài toán lập lịch Jobshop (JSP) Bài toán lập lịch job shop tổng quát được phát biểu như sau: Cho tập công việc { } , mỗi công việc bao gồm công đoạn (hay còn gọi là thao tác) được xử lý trên một tập máy và thỏa mãn các ràng buộc sau: a) Mỗi công việc phải được xử lý ở trên mỗi máy theo một trình tự cho trước của các thao tác. Trình tự thực hiện thao tác của mỗi công việc lần lượt trên các máy được gọi là tuần tự công nghệ; b) Tại mỗi thời điểm, mỗi máy chỉ có thể xử lý nhiều nhất là một công việc; c) Mỗi máy tùy ý đều có khả năng xử lý một công việc nào đó, phần công việc được xử lý trên máy được gọi là thao tác.
d) Mỗi thao tác phải được xử lý một cách liên tục trên máy (từ khi bắt đầu xử lý cho tới khi kết thúc xử lý không bị ngắt); e) Thời gian bắt đầu và thời gian hoàn thành xử lý thao tác được ký hiệu lần lượt là và. Thời gian xử lý thao tác được ký hiệu là ; f) Thời gian hoàn thành việc xử lý tất cả các công việc được gọi mà makespan và được ký hiệu là. Việc giải bài toán lập lịch job shop là xác định một lịch biểu (thứ tự xử lý các công việc ở trên m máy) sao cho makespan là nhỏ nhất. Để minh họa cho bài toán, một ví dụ về bài toán JSP 3x3 được cho trong Bảng 1.
Dữ liệu vào bao gồm một tuần tự công nghệ của các máy cho mỗi công việc và thời gian xử lý của mỗi công việc ở trên mỗi máy (trong dấu ngặc đơn). Công việc Máy (thời gian xử lý) 1 1(3) 2(3) 3(3) 2 1(2) 3(3) 2(4) 3 2(3) 1(2) 3(1) Bảng 1.1: Bài toán JSP 3 công việc, 3 máy Theo Bảng 1.1, các thao tác của được xử lý trên các máy theo trình tự: → → ; tức là, công việc 1 ban đầu được xử lý trên máy 1 với thời gian xử lý là 3, và tiếp theo, được xử lý trên máy 2 với thời gian xử lý là 3, và tiếp theo được xử lý trên máy 3 với thời gian xử lý là 3; các thao tác được xử lý trên các máy theo trình tự: → → các thao tác được xử lý trên các máy theo trình tự: → →. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2 Bài toán này không chỉ là NP - khó (NP-hard) mà còn nổi tiếng là một trong những bài toán tối ưu tổ hợp khó tính toán nhất cho đến nay. Độ phức tạp của bài toán này là một trong những lý do tại sao bài toán này được nghiên cứu một cách rộng rãi.
Cho đến ngày nay vẫn chưa có một phương pháp nào giải quyết bài toán JSP một cách chính xác và thời gian nhanh. Tình hình nghiên cứu thuật toán tìm kiếm lịch biểu tối ưu 1. Tình hình nghiên cứu trên thế giới Bài toán JSP lần đầu tiên được công bố bởi Akers và Friedman (1955), bài toán này thường được biết với cái tên AkersFriedman. Tuy nhiên, nó trở nên phổ biến nhờ vào bài toán nổi tiếng 10 công việc 10 máy được đưa ra bởi Fisher và Thompson (1963).
Những nỗ lực đầu tiên để giải quyết bài toán JSP được thực hiện bởi Brooks và White (1965), Greenberg (1968) với phương pháp quy hoạch nguyên.Sau đó là phương pháp nhân tử Lagrange của Balas (1969), Charlton và Death (1970) Florian (1971), Ashour(1974), Ashour và Hiremath (1973), Fisher (1973)[5]. Một thuật toán của McMahon và Florian (1975) tìm được dẫn đầu là thuật toán chính xác tốt nhất. Thuật toán kết hợp các giới hạn của bài toán lập lịch trên một máy bằng cách sử dụng hàm mục tiêu để giảm thiểu thời gian trễ và liệt kê các lịch biểu tích cực. Cùng thời gian đó một phương pháp heutistic dựa trên các luật ưu tiên được nghiên cứu bởi Gere (1966), Panwalkar và Iskander (1977) và Haupt (1989).
Xa hơn nữa một số thuật toán mãnh mẽ được nghiên cứu với các phương pháp tiếp cận tối ưu. Barker và McMahon (1985) đã công bố công trình giải quyết bài toán lập lịch bằng cách sử dụng cấu trúc lân cận dựa trên các thuật toán tìm kiếm địa phương(local search)[5]. Lịch biểu tối ưu của bài toán JSP 10x10 lần đầu tiên được đưa ra bởi Leageweg (1984) nhưng việc chứng minh về tính tối ưu của lịch biểu này không được đưa ra. Arlier và Pinson (1989) đã chứng minh rằng lịch biểu này là tối ưu và họ được ghi với việc giải quyết bài toán nổi tiếng Fisher và Thompson từ năm 1963[5].
Ngày nay, thuật toán hiệu quả nhất trong số các phương pháp chính xác là thuật toán nhánh cận của Caseau và Laburthe (1995), Baptiste (1995), Carlier và Pinson (1994), Brucker (1994), Brucker (1992) và các kỹ thuật khác nhau sau nhánh cận bởi Applegate và Cook (1991), Martin và Shmoys (1995) và Perregaard và Clausen (1995). Những hướng mới nghiên cứu giải quyết bài toán JSP tại thời điểm hiện tại là phương pháp gần đúng. Phương pháp đầu tiên trong danh sách là phương pháp dịch chuyển nút cổ chai (Shifting Bottleneck) của Adam 1998,Balas (1995), Dauzere-Peres và Lasserre (1993). Tuy nhiên phần lớn của cách tiếp cận gần đúng là kỹ thuật tìm kiếm địa phương và tiến hóa.
Trong kỹ thuật tìm kiếm địa phương và tiến hóa thì các thuật toán mạnh mẽ nhất là thuật toán mô phỏng luyện kim (simulated annealing) của Van Laarhoven (1992), Matsuo (1988) và Yamada (1994), Tìm kiếm Tabu (Taboo LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 Search)bởi Dell’Amico và Trubian (1993), Taillard (1994), Barnes và Chambers (1995), Nowicki và Smutnicki (1996) và Thomsen (1997), Thuật toán di truyền (Genetic Algorithms)bởi Storer (1992), Yamada và Nakano (1992), Pesch (1993) và Dorndorf và Pesch (1995), vàkỹ thuật Tìm kiếm địa phương có chỉ dẫn (Guided Local Search)đề xuất bởiBalas và Vazacopoulos (1998)[5]. Các tiếp cận đã được đề xuất để giải bài toán JSP được trình bày trong Hình 1. Các phương Các phương pháp gần đúng pháp chính xác Các luật ưu Dịch chuyển tiên nhanh Các kỹ thuật Công thức nút cổ chai nhánh cận toán học Trí tuệ nhân tạo Tìm kiếm Mô phỏng Quy hoạch tuyến địa phương luyện kim tính nguyên Các mạng Tìm kiếm Nơron Taboo Giải thuật di truyền Hình 1.1: Các tiếp cận cho bài toán lập lịch JSP 1. Tình hình nghiên cứu trong nước Hiện nay, bài toán JSP vẫn đang được quan tâm và nghiên cứu và ngày càng phát triển.
Các công trình nghiên cứu về vấn đề này chủ yếu theo hướng các thuật toán đã được đề xuất và ứng dụng ở trên thế giới, từ đó tìm ra các phương pháp để cải tiến làm cho thuật toán tốt hơn. Ứng dụng thực tiễn của bài toán lập lịch chủ yếu trong lĩnh vực đào tạo: xây dựng thời khóa biểu, kế hoạch thi, lịch làm việc, lịch trực bệnh viện,lập kế hoạch sản xuất kinh doanh trong doanh nghiệp. Các phương pháp tiếp cận giải bài toán lập lịch 1. Cách tiếp cận chính xác, thuật toán nhánh cận Thuật toán nhánh cận là phương pháp hiệu quả nhất trong số các phương pháp chính xác để giải bài toán JSP.
Thuật toán nhánh cận là kỹ thuật được phát triển LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 để giải quyết các bài toán rời rạc và tổ hợp. Mô hình được sử dụng để tìm kiếm là mô hình cây phân cấp. Tư tưởng cơ bản của phương pháp là trong quá trình tìm kiếm lời giải, sẽ phân hoạch tập các phương án của bài toán thành hai hay nhiều tập con biểu diễn như một nút của cây tìm kiếm và cố gắng bằng phép đánh giá cận), tìm cách loại bỏ các nhánh cây (những tập con các phương án của bài toán) mà ta biết chắc chắn không phải là phương án tối ưu. Mặc dù trong trường hợp xấu nhấtthuật toán sẽ duyệt toàn bộ, nhưng những trường hợp cụ thể nó rút ngắn đáng kể thời gian tìm kiếm.
Hiệu quả của thuật toán nhánh cận phụ thuộc cách thức phân nhánh và đánh giá cận. Việc phân nhánh sai sẽ không làm giảm việc bỏ bớt các phương án không tốt hoặc thậm chí cũng không thể thu gọn các miền khả thi xuống. Đánh giá cận sai sẽ tạo ra các nhánh không chính xác làm ảnh hưởng đến số lượng các phương án hoặc các tập con có thể lược bỏ được. Như vậy thì một chiến lược nhánh cận không tốt sẽ làm giảm việc xác định các phương án khả thi và lúc này thuật toán sẽ liệt kê toàn bộ các cấu hình có thể cho dù bài toán không thực sự lớn.
Chính vì thế những quy tắc khác nhau được áp dụng với mục đích làm sao để phân nhánh và đánh giá cận đúng là vấn đề quan trọng trong việc xây dựng thuật toán. Với bài toán lập lịch, thì lịch biểu các công việc được mô tả bằng một đồ thịnối rời (disjunctive graph). Tất cả các công đoạn cùng một công việc được nốithành một chuỗi các cung nối liền và các cung nối rời giữ các công đoạn thực hiệntrên cùng một máy. Việc lập lịch sẽ trở thành việc sắp thứ tự các công việc trên từngmáy, nghĩa là làm cố định mối liên hệ trước sau giữa các công đoạn trên cùng mộtmáy bằng cách thay đổi hướng các cung nối rời theo một hướng cố định ta sẽ cómột lời giải khả thi, mỗi lời giải khả thi này ta tính được hàm mục tiêu chiềudài lớn nhất đi từ nút nguồn đến nút đích.
Một vấn đề gặp phải của phương pháp nhánh cận là thời gian tính toán lớn. Cách tiếp cận gần đúng 1. Giới thiệu Một lớp quan trọng của loại cải tiến thuật toán là thủ tục tìm kiếm địa phương (local search). Một thủ tục tìm kiếm địa phương không đảm bảo là một lời giải tối ưu.
Nó thường cố gắng tìm một lịch biểu mà lịch biểu đó là tốt hơn so với lịch biểu hiện tại trong lân cận của lịch biểu hiện tại. Hai lịch biểu là lân cận nếu một lịch biểu này có thể thu được qua việc sửa đổi và được xác định bởi lịch biểu kia. Tại tất cả các vòng lặp một thủ tục tìm kiếm địa phương thực hiện việc tìm kiếm bên trong lân cận và đánh giá các giải pháp lân cận khác nhau. Quá trình tìm kiếm trong lân cận có thể được thực hiện qua một số cách.
Cách đơn giản nhất là chọn các lịch biểu trong lân cận một cách ngẫu nhiên, đánh giá các lịch biểu này và quyết định cái lịch biểu nào sẽ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 được chấp nhận. Tuy nhiên nó có thể mất chi phí để làm một thủ tục tìm kiếm có tổ chức hơn và chọn lịch biểu đầu tiên tốt hơn.