Luận văn tập trung nghiên cứu bài toán lập lịch cho cửa hàng thức ăn nhanh với cácmáy chuyên dung song song và một máy chủ trong đó thời gian thực thi của các maylà cô định.. Giới thiệu1
GIỚI THIEUMục dich nghiên cứuĐề tài nghiên cứu bài toán thực tế về lập lịch và cách tiếp cận bài toán đưa ra Từ đó, xây dựng mô hình toán học cho bài toán dựa trên các ràng buộc cho trước. Đề xuất một số giải thuật cho bài toán và tiến hành so sánh độ hiệu quả của các giải thuật dựa trên mục tiêu của bài toán, từ đó có thể hỗ trợ người quản lý ra quyết định.
Doi tượng và phạm vi nghiên cứuDo giới hạn về thời gian, phạm vi của luận văn thạc sỹ nên luận văn chỉ tập trung tìm hiểu các vấn đề sau đây: e Những kiến thức tổng quan về lập lịch giúp hình thành ý tưởng để giải quyết bài toán đưa ra. e Dề xuất một số giải thuật cho bài toán, tư vẫn lựa chọn giải thuật phù hợp trong từng trường hợp
Phương pháp nghiên cứuTìm hiểu các kiến thức cơ bản về lý thuyết lập lịch Sau đó đặc tả cụ thể bài toán cần giải quyết, xác định các ràng buộc và mục tiêu cần đạt được của bài toán. e Về mặt áp dụng:
Thông qua một số ví dụ cụ thể và kết hợp với các kiến thức lý thuyết từng bước hình thành giải thuật để giải quyết bài toán Cuối cùng là tiến hành thực nghiệm và đánh giá kết quả đạt được.
Câu trúc của luận vănLuận văn bao gồm các phần như sau: e Chương 1
Chương này trình bày lý do chọn đề tài về lập lịch cho cửa hàng thức ăn nhanh, mục đích, đối tượng, phạm vi và phương pháp nghiên cứu. e Chương 2
Chương này trình bày cơ sở lý thuyết để hình thành nên cách tiếp cận và giải quyết bài toán Chương này trình bày khái niệm về lập lịch và một số kiến thức liên quan đến lý thuyết lập lịch. e Chương 3
Chương này trình bày các công trình nghiên cứu khoa học có ý nghĩa đối với bài toán của luận văn Từ đó hình thành ý tưởng cũng như phương hướng để giải quyết bài toán nghiên cứu. e Chương 4
Chương này trình bày chi tiết đặc tả bài toán lập lich cu thể mà luận văn nghiên cứu và xây dựng mô hình toán học cho bài toán. e Chương 5
Chương này trình bày cơ sở đề xuất giải thuật cho bài toán nghiên cứu đồng thời mô tả chỉ tiết giải thuật đề nghị. e Chương 6
Chương này trình bày các kết quả đạt được từ thực nghiệm, đồng thời so sánh, đựa ra nhận xét kết quả giữa thực thi bằng solver và giải thuật được đề xuất. e Chương 7
Chương này tổng kết lại những việc đã làm được, những đóng góp của đề tài, sau đó nêu ra những hướng phát triển cho bài toán.
Cơ sở lý thuyết về bài toán lập lịch
Chương này trình bày tổng quan về lập lịch; một số khái niệm liên quan đến máy, công việc, muc tiêu tối ưu Dây là những kiến thức cơ bản, hỗ trợ cho quá trình tiếp cận và giải quyết bài toán mà luận văn đang nghiên cứu.
Tổng quanLập lịch có thể được hiểu là quá trình tìm kiếm các giải pháp cho một bài toán dựa vào các ràng buộc có sẵn sao cho có thể tối ưu hóa mục tiêu đề ra Mặc dù kỹ thuật lập lịch đã được nghiên cứu và đưa vào áp dụng trong thực tế từ rất lâu nhưng cho đến hôm nay nó vẫn còn là đề tài hấp dẫn nhiều người nghiên cứu.
Lập lịch được ứng dụng trong mọi mặt của đời sống xã hội, từ những việc nhỏ đến việc lớn, từ đơn giản đến phức tạp Ngày nay các bài toán về tối ưu hóa được ứng dụng vào thực tiễn thường liên quan đến việc lập lịch trong công nghiệp như lập lịch trình san xuất, phân bo nhân cong, hoặc trong lĩnh vực y tế, giáo dục, giao thông, hang không, đã có những hiệu quả đáng kể Trong tương lai với sự phát triển không ngừng của máy tính và công nghệ, kỹ thuật lập lịch sẽ còn mang lại nhiều ứng dụng rộng rãi hơn và giải quyết được những bài toán có quy mô hơn và phức tạp hơn.
Bai toán lập lịchGiả sử có m may M; (7 =1, ,m) phải thực hiện n công việc J; (2 = l, ,n).
Lập lịch là việc cấp phát một hay nhiều khoảng thời gian cho mỗi công việc trên một hoặc nhiều máy nhằm thỏa mãn một số ràng buộc và mục tiêu nào đó Các lập lịch có thể được biểu diễn bằng giản đồ Gantt như hình 2.1 Giản đồ Gantt có thể biểu diễn theo cách nhìn ở góc độ từng máy (hình 2.1(a)) hay ở góc độ từng công việc (hình 2.1(b)).
Hình 2.1: Giản đồ Gantt dưới góc độ máy và công việc [1]
2.2.2 Một so khái niệm liên quan đên công việc
Một công việc J; gồm có n; tac vụ Ởại, ,¿„„ Tương ứng với mỗi tác vụ O,; có một thời gian xử lý cần thiết là p;; Nếu n; = 1, công việc J; chỉ có một tác vụ duy nhất Ta đồng nhất O;; với J; và p;; với p;. release date r;: đây là thời điểm mà sau đó tác vụ đầu tiên của công việc J; được phép thực thi.
Ham chi phí f;(t): Hàm số do mức chi phí của việc hoàn thành công việc J; tại thời điểm t.
Thời gian hoàn thành dự kiến (due date) d;: là thời điểm mà công việc tương ứng
J; được mong đợi hoàn thành.
Deadline: là thời điểm mà công việc nhất định phải hoàn thành trước nó, không thể thay đổi được.
Trọng số w;: Là phần đóng góp của một biến số Ví dụ w;C; nghĩa là C; được xem xét tính toán với trọng số 0.
Thông thường thì các dữ liệu p;, pij, r;, d;, d; được giả định là số nguyên.
CƠ SỞ LÝ THUYET VỀ BÀI TOÁN LẬP LICHMột số khái niệm liên quan đến kết quả lập lịche Một lập lịch khả di (feasible) là cách lập lịch không có 2 khoảng thời gian nào trùng lắp nhau trên cùng một máy, không có 2 khoảng thời gian nào trùng lắp được cấp phát cho cùng 1 công việc nhằm thỏa mãn các vẫn đề đặc trưng. e Một lập lịch tối ưu (optimal) là một cách lập lịch cực tiểu hoặc cực đại một mục tiêu tối ưu mong muốn.
2.2.4 Phân loại bài toán lập lịch
Tương ứng với mỗi tac vụ O;; có một tập các máy /; C {1h, , Mn} có khả năng xử lý được tác vụ đó Ta có thể phân loại bài toán lập lịch thành các dạng cơ bản sau:
Với: e Nếu như tất cả /;; đều là các tập hợp chỉ có một phần tử (một máy), ta có trường hợp các máy chuyên dụng (dedicated machine), nghĩa là mỗi tác vụ chỉ có thể được thực hiện trên một máy chuyên dụng đó mà thôi.
Nếu như tat cả /¿; đều là các tập hợp tất cả các máy {Mj, , M„}, ta có trường hợp các máy song song (parallel), nghĩa là bất kỳ tác vụ nào cũng có thể được thực thi trên bất kỳ máy nào.
Trường hợp tổng quát trong sản xuất, các máy có thể được trang bị với nhiều công cụ khác nhau Diéu này có nghĩa là một tác vụ chỉ có thể được thực hiện được trên may nào mà được trang bi công cụ thích hợp Ỏ đây, ta gọi là trường hợp các máy đa chức năng (multi-purpose machine - MPM).
Trong toàn bộ chu kỳ xử lý, tác vụ O;; trong thực tế cũng có thể sử dung cùng lúc tất cả các máy trong tập /; Các bài toán dang này gọi là các bài toán lập lịch tác vụ đa xử lý (multiprocessor task scheduling problems).
Dac ta cũng như phan loại một bài toán lập lich, ta sử dụng ký hiệu gồm 3 trường [B]: al Bly e a: đặc tả môi trường may e 6 : đặc tả các đặc trưng của công việc. e +: đặc tả mục tiêu tối ưu.
Dac điêm công việcCác đặc điểm của công việc được đặc trưng bởi một tập 8 bao gồm 6 phan tử đụ, Bo, ỉa, Ba, Bs va Be. ỉĂ chi ra liệu cú cho phộp cụng việc được chia nhỏ hay khụng (preemption) Việc cho phép chia nhỏ công việc nghĩa là một công việc đang xử lý có thể bị tạm thời ngắt quãng và sẽ được tiếp tục sau đó, thậm chí là trên một máy khác Một công việc có thể bị ngắt quãng nhiều lần Nếu công việc được phép chia nhỏ, ta ký hiệu đị = pmtn Ngược lại, nếu không được phép thì đị không xuất hiện trong tập đ.
6 miêu tả mối quan hệ trước sau giữa các công việc Các mối quan hệ này có thể được biểu diễn bằng một đồ thị có hướng không tuần hoàn G = (V,44) Trong đó, tập đỉnh V = {1, ,n} tương ứng với các công việc và (7,k) € A nếu công việc J; phải được kết thúc trước khi công việc J, bắt đầu Trong trường hợp này ta ký hiệu J; > J, Nếu G là một đồ thị có hướng không tuần hoàn tùy ý, chúng ta ký hiệu 6 = prec.
Nếu 63 = r;, mỗi công việc có thể sẽ được gán thêm một release date r; Nếu r; = 0 đối với tất cả các công việc thi 83 sẽ không xuất hiện trong tập đổ.
6, định nghĩa các ràng buộc về thời gian xử lý hoặc về số lượng các tác vụ Nếu là pi = 1(pi; = 1) có nghĩa là mỗi công việc hay tác vụ yêu cầu thời gian xử lý là một đơn vị thời gian Tương tự, chúng ta có thể viết là p; = p(p;; = p) Thông thường trường 6, còn chứa thêm một số đặc tính phụ dễ hiểu như là p; € {1,2} hay d; = d.
Nếu ỉ; = d;, thỡ mỗi cụng việc J; cú thể cú một deadline đ; tương ứng, nghĩa là cụng việc J; phải được hoàn thành không trễ hơn thời gian d;.
Trong một vài ứng dụng lập lịch, các tập các công việc cần được nhóm vào trong các batch Một batch là một tập các công việc cần được xử lý cùng với nhau trên cùng một máy Thời gian hoàn thành một batch là thời gian cần thiết để hoàn thành tất cả các công việc trong batch đó Một batch có thể chỉ có 1 công việc cũng có thể bao gồm một số n công việc Có 2 dạng bài toán batching ký hiệu lần lượt là p-batching và s-batching.
Bs = p— batching hay 8 = s — batching chỉ ra đây là một bài toán batching Nếu không,ỉs sẽ khụng xuất hiện trong tap đ.
Mlôi trường mayMôi trường máy trong bài toán lập lịch œ được đặc tả bởi một chuỗi 2 thông số: Œ = A192 e Các giá trị có thể có của ay là 0, P,Q, R, PMPM,QMPM,G,X,0O,J,F. e Ký hiệu o có ý nghĩa là rỗng.
CHƯƠNG 2 CƠ SỞ LÝ THUYET VỀ BÀI TOÁN LẬP LICH e Nếu ai € {0, P,Q, R, PMPM,QMPM} , mỗi công việc J; chỉ bao gồm một tác vụ duy nhất Nếu a, = 0, mỗi công việc phải được thực thi trên một may chuyên dụng cho nó Nếu a; € {P,Q, R} , chúng ta có các máy song song, nghĩa là mỗi công việc có thể được xử lý trên bất ky máy nào trong tập Ä⁄:, , A„ Nếu ơi = P, ta có các máy đồng nhất song song Xét thời gian xử lý p;; của công việc J; trên máy M;, vì các máy là đồng nhất song song ta có p;; = p; cho tất cả các máy Nếu a, = Q, ta có các máy đồng dạng song song Xét thời gian xử lý p;; của công việc J; trên máy M;, ta có pi; = p;/s; với s; tương ứng là tốc độ của máy M; Nêu ay = R, ta có các may song song không liên quan Xét thời gian xử lý p;; của công việc J; trên may M;, ta có pi; = D¡/3s¿; với s;; tương ứng là tốc độ phụ thuộc vào công việc của may M; Nếu ai = PMPM, ta có các máy đa chức năng đồng nhất Nêu ay = QM PM, ta có các máy đa chức năng đồng dạng. e Nếu ơi € {G,X,O,J,F} , chúng ta có mô hình lập lịch da tác vụ, ứng với mỗi công việc J; là một tập các tác vu Ởjy, , Oin, Tất cả các máy đều là chuyên dụng, nghĩa là tất cả /„; đều là các tập có 1 phần tử Hơn nữa, giữa các tác vụ tồn tại các mối quan hệ thứ tự trước sau Nếu ai = G, ta có mô hình chung và được gọi là general shop Các bài toán khác như là job shops, flow shops, open shops, mixed shops là những trường hợp đặc biệt của mô hình chung general shop.
Nếu a, = J, ta có mô hình job shop Trong mô hình các tác vụ có mối quan hệ trước sau:
Thông thường, chúng ta giả định là ; A /¿;+1 với J = 1, ,n; — 1 Nếu một job shop có /; = /;+1, ta gọi là job shop có sự lặp lại may (job shop with machine repetition).
Nếu a, = Ƒ' ta có mô hình flow shop Day là trường hợp đặc biệt của mô hình job shop mà n; = m với i =1, ,n và = {Mj}, Vi = 1, ,n, V7 = 1, ,m.
Nếu ai = O, ta có mô hình open shop Mô hình open shop được định nghĩa giống như mô hình flow shop nhưng không có mối quan hệ trước sau giữa các tác vụ.
Nếu ai = X, ta có mô hình mixed shop Dây là mô hình kết hợp giữa 2 mô hình Job shop và open shop.
Một flow shop hoán vị là một flow shop mà các công việc được thực hiện theo cùng một thứ tự trên mỗi máy Nếu gặp vấn đề job shop, chúng ta có thé gan đ¿; bằng n; < 2 Trong trường hợp này tất cả các công việc đều có ít nhất 2 tác vụ Ví dụ hình 2.2 biểu diễn một lập lịch kha di cho trường hợp flow shop hoán vi. e Thông số ag biểu diễn số lượng máy được xem xét trong bài toán lập lịch Nếu ay là một số nguyên dương 1, 2 , thì a ký hiệu cho số lượng máy Nếu ag = k, với
Hình 2.2: Một lập lịch kha di của một flow shop hoán vi [1] k là một số tùy ý, có nghĩa là số lượng máy là một số cố định tùy ý Nếu số lượng máy là tùy ý, ta ký hiệu là ag = o.
Mục tiêu tối ưuTa ký hiệu thời gian hoàn thành công việc J; là C;, và hàm chi phí tương ứng là f;(C;).
Ngoài ra ta có thêm một số định nghĩa ứng với mỗi công việc Jj: ¡ != Œ; — d, lateness E; := maz{0, dị — C;} earliness T; := mmaz{0,C; — đ,} tardiness tơ
D; := |C; — d;| absolute deviation Dị := (C; — di)’ squared deviation Ù; := Ì Ci Š di, unit penalty
Có 2 dang hàm cơ ban tính tổng chi phí là:
Hàm mục tiêu cổ chai: fmar(C) := maz{ fi(C;)|¢ = 1, , n}
Hàm mục tiêu tông: nm
Bài toán lập lich là di tìm một lập lịch kha di sao cho cực tiểu hàm chi phí tổng cộng.
Nếu các hàm số ƒ; không được miêu tả, ta đặt + = faz hay y = >`ƒ; Tuy nhiên trong đa phần các trường hợp ta xem xét các hàm ƒ; đặc biệt.
CHƯƠNG 2 CƠ SỞ LÝ THUYET VỀ BÀI TOÁN LẬP LICH
Ham weighted (total) flow time va)
Trong các trường hợp này ta lần lượt ký hiệu y = Cran, y = >> C; và y = > uỚi.
Các ham mục tiêu khác phụ thuộc vào due date d; ứng với mỗi công việc J;.
Với mỗi hàm G; này, ta có 4 hàm mục tiêu có thé là
+ = max(G;), maz(w;GĂ), ằ Gi, ằ tuG,
Hàm mục tiêu cổ chai quan trọng nhất sau hàm „„„ là hàm maximize lateness may :— max L; Một số hàm mục tiêu khác pho biến được sử dung như là: S”7;, S1, này có thể kết hợp tuyến tính với nhau để tạo thành một hàm mục tiêu kết hợp Trong thực tế các hàm đa mục tiêu này cũng được nghiên cứu và xem xét rất nhiều.
Cong trình nghiên cứu liên quan
Chương này sẽ trình bày hai công trình có liên quan đến đề tài mà luận văn nghiên cứu Những đặc điểm bài toán và ý tưởng giải thuật được trình bày trong chương này sẽ là cơ sở để đưa ra ý tưởng cũng như cách giải quyết cho bài toán của luận văn.
Công trình thứ nhất là bài toán Ós||C„a„ Day là bài toán dạng Open shop được tác gia P.Brucker trình bay lại chỉ tiết trong [1].
Công trình thứ hai là bài báo khoa hoc "Scheduling Parallel Dedicated Machines WithSingle Server" của các tác gia Celia A Glass, Yakov M Shafransky, Vitaly A Strusevich được công bố vào năm 1999.
Bài toán O;||C,mz„Bài toán Open Shop là một trường hợp đặc biệt của bai toán General Shop, trong đó: e Mỗi công việc ¿ bao gồm m tác vụ O,; (7 = 1, ,m)vdi O;; được xử lý trên máy M,;. e Khong có thứ tự trước sau giữa các tac vu
Vấn đề của bài toán là tìm ra những thứ tự công việc (thứ tự các tác vụ của công việc) và thứ tự máy (thứ tự các tác vụ được xử lý trên cùng một máy) Ta đặt: e hai may là A và B e a;, b; là thời gian xử lý công việc thứ ¿ tương ứng trên máy A va máy B © C,n„„ = max{C;|¿ = 1, ,n}
Hàm mục tiêu của bai toán là Z = min Chas.
Theo chuẩn kí hiệu truyền thống lập lịch được đề xuất trong [5], bài toán này có dang Oz | Cmax
CONG TRÌNH NGHIÊN CUU LIÊN QUANGiải thuật đề xuấtGiải thuật được đề xuất trong [3] có độ phức tap O(n) như sau:
Ta xét hai trường hợp:
Trường hợp 1: a, = max{max{a;|t € I}, max{b;|i € J}}
Ta có một lập lịch tối ưu như sau: e đầu tiên tất cả các công việc trong tập /\{r} được xếp tùy ý trên máy A, sau đó đến tất cả các công việc trong tập J và cuối cùng là công việc r. e đầu tiên, công việc r được xếp trên máy B, sau đó tất cả các công việc trong tập I\{r} sẽ được xếp theo đúng thứ tự đã xếp trên máy A, cuối cùng tất cả các công việc trong tập J sẽ được xếp đúng như thứ tự trên máy A. e đầu tiên công việc r được xếp trên máy B và sau đó trên máy A trong khi tất cả các công việc khác được xếp đầu tiên trên máy A(xem hình 3.1 (a))
Hình 3.1: Một lap lich tối ưu của một bài toán O2||Cmax [1]
Trường hợp 2: b„ = mmaz{tmaz{q,|¿€ I}, max{b;|i € J}}
Trong trường hợp này ta phải hoán đổi thứ tự hai máy cho nhau và thay tập I bằng tập J và ngược lại, trước khi tuân theo luật như trên (hình 3.1 (b)).
Dé chứng minh tính đúng đắn của giải thuật trên ta chỉ cần xét trường hợp 1 (trường hợp 2 tương tu).
Cho G(S) là một mạng có chứa S Sau đó chỉ ra một trong những đường di sau đây là đường đi dài nhất trong G(S):
Trong đó a;(T\{r}), a;(¢ € J), là các đường nhỏ tương ứng.
Vì chiều dài của một trong ba đường này là cận dưới của bài toán open shop [1] nên giải pháp này là tối ưu. Để đơn giản hóa, chúng ta giả định rằng tất cả các công việc được liệt kê theo thứ tự trên máy A Vì 7\{r} = {1, , |Z] -— 1},7 = {HỊ n — 1}, vàr =n
Chỉ những đường di khác (i), (ii) và (iii) tồn tại trong G(S) là có dang:
Ta chỉ ra rằng không có đường nào trong các đường này dài hơn (i), (ii), (iii).
Nếu i € 7 thì: a n—-1 i-1 n—1 n j=l J=i j=l j=i j=l vì a; < mar{a;|j € I} = a„ < b„ Néui € J thì: a n—1 i n—1 nm
1=¿ j=l g=l j=l )—t = j=itl vi b¡ < max{b;|j € J} < maz{maz{a¡|i € I}, maa{b,|Jj € J}} = an.
Scheduling Parallel Dedicated Machines With Sin-Cho tập công viéc N = Jy, Jo, , Jn, các máy xử lý My, Mo, , Mj, va một server
M, Một tac vu O;; thể hiện công việc J, được xử lý trên máy M;, với thời gian setup
3; > 0 và thời gian xử ly ứ;; > 0 Khi quỏ trỡnh setup của tac vụ hoàn thành thỡ may sẽ bắt đầu quá trình xử lý tác vụ đó.
CHƯƠNG 3 CONG TRÌNH NGHIÊN CUU LIÊN QUAN
Tại mỗi thời điểm, mỗi công việc chỉ được gán tối đa cho một máy và mỗi máy chỉ được xử lý nhiều nhất một công việc Trong suốt quá trình setup tác vụ O,;, máy Ä; và server M, chỉ được phục vụ cho việc setup công việc J; trên máy M;.
Dây là mô hình các máy xử lý song song và chuyên dụng Mỗi công việc sẽ bao gồm một tac vụ, tập công việc được chia thành m tập con, Ny, No, , Nm, các công việc thuộc tập N; chỉ được xử lý trên máy M;.
Ví dụ sau thể hiện 3 máy song song chuyên dung |2]:
Job | Machine | Setup time | Processing time Ji M, Sy =1 Py =3 Jo Mp Soo = 2 Pop = 2 Jy M3 S33 = 2 P33 = 2
Mô hình may chuyên dung song song là mô hình single-stage ‘Trong các mô hình multistage như flow shop hoặc open shop, các công việc phải được xử lý trên tat ca các may M; Trong trường hợp flow shop, tất cả các công việc có cùng quy trình xử lý, chúng được xếp trên các máy theo cùng một thứ tự Ä⁄:, Mo, , M„ Dối với open shop, quy trình xử lý các công việc không được đưa ra sẵn mà phải lựa chọn, những công việc khác nhau được phép theo những quy trình khác nhau. Đối với lịch S, giá trị makespan được xác định bởi Cynax(S).
Trong phần còn lại ta sẽ làm việc thường xuyên với trường hợp hai máy Cho hai may A, B với a;, b; là thời gian xử lý cụng việc J; trờn mỏy A và B; ứ;,ỉ; là thời gian setup tương ứng Đối với bài toán hai máy chuyên dụng song song, ta xem tập N được chia thành hai tap con: N = N4U Ng, trong đó, những công việc thuộc tập con đầu tiên được xử lý trên máy A, còn công việc trong tập con thứ hai được thực hiện trên máy B.
Ta sử dụng những kí hiệu sau để chỉ những bài toán có số máy là biến m:
PD, S||Cmax — bài toán máy chuyên dụng song song với 1 server F} S||Cmax — bài toán flow shop với 1 server
@, S||Ciằax — bài toỏn open shop với 1 server F} SIno — uudait|Cma„ — bài toán flow shop không có thời gian đợi với 1 server O, SÌno — wait|Cmax — bài toán open shop không có thời gian đợi với 1 server
Nếu số máy cố định ta kí hiệu: P2, S||C,„„„ cho hai máy chuyên dụng song song với Ì server.
Ta xét bài toán PD, S||Ciuaz:
Cho S* là một lập lịch tối ưu cho bài toán PD, S||Ci„a„ Ta có:
Hình 3.2: Một lap lịch cho ba máy chuyên dung [2]
Vi server chỉ có thể thực hiện một setup tại mỗi thời điểm nên với mỗi máy Ä⁄;,1 a( Na) + 8(Nn)(4) Cinax(S") > maxr{ặN4) + ăNa), 8LNn) + bỆNn)}(5)
Với lich S, cho I4(S) là tổng thời gian rỗi của máy A, Ip(S) được xác định tương tự Ta
Cmax = mma#{ 8(Ng) + bỆNg) + Ip(S),a(Na) + (Na) + L4(5)} (6)
Ta sẽ xác định cận dưới mới bằng cách ước lượng tổng thời gian rỗi trên máy B, xem như các công việc của tap Ny được đánh số như sau: và các công việc của tập B:
Giải thuật 2 e Nếu a(Na) 3 a(Na), ỉđCNg) = ĐỆNg)(10) hoặc a(Na) < a(Na), BUN) < ĐỆNn) thi chạy giải thuật 1 để tìm ra lich Sp và dừng Ngược lại qua bước 3.
16 e Gia sử a(Na) > a(N4), (Ns) < b(Ng)(11)
— Cho 7a là danh sách ngẫu nhiên các công việc Ji, Jo, , Jp Nếu cần thiết, đánh số thứ tự các công việc theo (8) và tạo danh sách Lp = {J;‡1,Jp‡2, -;Jp‡ạ}:
— Bắt đầu một lịch bằng cách gán quá trình setup của công việc J,41 trên máy B tại thời điểm zero Loại J„+¡ khỏi danh sách Lz.
— Bat cứ khi nào ca máy Q € {A, b} va server ở trang thái sẵn sàng thì công việc kế tiếp trong danh sách Lg sẽ được gán cho máy Q Công việc được gan sẽ được loại khỏi danh sách Với công việc được gan, quá trình xử lý sẽ bắt đầu ngay sau khi setup Lap lại cho đến khi danh sách trống Gọi kết quả là Sp va dừng. Độ phức tap của giải thuật là O(nlogn).
Ta chứng minh tỉ số xấu nhất của giải thuật 2 không thể vượt quá 3/2 Xét ví dụ: Có 4 công việc được gan như sau: N4 = {JJ), Jo} và Ng = {Js, Ja} Thời gian setup và xử lý:
Qa, = lay =€,Q9 = ],dạ =€ b3 =€,b3 =1l+e,64=6€,b4 =1 với c là số dương và e < 1 Makespan của lịch tối ưu S* bằng 2 + 3c, tổng thời gian thực thi trên máy B Lịch này bố trí các công việc cho server theo thứ tự 4, 1, 3, 2 Các điều kiện ở bước 3 thỏa, vì vậy lich Sp có thể được tạo ra bằng cách sắp xếp các công việc theo thứ tự 3, 1, 2, 4, Cmax(So) = 3 + 3c Do đó Crax(So)/Cmar(S*) — 3/2 khi c + 0.
Đặc ta và mo hình hóa bài toánDac ta bài toánMột cửa hàng bán thức ăn nhanh có một lượng nhân viên phục vụ (server) chịu trách nhiệm: e Lấy nguyên liệu từ tủ chứa và đưa nguyên liệu đến máy chế biến e Khởi động máy chế biến e Trả món ăn cho khách khi hoàn thành đủ các món khách hàng yêu cầu
Mỗi lần di chuyển, nhân viên phục vụ mang được tối đa một lượng nguyên liệu đủ để chế biến lượng sản phẩm tối đa cho từng máy.
Chi phí về thời gian di chuyển của nhân viên và thời gian khởi động máy được tinh vào thời gian chế biến của các máy.
Cửa hàng có trang bị một số máy chế biến thức ăn (parallel dedicated machine) thuộc nhiều loại khác nhau.
Mỗi máy có công suất chế biến (số lượng sản phẩm tối đa cho một lần máy thực thi) và lượng nguyên liệu cần thiết để chế biến được một sản phẩm khác nhau.
Chi phí về thời gian cho mỗi lần chế biến món ăn của mỗi máy là một đại lượng nguyên, cố định (không phụ thuộc vào lượng nguyên liệu cung cấp cho máy) và biết trước.
Tại một thời điểm, một nhân viên chỉ khởi động tối đa được một máy, và một máy cũng chỉ cần một nhân viên phục vụ thực hiện trên đó.
Do đó, nếu có từ hai máy trở lên cùng hoàn thành lượt chế biến tại một thời điểm và nếu cùng một nhân viên phục vụ cho cả hai máy này thì ở thời điểm kế tiếp chỉ có một máy được khởi động, các máy còn lại phải chờ.
Tại mỗi thời điểm bất kì, cửa hàng có một lượng khách hàng (customer) chưa được giải quyết.
Mỗi (nhóm) khách hàng sẽ có một tập các loại yêu cầu Mỗi loại yêu cầu tương ứng với một lượng sản phẩm của một máy.
Trong phạm vi luận văn, bài toán sẽ chỉ xét đến trường hợp cửa hang chỉ có một server và xem như điều kiện hoạt động của server là lý tưởng, bỏ qua một số điều kiện khách quan có thể làm server bị gián đoạn công việc.
Mục tiêu đặt ra là tìm quyết định để có thể hoàn thành yêu cầu của tất cả các khách hàng trong thời gian sớm nhất có thể.
Định dạng nhập - xuấtDữ liệu đầu vào Mỗi mau ví dụ cần lập lịch được định nghĩa trong một tập tin nhập theo dang như sau (Hình 4.1):
File Edit Format View Help
Hình 4.1: Ví dụ về định dang thong tin ngõ nhập
Trong trường hợp này, nhà hàng chỉ có 1 phục vụ (single server, s = 1), 4 máy (m = 4) và 5 yêu cần cần xử lý (n = 5) Các thông tin liên quan đến các máy từ M1 đến M4 được xác định như sau Xét máy M; với i lần lượt bằng 1, 2, 3, và 4: e thời gian xử lý công việc được ghi chú bởi p; (processing time) có giá trị lần lượt tương ứng là 2, 3, 3, và ð; e số lượng sản phẩm tối đa có thể được thực hiện cùng lúc, được ghi chú bởi g;
(quantity) có giá trị lần lượt tương ứng là 3, 5, 2, 4;
DAC TẢ VÀ MÔ HÌNH HÓA BÀI TOÁNMo hình hóa bài toánn: số lượng khách hang (C1, C2, , Cn) m: số lượng máy (My, Mo, , Mm) pp: thời gian thực thi của máy M;, ® 7¿: công suất máy Ä⁄ © Gj số lượng sản phẩm của máy Ä⁄¿ mà khách hàng C; yêu cầu
Ngoài ra, ta định nghĩa thêm kí hiệu 7: thời gian thực hiện yêu cầu cuối cùng.
Một giải pháp dễ dang tìm được là lần lượt thực hiện các tác vụ của từng may M, (theo thứ tự giảm dần của pz, nghĩa là máy nao thực hiện lâu thì sẽ xử lý trước).
Do đó, cận trên 7 có thể được xác định bởi công thức sau:
7 = 1+ maxgepiynj{max{pe; mM} * | ((Ề —¡ Giz) /Te) | }:
Bién quyét dinh (Decision variables) Ta đặt các biến ra quyết định của bai toán như sau: © „„ € {0,1, , Xin}, với Xi, = min(qiz, re) (Vi € [1,n|, Vk € [1, m], Vt € |0,7]) máy Ä dang bat đầu chế biến ;„;¿ sản phẩm cho khách hàng C; tại thời điểm £ nếu và chỉ nếu yee > 0
Biến trung gian (Intermediate variables) Các biến trung gian sử dụng trong mô hình: © Xie, = 1 nếu va chỉ nếu máy M;, đang bắt đầu chế bién món ăn cho khách hàng C; tại thời điểm ¢ (Vi € [1,n], Vk € [1,m], Vt € [0,7]) và vy = 0 cho trường hợp khác. e 24; = 1 nếu va chỉ nếu nhân viên đang phục vụ cho việc khởi động máy M; (Vk € [1,m], Vt € [0,7]) va z„¿ = 0 cho trường hợp khác.
4.3.2 Rang buộc (Constraints) Dựa vào tinh chat của bài toán, các ràng buộc can biểu diễn là: e Đối với máy:
Tại mỗi thời điểm ¢ bất kỳ, tổng số sản phẩm giao cho máy Ä⁄¿ không vượt quá kha năng của máy đó.
Tổng số sản phẩm được giao cho máy M; phục vụ cho khách hàng C; bằng chính xác số sản phẩm tương ứng mà khách hàng C; yêu cầu. e Dối với nhân viên phục vụ:
Tại mỗi thời điểm # bất kỳ, nhân viên phục vụ chỉ có thể khởi động cho một máy.
Tai thời điểm ¢ bất kỳ, nhân viên sẽ khởi động máy Ä⁄¿ nếu tồn tại một khách hàng Œ;, cần phục vu.
Nhân viên phục vụ không thể khởi động máy M; trong khi máy này còn đang chế biến. e Bién z;¿; chỉ nhận giá trị bằng 1 khi va chỉ khi ;„; > 0.
CHƯƠNG 4 DAC TẢ VÀ MÔ HÌNH HÓA BÀI TOÁN
Chi tiết biểu diễn như sau: e Đối với máy:
Rang buộc 1 Tai mỗi thời điểm t bất kù, tổng số sadn phẩm giao cho máu M,, không vuot quá kha năng của may đó À Mike Š rà, Vk € [L, mÌ, Ve € [0,7]. i=1
Rang buộc 2 Tong số sản phẩm được giao cho máu M, phục vu cho khách hàng Œ; bằng chính xác số sản phẩm tương ứng mà khách hàng Ở; yêu cầu
Y ) uy = Gin, VE € [Lm], Vi € [Ln].
(=0 e Dối với nhân viên phục vụ:
Rang buộc 3 Tai mỗi thời điểm t bat ky, nhân uiên phục vu chi có thể khởi động cho mot may
Rang buộc 4 Tai thời điểm t bat ky, nhân uiên sé khởi động may M, nếu ton tại một khách hang C; can phục vu
Zkí = _ max Lint, VK € (1, m], Vt € [0,7]. i=1,2, ,
Rang buộc 5 Nhân uiên phục vu không thể khởi động may M;, trong khi máu nay còn đang chế biến t+pr—-1 ằ Zee 1,Vk € [1,m], Vt € [0,7 — px]. s=t
Rang buộc 6 Bién xix, chỉ nhận giá trị bằng 1 khi va chi khi yi > 0
Yire < TEVint, Vt € [1,n], Vk € [1, m], Vt € [0,7]
Like < Yert, Vi € [1,n], Vk € [1, m], Vt € [0,7].
4.3.3 Hàm mục tiêu (Objective funtion)
Dat C; là thời gian kết thúc phục vụ ở máy M,.
Ta có: Œ}, = , max _1w:( + pr) } Crnax — ~max { max {eq ứ +ỉz)}}
Mục tiêu của bài toán là cố gắng hoàn thành tất cả các yêu cầu của khách hàng trong khoảng thời gian nhỏ nhất, nghĩa là cần chọn lựa phương án lập lịch tối thiểu hóa giá trị Cmax: min Cinax
Chương 5 ee? © Đề xuất giải thuật cho bài toán
Trong một số trường hợp, thời gian để Gurobi Solver đưa ra đáp án tối ưu rất lớn, khi đó một giải thuật heuristic trở nên hữu ích hơn khi có thé đưa ra lời giải trong khoảng thời gian nhỏ hơn rất nhiều Phần lớn các trường hợp, giải thuật heuristic không đưa ra được lời giải tối ưu, tuy nhiên đáp án đó trong giới hạn có thể chấp nhận được thì giải thuật vẫn có tính hiệu quả về mặt thời gian.
Chương này sẽ trình bay hai giải thuật MTF (MaxTimeFirst) và MSF (MazSumFirst) nhằm giải quyết bài toán đặt ra Giải thuật tận dụng những đặc trưng về máy và yêu cầu của khách hàng nhằm giảm bớt không gian tìm kiếm, tiết kiệm chi phí về thời gian: e Dối với các máy trong bài toán đang xét, ta chỉ quan tâm đến thời gian thực thị, khả năng tối đa cho một lần sản xuất của máy và tổng lượng yêu cầu của khách hàng tương ứng với máy. e Đối với các khách hàng của bài toán, ta chỉ quan tâm đến yêu cầu tương ứng với các máy mà bỏ qua các đặc điểm liên quan khác. Ý tưởng của hai giải thuật là cố gắng đưa ra một thứ tự thực hiện trước sau cho các máy sao cho có thể giảm thiểu thời gian hoàn thành yêu cầu của khách hàng.
Do các máy chế biến món ăn là các máy chuyên dụng, hoạt động độc lập, song song và các món ăn chỉ được thực hiện qua một giai đoạn trên một máy do đó để có thể hạn chế thời gian hoàn thành yêu cầu ta cố gắng: e Cho các máy hoạt động liên tục e Nếu các máy không thể hoạt động liên tục thì cố gắng hạn chế thời gian rỗi giữa hai lượt chế biến của một máy.
Trước tiên ta sẽ thực hiện việc sắp xếp các máy và phân loại khách hàng Sau đó sẽ tiến hành lập lịch dựa trên các máy đã được sắp xếp và các khách hàng đã được phân loại.
Tương ứng với hai cách sắp xếp như đã nêu ta có hai giải thuật để giải quyết bài toán.
28 Để có thể so sánh độ hiệu quả của hai giải thuật MTF, MSF va Solver, dữ liệu đầu vào và kết quả sẽ được định dạng như phần 4.2.
Sap xêp các maye Các may được đánh số thứ tự tăng dần (My, Mo, , Mn) e Việc sắp xếp các máy sẽ dựa trên 2 tiêu chí:
— Thời gian thực thi tất cả các yêu cầu của từng máy
— Tong lượng yêu cầu tương ứng với từng máy
Tùy theo từng giải thuật cụ thể mà ta sẽ ưu tiên cho tiêu chí nào trước:
Giải thuật nay ưu tiên quan tâm tới thời gian thực thi của từng máy, do đó may nào có thời gian thực thi lớn hơn sẽ được xếp trước, sau đó sẽ giảm dần Nếu hai máy có cùng thời gian thực thi ta sẽ ưu tiên cho máy có tổng lượng yêu cầu lớn hơn.
Giải thuật MSF tận dụng đặc trưng về yêu cầu của khách hàng, các yêu cầu trên cùng một máy sẽ được tính gộp lại thành một yêu cầu có số lượng bằng tổng số lượng các yêu cầu liên quan Giải thuật này ưu tiên cho tổng lượng yêu cầu trên từng máy, do đó máy nào được khách hàng yêu cầu nhiều hơn sẽ được ưu tiên xếp trước, sau đó giảm dần Nếu hai máy có cùng tổng lượng yêu cầu ta sẽ ưu tiên cho máy có thời gian thực thi lớn hơn.
Phân loại khách hàng dựa theo yêu cầuĐối với các khách hàng của bài toán, ta chỉ quan tâm đến yêu cầu tương ứng với các máy Thực hiện phan loại khách hàng như sau: e Khách hàng được đánh số thứ tự tăng dần(ŒI, Co, , Cn) e Với mỗi máy chế biến ta có một danh sách khách hàng tương ứng Nghia là khách hàng nào có yêu cầu đối với máy M; thì sẽ được đưa vào danh sách khách hang của máy M, Thứ tự khách hàng khi đưa vào danh sách sẽ xếp tăng dần theo số thứ tu(ưu tiên những khách đưa yêu cầu trước).
Câu trúc dữ liệu5.3.1 Đối tượng Machine Đối tượng Machine chứa các thông tin liên quan đến máy bao gồm:
ĐỀ XUẤT GIẢI THUẬT CHO BÀI TOÁNĐối tượng CustomerĐối tượng Customer chứa các thông tin: e Số thứ tự khách hàng (S77) e Số lượng yêu cầu tương ứng với máy ?
Danh sách máy gồm m đối tượng là các máy đã được sắp xếp theo thứ tự (M1, Ms, „ M,„) Mỗi đối tượng là một Machine.
Danh sách khách hàng này sẽ bao gồm những khách hàng có cùng loại yêu cầu Mỗi đối tượng trong danh sách khách hàng là một Customer.
5.3.5 Mang chứa các danh sách khách hang
Tạo một mang gồm m danh sách khách hàng tương ứng với m máy.
Căn cứ vào danh sách yêu cầu của từng khách hàng, nếu khách hàng này có yêu cầu tương ứng với máy thứ ¿ (2 € [1, m]) thì ta đưa khách hàng này vào danh sách khách hang thứ ¿.
Giải thuật MTF (Max TimeFirst)Giải thuật MTF được đề xuất nhằm tim ra lời giải kha di cho bài toán Dau vào là tập các máy đã được sắp xếp và tập các yêu cầu của khách hàng đã được phân loại theo may tương ứng.
Giải thuật MTF được biểu diễn chi tiết như sau:
Algorithm 1 Giải thuật MTF 1: procedure MTF (M,C) > M: danh sách các máy, C: mang chứa các danh sách khách hàng 3 i=0,t—=0,obj=0 3: while 1⁄! = @ do A: if M{i| dang rỗi then 5: Cập nhật giá trị các thuộc tính cho Mi]
6: if obj < Mi] ft then > obj: giá tri mục tiêu
8: end if 9: Lay danh sách khách hàng thứ 7 tương ứng với máy 2 10: Gọi service(1[¿], C{7])
11: if C7] = ỉ then 12: Xóa Mi 13: end if 14: else 15: if M.Count >72 then 16: ~=i1+1
17: else 18: t=t+1 19: end if 20: for | € [1,m] do 21: if t = Ml) ft then 22: M{i| flag = false 23: Lưu lại 1 nhỏ nhất có cờ là rỗi 24: end if
25: end for 26: end if 27: t=t+1 28: end while 29: In giá trị mục tiêu obj 30: end procedure
Trong giải thuật 1 ta xét cho đến khi danh sách các máy trống (bước 3) thì dừng Từ bước 17 đến bước 22, cập nhật trạng thái cờ cho các máy, lưu lại máy đầu tiên trong danh
CHUONG 5 ĐỀ XUẤT GIẢI THUẬT CHO BÀI TOÁN sách có cờ rỗi để ưu tiên thực hiện ở thời điểm kế tiếp Nếu máy nào đã thực hiên xong tất cả các yêu cầu của khách hàng, ta loại máy đó khỏi danh sách (từ bước 8 đến bước 10).
Thủ tục service dùng để hỗ trợ giải thuật MTF được thể hiện như bên dưới:
Algorithm 2 Thu tục service 1: procedure service(MC,CC) 2: k=0
3: while CC 4 ỉ và MŒ.q > CC|F].uc do — > Khả năng của mỏy lún hơn yờu cầu của khách hàng thứ k
4: Cập nhật lại kha năng tam thời của may 5: Remove khách hang & khỏi danh sách 6: if CC = ỉ và MC.q < CC|R]|.uc và MC.q # 0 then > Khả năng của mỏy nhỏ hơn yêu cầu của khách hàng thứ &
7: Cập nhật lại yêu cầu của khách hàng 8: if CC|k| = 0 then
10: end if 11: end if 12: Gan kha năng san xuất tối da của máy về như ban đầu 13: end while
Giải thuật MSF (MaxSumFirst)Giải thuật MarSumFirst (MSF) là một biến thé của giải thuật MTF trong đó ta sẽ sắp xếp các máy dựa vào tổng lượng yêu cầu của khách hàng Nghĩa là máy nào có lượng yêu cầu nhiều hơn sẽ được xếp trước Nếu hai máy có cùng tổng lượng yêu cầu thì ta sẽ căn cứ vào thời gian thực thi (processing time), máy nào có thời gian thực thi lớn hơn sẽ được ưu tiên xếp trước Cách biểu diễn giải thuật MSF giống như cách biểu diễn giải thuật MTF.
Ví dụ minh họaDữ liệu đầu vào Nha hàng chỉ có 1 phục vụ (single server, s = 1), 3 máy (mm = 4) và 5 yêu cần cần xử lý (n = 5) Các thông tin liên quan đến các máy từ M1 đến M3 được xác định như sau.
Xét máy Ä; với 2 lần lượt bằng 1, 2 và 3:
32 e thời gian xử lý công việc được ghi chú bởi p; (processing time) có giá trị lần lượt tương ứng là 3, 5, 2; e số lượng sản phẩm tối đa có thể được thực hiện cùng lúc, được ghi chú bởi g;
(quantity) có giá trị lần lượt tương ứng là 4, 4, 3; e thời gian bắt đầu có thể thực thi a; (available time) đều là 0.
Các yêu cầu của khách hàng cho các máy liên quan như sau:
Cy | Ca | C3 | Ca} Cs |p|gị|a
Dữ liệu đầu ra Kết quả thu được khi thực thi theo giải thuật 7P và MSF được trình bày trong giản đồ Gantt bên dưới đây (Hình 5.1 và Hình 5.2).
Hình 5.1: Ví du các công việc trên các khung thời gian rời nhau theo giải thuật MTF
CHUONG 5 ĐỀ XUẤT GIẢI THUẬT CHO BÀI TOÁN
Hình 5.2: Vi dụ các công việc trên các khung thời gian rời nhau theo giải thuật MSF
JjJyJ3J4 Đánh giá thực nghiệm Để kiểm tra tính hiệu quả của mô hình M/LP và giải thuật MTF, MSF ta sẽ tiến hành thực nghiệm trên tập dữ liệu ngẫu nhiên.
Chương này sẽ trình bày chi tiết các kết quả đạt được và cách đánh giá dựa trên mô hình toán học được trình bày trong phan 4.3 và giải thuật MTF, MSF được trình bay trong chương 5, từ đó rút ra được kết luận đóng vai trò hỗ trợ ra quyết định cho người dùng. Để hiện thực mô hình M/LP ta sử dụng phần mềm Gurobi Solver Day là một phần mềm thương mại hỗ trợ người dùng tìm ra lời giải tối ưu thông qua các thuật toán đã được cài đặt sẵn Gurobi Solver khong hạn chế về kích thước mô hình và số biến, rất tiện dụng khi cung cấp nhiều API khác nhau có thể tích hợp và sử dụng chung với các loại ngôn ngữ lập trình phổ biến hiện nay như: Java, C#, C+-
Nội dung thực nghiệm bao gồm: e Dánh giá độ hiệu quả của hai giải thuật được đề xuất trong chương 5 thông qua giá trị mục tiêu tìm được so với giá trị tối ưu tim được từ Gurobi Solver (nếu có) hoặc so VỚI giá trị chặn dưới. e So sánh thời gian tìm ra giá trị nghiệm của hai giải thuật đề xuất va thời gian thực thì của Gurobi Solver.
Môi trường thực nghiệmThực nghiệm được tiễn hành trên máy tính có cấu hình: Intel Core 2Duo CPU T6500 2.1Ghz, Ram 4Œ, hệ điều hành Windows7 - 32 bit.
DANH GIÁ THUC NGHIEMDi liệu thu nghiệm sinh ra do mô phỏngDữ liệu được phát sinh ngẫu nhiên như sau:
Với mỗi cặp giá tri (m,n) = (số máy, số khách yêu cầu), ta cần phát sinh các dif liệu liên quan bao gồm: e Thời gian xử lý p; của từng máy được tạo ngẫu nhiên theo phân phối Poisson trong khoảng [1,10]. e Khả năng sản xuất tối đa g; của từng máy được tạo ngẫu nhiên theo phân phối Poisson trong khoảng [1,10]. e Số lượng sản phẩm yêu cầu của khách hàng Ở; ứng với máy M;, được tạo ngẫu nhiên theo phân phối Poisson trong khoảng [0,10].
Với mỗi cặp (m,n), 10 bộ dữ liệu được tạo ra, sau đó được thực thi bởi Gurobi Solver và giải thuật MTF, MSF kết quả trích xuất bao gồm: e Thời gian thực thi chương trình e Giá trị nghiệm
Cách đánh giá kết quảThời gian thực thi Gurobi Solver trên một tập yêu cầu được giới hạn khi thỏa các điều kiện sau: e Thời gian thực thi đã đủ 15 phút (900 giây). e Tìm được nghiệm tối ưu.
Giá trị mục tiêu tìm được từ Gurobi Solver được xem là cơ sở để đánh giá độ tốt của giải thuật Tuy nhiên việc sử dụng Gurobi Solver dẫn đến thời gian thực thi tăng theo hàm mũ Trong một số trường hợp, thời gian để Gurobi Solver đưa ra lời giải tối ưu quá lớn.
Khi đó ta sẽ tiến hành so sánh kết quả của giải thuật với giá trị chặn dưới của ham mục tiêu Giá trị nghiệm càng gần với chặn dưới càng tốt.
Kết quả thực nghiệmHình 6.1, 6.3, 6.5, 6.7 biểu diễn kết quả thực nghiệm liên quan tới 2 máy, 3 máy, 4 máy và 5 máy Với mỗi trường hợp máy ta có 5 trường hợp khách hàng với số lượng: 10, 20, 30, 50, 100, 200 Như vậy ta có tổng cộng 240 trường hợp, mỗi trường hợp ta có 10 bộ dit liệu ngẫu nhiên.
Kết quả được thể hiện trên biểu đồ như hình 6.2 sau:
Số máy - Số khách | Gurobi Solver | MTF | MSF | Lower Bound 2- 10 34.4 30 37 34 2 - 20 N/A 232.7 | 236.8 230.8 2- 30 N/A 258 254.3 244.1 2- 50 N/A 437.6 | 437.8 426 2 - 100 N/A 851.3 | 909.4 814.4 2 - 200 N/A 1496.9 | 1598.0 1429.1
GIA TRI NGHIEM TRUNG BÌNH TREN 2 MAY
Hình 6.1: So sánh kết quả giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF va Lower Bound với số may là 2
Hình 6.2: Biểu đồ so sánh kết quả giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF va Lower Bound với số máy là 2
Số máy - Số khách | Gurobi Solver | MTF | MSF | Lower Bound ở - 10 81.7 83.7 92.7 81.7 3 - 20 N/A 192.3 | 206.8 180.5 3 - 30 N/A 465.6 | 478.4 465 ở - O0 N/A 392.4 | 390.6 386.7 3 - 100 N/A 881.3 | 918.4 865.6 3 - 200 N/A 1494 | 1546.5 1462.9
Hình 6.3: So sánh kết quả giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF va Lower Bound với số máy là 3
CHUONG 6 DANH GIÁ THUC NGHIEM
GIA TRI NGHIEM TRUNG BÌNH TREN 3 MAY
Hình 6.4: Biểu đồ so sánh kết qua giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF va Lower Bound với s6 máy là 3
Số máy - Số khách | Gurobi Solver | MTF | MSF | Lower Bound 4- 10 N/A 189.5 | 192.8 188.8 4- 20 N/A 255.3 | 267.0 237.5 4- 30 N/A A67.7 | 472.7 459.9 4- 50 N/A 916.6 | 923.8 397.6 4 - 100 N/A 1971.2 | 2005.8 1917.9 A - 200 N/A 3246.5 | 3390.0 3175.6
Hình 6.5: So sánh kết quả giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF va Lower Bound với số may là 4
GIA TRI NGHIEM TRUNG BÌNH TREN 4 MAY
Hình 6.6: Biểu đồ so sánh kết quả giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF va Lower Bound với sỗ máy là 4
Số máy - Số khách | Gurobi Solver | MTF | MSF | Lower Bound 5 - 10 N/A 160 173.1 150.6 5 - 20 N/A 251.3 | 255.5 243.3 5 - 30 N/A 300.1 | 341.3 338.9 5 - 00 N/A 840.7 | 832.2 812.8 5 - 100 N/A 1385.1 | 1376.5 1310.7 9 - 200 N/A 2382.9 | 2451.1 2235.1
Hình 6.7: So sánh kết qua giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF wva Lower Bound với số máy là 5ð
CHUONG 6 DANH GIÁ THUC NGHIEM
GIA TRI NGHIEM TRUNG BÌNH TREN 5 MAY
Hình 6.8: Biểu đồ so sánh kết quả giá trị nghiệm trung bình giữa Gurobi Solver, MTF, MSF va Lower Bound với sỗ máy là 5
Từ các bảng trên, ta thấy: e Chỉ có 4 trường hợp chiếm 8.3% tổng số trường hợp là Gurobi Solver có thể tim ra nghiệm tối ưu Khi lượng khách hàng từ khoảng 20 người trở lên hoặc số máy từ 4 máy trở lên thì Gurobi Solver sẽ phải mat rất nhiều thời gian để tìm ra nghiệm.
Trong khi đó MTF và MSF luôn cho ta kết quả là một nghiệm kha di trong moi trường hợp. e Có đến = trường hợp chiếm 79% mà giá trị nghiệm được tìm bởi giải thuật MTF tốt hơn giải thuật MSF Trong đó có đến s22 kết quả thu được từ MTF có giá tri bằng với chặn dưới hàm mục tiêu chiếm tỉ lệ 51%, trong khi kết quả thu được từ MSF là chiếm tỉ lệ là 33%.
Trong kỹ thuật lập lịch, thời gian thực thi giải thuật đóng vai trò rất quan trọng Thời gian thực hiện lập lịch càng nhỏ càng tốt Các hình sau thể hiện kết quả so sánh thời gian thực thi giữa Gurobi Solver, MTF và MST.
Số máy | Số khách | Gurobi Solver | MTF | MSF
Hình 6.9: So sánh kết quả thời gian thực thi trung bình giữa Gurobi Solver, MTF, MSF trên 2 may
Số máy | Số khách | Gurobi Solver | MTF | MSF 3 10 672.73 0.021 | 0.021 3 20 >900 0.037 | 0.036 3 30 >900 0.059 | 0.056 3 50 >900 0.076 | 0.098 3 100 >900 0.125 | 0.170 3 200 >900 0.261 | 0.293
Hình 6.10: So sánh kết quả thời gian thực thi trung bình giữa Gurobi Solver, MTF, MSF trên 3 may
Số máy | Số khách | Gurobi Solver | MTF | MSF 4 10 >900 0.027 | 0.036 4 20 >900 0.051 | 0.066 4 30 >900 0.069 | 0.058 4 90 >900 0.100 | 0.115 4 100 >900 0.19 10.212 4 200 >900 0.393 | 0.412
Hình 6.11: So sánh kết quả thời gian thực thi trung bình giữa Gurobi Solver, MTF, MSF trên 4 may
CHUONG 6 DANH GIÁ THUC NGHIEM
Số máy | Số khách | Gurobi Solver | MTF | MSF i) 10 >900 0.034 | 0.044 O 20 >900 0.047 | 0.056 i) 30 >900 0.075 | 0.103 i) 50 >900 0.142 | 0.129 i) 100 >900 0.228 | 0.262 O 200 >900 0.378 | 0.390
Hình 6.12: So sánh kết quả thời gian thực thi trung bình giữa Gurobi Solver, MTF, MSF trên 5 may
Quan sát từ các hình 6.9, 6.10, 6.11, 6.12 ta nhận thấy: e Thời gian thực thi của giải thuật MTF và MSF nhỏ hơn rất nhiều lần so với thời gian thực thi của Gurobi Soluer Cả hai giải thuật đưa ra lời giải gần như ngay lập tức. e Số trường hợp mà thời gian thực thi của giải thuật MTF nhỏ hơn giải thuật MSF chiếm 62.5% và sự chênh lệch về thời gian thực thi giữa hai giải thuật này không đáng kế.
Kết luậnMột số nhận xét từ kết quả thực nghiệm: e Giải thuật MTF và MSF có khả năng thực thi trên nhiều bộ dữ liệu khác nhau với thời gian tính toán nhỏ hơn rất nhiều lần so với việc thực thi bằng Gurobi Soluer. e Xét về độ tốt của lời giải, mặc dù trong nhiều trường hợp, lập lịch mà giải thuật MTF và MSF đưa ra không phải là lập lịch tối ưu Tuy nhiên, giá trị mục tiêu lại tương đối tốt so với giá trị mà Gurobi Solver đưa ra hoặc so với chặn dưới.
Như vậy: e Trong trường hợp cần phải tìm ra lời giải tối ưu mà không quan tâm đến thời gian thực thi, ta có thể sử dụng các solver có sẵn như Gurobi, CBC, để giải dựa trên mô hình toán học của bài toán. e Con trong những trường hợp người dùng cần đưa ra một lời giải đủ tốt trong khoảng thời gian nhỏ nhất có thể thì giải thuật MTF và MSF có thể đáp ứng được điều này. e Trong đa số các trường hợp, giải thuật MTF cho ra lời giải tốt hơn giải thuật MSF.
Kết luậnLuận văn đã đề cập đến một bài toán thực tế về lập lịch cho cửa hàng thức ăn nhanh.
Từ những đặc tả về bài toán, ta đã xây dựng được mô hình toán học và dùng Gurobi Soluer để giải bài toán này.
Tuy nhiên, khi sử dụng Gurobi Solver giải bài toán, ta gặp vấn đề về thời gian thực thi Đa số các trường hợp phải tốn rất nhiều thời gian dé Solver có thể tìm ra lời giải Để giải quyết khó khăn khi thời gian thực thi tăng theo hàm số mũ, giải thuật MTF và MSF đã được đề xuất nhằm tìm ra lời giải khả dĩ cho bài toán với thời gian thực thi giảm đáng ké so với sử dung Solver trong khi giá trị nghiệm nằm trong khoảng chấp nhận được.
Luận văn cũng đã đánh giá các thực nghiệm về so sánh độ hiệu quả cũng như giá trị mục tiêu và thời gian thực thi giữa Gurobi Solver, MTF và MSF Kết quả cho thấy giá trị mục tiêu của lời giải tìm được bằng MTF và MSF nằm trong khoảng chênh lệch cho phép so với giá trị mục tiêu được tìm bởi Gurobi Solver.
Những đóng góp của luận văn: e Trình bày một cách có hệ thống kiến thức tổng quan về lập lịch cũng như ứng dụng vào trong bài toán thực tế nhằm giảm thiểu thời gian phục vụ khách hàng. e Giới thiệu phần mềm Gurobi Solver dùng để giải bài toán tối ưu dựa trên mô hình toán học của bài toán. e Phần đánh giá so sánh giữa việc sử dung Gurobi Solver, MTF và MSF tạo cơ sở cho việc hỗ trợ ra quyết định đối với người dùng.
Tuy nhiên, do giới hạn thời gian thực hiện tương đối ngắn nên luận văn vẫn còn một số hạn chế: e Do không có điều kiện nên giải thuật chỉ được thực nghiệm trên tập dữ liệu ngẫu nhiên tương đối đơn giản.
TONG KETHướng phát triểnHướng thứ nhất: Mở rộng bài toán e Thêm một số đặc tả về máy như:
— Mỗi máy cần có một khoảng thời gian để khởi động khác nhau, khi đó mỗi máy có thêm một đại lượng mới là start time.
— Quy trình chế biến sẽ trải qua hai hay nhiều giai đoạn mới cho ra món ăn hoàn chỉnh phục vụ khách hàng trong đó giai đoạn đầu bắt buộc phải thực hiện trên máy chuyên dụng. e Thêm đặc tả về khách hàng: Đối tượng khách hàng sẽ được phân loại theo độ tuổi như: Người lớn tuổi, Thanh niên, Trẻ em, Với mỗi loại đối tượng khách hàng ta có thời gian chờ tối đa tương ứng Nếu thời gian khách hàng phải chờ để được đáp ứng yêu cầu lớn hơn thời gian chờ tối đa, khách hàng sẽ bỏ đi.
Hướng thứ hai: Cải tiễn giải thuật e Trong quá trình phục vụ khách hàng, nếu có thêm một lượng khách hàng mới vào trong khi lượng yêu cầu trước đó vẫn chưa thực hiện xong ta có thể tiến hành lập lịch lại (Rescheduling). e Két hợp một số giải thuật khác như: giải thuật di truyền, Tabu Search, để cải tiến giải thuật đã có.
P Brucker, “Scheduling algorithms”, 5th edition, Springer-Verlag, Berlin, Germany, 2007.
Glass, Celia A., Shafransky, Yakov M and Strusevich, Vitaly A (2000) “Scheduling for parallel dedicated machines with a single server”, Naval Research Logistics, 47 (4). pp 304-328.
T Gonzalez and 5S Sahni “Open shop scheduling to minimize finish time”, J Assoc.
Field, A., McKnew, M., Kiessler, P., 1997.“ A simulation comparison of buffet restau- rants—applying Monte Carlo modeling’, Cornell Hotel and Restaurant Administra- tion Quarterly 38 (6), 68-79.
R.L Graham, E.L Lawler, J.K Lenstra and A.H.G Rinnooy Kan, “ Optimization and approximation in deterministic sequencing and scheduling: a survey”, Annals of Discrete Mathematics, vol 5, pp 287-326, 1979.
Min, Hokey, “A Multiobjective Retail Service Location Model for Fastfood Restau- rants”, OMEGA, Vol 15, No 5, (1987): 429-441.
Thompson, G.M., 2002 “Optimizing a restaurant’s seating capacity”, Cornell Hotel and Restaurant Administration Quarterly 43 (4), 48-57.