1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận án tiến sĩ Khoa học máy tính: Một số phương pháp tiếp cận cho bài toán lập lịch cá nhân

209 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRANG HỒNG SƠN

MỘT SỐ PHƯƠNG PHÁP TIẾP CẬNCHO BÀI TOÁN LẬP LỊCH CÁ NHÂN

LUẬN ÁN TIẾN SĨ

TP HỒ CHÍ MINH - NĂM 2022

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRANG HỒNG SƠN

MỘT SỐ PHƯƠNG PHÁP TIẾP CẬNCHO BÀI TOÁN LẬP LỊCH CÁ NHÂN

Chuyên ngành: Khoa học máy tínhMã số chuyên ngành: 62480101

Phản biện độc lập: PGS TS Nguyễn Tuấn ĐăngPhản biện độc lập: PGS TS Huỳnh Trung Hiếu

Phản biện: PGS TS Đỗ Thanh NghịPhản biện: PGS TS Nguyễn Đình ThuânPhản biện: PGS TS Lê Hoàng Thái

NGƯỜI HƯỚNG DẪN:1 PGS TS Trần Văn Lăng

2 PGS TS Huỳnh Tường Nguyên

Trang 4

TÓM TẮT LUẬN ÁN

Mục tiêu của việc lập lịch công việc cá nhân là mong muốn sắp xếp các công việc cần xử lývào những khung thời gian làm việc trống có sẵn của bản thân sao cho hiệu quả nhất Các ứngdụng quản lý công việc cá nhân hiện tại như Microsoft To-Do, Google Tasks, Apple Reminders,Evernote, nTask, Todoist, chỉ cung cấp môi trường trực quan giúp mọi người tự sắp xếp cáccông việc của mình một cách thủ công, và chúng ta thường rất vất vả vì điều đó Một khó khănnữa là đôi khi các công việc này đòi hỏi thời gian xử lý rất lớn nên khó để có thể tìm kiếm vàsắp xếp các công việc này vào các khung thời gian làm việc phù hợp Tuy nhiên khác với máymóc là các công việc của con người thường có thể chia nhỏ thành nhiều phần để có thể linhđộng sắp xếp chúng vào các khung thời gian làm việc khác nhau Có một thực tế là nếu cáccông việc được chia quá nhỏ thì việc xử lý lại không có hiệu quả như mong đợi vì các công việcnày đã bị phân mảnh quá nhiều và chúng ta phải tốn thời gian cho việc khởi động lại của từngcông việc nhỏ Vì vậy cần phải xem xét đến ràng buộc "các công việc không được chia nhỏ hơnmột ngưỡng xác định" để việc xử lý công việc được hiệu quả hơn, và ràng buộc này lại thườngkhông được đề cập đến trong các bài toán lập lịch hiện nay Cho nên luận án này tập trung giảiquyết bài toán lập lịch công việc cá nhân với hai ràng buộc đó là các công việc có thể chia nhỏnhưng không được nhỏ hơn một ngưỡng xác định và các công việc chỉ được sắp xếp vào nhữngkhung thời gian làm việc.

Với chỉ một trong hai ràng buộc này thì bài toán có thể xác định được lời giải tối ưu mộtcách dễ dàng Chẳng hạn nếu chỉ xem xét ràng buộc là "các công việc có thể chia nhỏ nhưngkhông được nhỏ hơn một ngưỡng xác định" thì lời giải tối ưu đạt được bằng cách chia nhỏ hếttất cả các công việc bằng với ngưỡng chặn dưới xác định này, sau đó lần lượt sắp xếp các côngviệc đã chia nhỏ này lên trục thời gian Ngược lại nếu chỉ xem xét ràng buộc là "các công việccó thể chia nhỏ và được sắp xếp vào những khung thời gian làm việc" thì lời giải tối ưu đạt đượcbằng cách chia nhỏ hết tất cả các công việc với đơn vị thời gian là 1, sau đó lần lượt sắp xếp cáccông việc đã chia nhỏ này vào những khung thời gian làm việc Tuy nhiên nếu xem xét cả hairàng buộc cùng một lúc thì bài toán này trở thành bài toán thuộc lớp N P -khó mạnh (stronglyN P -hard).

Bài toán lập lịch công việc cá nhân này có thể áp dụng trên một người (personal scheduling

Trang 5

problem) hoặc trên một nhóm nhiều người (teamwork scheduling problem) Đối với từng bàitoán lập lịch cụ thể, luận án đã trình bày các giải pháp và hướng tiếp cận để giải quyết bài toánbao gồm: (1) đặc tả bài toán thông qua phát biểu mô tả bài toán, trình bày các ký hiệu sử dụngtrong bài toán, cũng như đưa ra ví dụ minh họa để có thể hiểu rõ bài toán, , (2) các phươngpháp tiếp cận để giải quyết bài toán bao gồm xác định tính N P -đầy đủ của bài toán, xem xétmột số trường hợp đặc biệt, đưa ra một số tính chất trong cấu trúc của một lời giải tối ưu, đề xuấtphương pháp chính xác dựa trên mô hình Mixed-Integer Linear Programming (MILP) và cácphương pháp xấp xỉ như heuristic, metaheuristic, matheuristic, , và (3) kết quả thực nghiệmđể đánh giá các phương pháp đề xuất trên cả hai bộ dữ liệu đầu vào có kích thước nhỏ và lớn,để từ đó đề xuất lựa chọn phương pháp hiệu quả đối với từng loại dữ liệu đầu vào khác nhau.

Trang 6

The objective of personal scheduling aims to assign the jobs into available time windows sothat jobs can be handled in the most effective way Current personal task management applica-tions such as Microsoft To-Do, Google Tasks, Apple Reminders, Evernote, nTask, Todoist, only provide a visual environment that helps us to manually organize jobs, and we often strugglebecause of that Another issue is that sometimes these jobs require a lot of processing time, soit is difficult to determine and assign these jobs into suitable available time windows However,unlike machines, personal jobs can often be split into a lot of parts so that they can be flexiblyassigned in different available time windows It is possible that the jobs are split into sub-jobswith “too small size”, the scheduling result is not as effective in many practical situations asexpected since these jobs are too fragmented, and it should be spent more time on resumingthe sub-jobs It is necessary, consequently, to consider the constraint that "the jobs cannot besplit less than a certain threshold" for a more efficient result, and this constraint is often notaddressed in literature scheduling problems Therefore, this thesis focuses on methodology andseveral approaches for solving the personal scheduling problem with two constraints that are thejobs that can be split but not less than a certain threshold and jobs are only assigned in availabletime windows.

With only one of these two constraints, the problem can easily determine the optimal lution For example, if we consider the constraint of "the jobs that can be split but not lessthan a certain threshold", then the optimal solution is achieved by splitting all jobs equal to thisspecified threshold and then assigning these sub-jobs into the time axis Otherwise, when onlyconsidering the constraint of "the jobs can be split and assigned in available time windows", theoptimal solution is achieved by splitting all jobs into units of time is 1, and then assigning thesesub-jobs into available time windows However, if both constraints are considered at the sametime, this problem becomes a strongly N P -hard problem.

so-This personal scheduling problem can be applied to one person (personal scheduling lem) or multiple people (teamwork scheduling problem) For each specific scheduling problem,the thesis has presented almost necessary approaches related, including (1) specification of theproblem through problem statements, presentation of notations used in the problem, as well as

Trang 7

prob-giving illustrative examples to be able to understand the problem, , (2) approaches for solvingthe problem include determining the N P -completeness of the problem, considering some spe-cial cases, giving some properties in the structure of an optimal solution, proposing the exactmethod based on Mixed-Integer Linear Programming (MILP) model and approximate methodssuch as heuristic, metaheuristic, matheuristic, , and (3) the experimental results to evaluatethe proposed methods on both input datasets which are small samples and large samples, fromwhich to propose an effective method for selection with different input dataset types.

Trang 8

LỜI CÁM ƠN

Tôi xin chân thành cám ơn trường Đại học Bách Khoa, Đại học Quốc Gia Thành phố Hồ ChíMinh, là đơn vị đào tạo đã tạo mọi điều kiện và môi trường nghiên cứu thuận lợi cho tôi thựchiện luận án và trường Đại học Hoa Sen, là đơn vị công tác đã hỗ trợ tôi rất nhiều trong suốtthời gian qua.

Em xin được gởi lời tri ân sâu sắc nhất đến thầy Trần Văn Lăng và thầy Huỳnh Tường Nguyênđã tận tình hướng dẫn, định hướng và động viên em trong suốt thời gian học tập, nghiên cứu vàthực hiện luận án này.

Em xin gởi lời cám ơn tới các thầy cô trong khoa Khoa học và Kỹ thuật Máy tính, và đặcbiệt là thầy Trần Văn Hoài, cô Lê Thanh Vân, thầy Nguyễn Đức Dũng, thầy Nguyễn Hồ MẫnRạng, thầy Phạm Hoàng Anh đã có những đóng góp quý báu trong những buổi báo cáo chuyênđề và báo cáo học thuật.

Em cũng xin cám ơn thầy Ameur Soukhal đã cho em có cơ hội được học tập, nghiên cứu tạiLaboratoire d’Informatique thuộc trường University Franc¸ois-Rabelais of Tours và trải nghiệmcuộc sống trong bốn tháng tuyệt vời ở thành phố thanh bình Tours, cộng hòa Pháp.

Tôi cũng xin gởi lời cám ơn tới bạn Nguyễn Văn Huy là cộng sự cùng nhóm nghiên cứu đãhỗ trợ tôi rất nhiều trong các công trình công bố khoa học của nhóm chúng tôi.

Cuối cùng con muốn bày tỏ lòng biết ơn sâu sắc nhất đến ba, mẹ, vợ và hai con trai thânyêu luôn là hậu phương vững chắc nhất, là điểm tựa để mỗi ngày tiếp thêm nghị lực giúp con cóthể hoàn thành tốt luận án này.

Tp Hồ Chí Minh, ngày tháng nămTrang Hồng Sơn

Trang 9

MỤC LỤC

1.1 Giới thiệu chung 1

1.2 Động cơ nghiên cứu 4

1.3 Mục tiêu, phạm vi và đối tượng nghiên cứu 6

1.4 Nội dung công việc của luận án 6

1.5 Cấu trúc luận án 7

Chương 2Tổng quan về bài toán lập lịch công việc92.1 Tình hình nghiên cứu 9

2.2 Giới thiệu bài toán lập lịch công việc 15

2.3 Các phương pháp giải quyết 26

4.2 Bài toán ràng buộc deadline 105

4.3 Bài toán lập lịch công việc nhóm 123

4.4 Kết chương 142

Trang 11

DANH MỤC HÌNH ẢNH

2.1 Các hướng nghiên cứu và các ràng buộc liên quan 9

2.2 Sơ đồ Gantt theo hướng máy (a) và hướng công việc (b) [10] 15

2.3 Mối quan hệ giữa các hàm mục tiêu 18

2.4 Một lịch trình khả thi cho bài toán 1 20

2.5 Dữ liệu đầu vào cho bài toán 2 20

2.6 Một lịch trình khả thi cho bài toán 2 20

2.7 Một lịch trình khả thi với 3 − batches cho bài toán 3 21

2.8 Bài toán quyết định 21

2.9 Bài toán tối ưu 21

2.10 P và NP 23

2.11 P và NP và NP-đầy đủ 24

2.12 Sơ đồ quan hệ của 6 bài toán NP-đầy đủ 24

2.13 P và NP và NP-đầy đủ và NP-khó 25

2.14 Không gian nghiệm với 2 ràng buộc (2.3, 2.4) 30

2.15 Lời giải tối ưu x∗ = (2.25, 3.75) 30

2.16 Thêm ràng buộc mới 2x1+ 3x2 ≤ 15 31

2.17 Nhát cắt bỏ đi các lời giải không nguyên 31

2.18 Lời giải tối ưu x∗ = (3, 3) 31

2.19 Một lịch trình tạm thời tại nút (3,*,*,*) 33

2.20 Cây nhánh cận cho bài toán 6 34

2.21 Một lịch trình tối ưu cho bài toán 6 34

2.22 Các phương pháp được sử dụng trong metaheuristic 37

2.23 Quy trình giải bài toán tối ưu bằng phương pháp metaheuristic [61] 38

2.24 Phân loại các giải thuật metaheuristic [62] 39

2.25 Các nguyên tắc chính của S-metaheuristics [61] 39

2.26 Các nguyên tắc chính của P-metaheuristics [61] 40

2.27 Phương pháp phân rã [61] 42

2.28 Phương pháp cải tiến heuristics [61] 42

Trang 12

2.29 Phương pháp cải tiến nhánh [61] 42

3.1 Các khung cửa sổ thời gian 46

3.2 Các khung cửa sổ thời gian sau khi được thu giảm 46

3.3 Các khung cửa sổ thời gian của bài toán PSP 48

3.4 Một lời giải khả thi với Cmax = 39 48

3.5 Một lời giải khả thi tốt hơn với Cmax = 38 49

3.6 Một lời giải tối ưu với Cmax∗ = 37 49

3.7 Một lời giải tối ưu khác với Cmax∗ = 37 49

3.8 Sơ đồ các bước tiếp cận cho các bài toán lập lịch đang nghiên cứu 50

3.9 Minh họa bài toán Bin-packing tương ứng 52

3.10 Ví dụ minh họa thay đổi thứ tự các jobs trong một khung thời gian 53

3.11 Ví dụ minh họa gộp 2 sub-jobs thành 1 job trong một khung thời gian 54

3.12 Ví dụ minh họa gộp 2 idle-times thành 1 idle-time trong một khung thời gian 543.13 Ví dụ minh họa idle-time di chuyển về cuối khung thời gian 55

3.14 Ví dụ minh họa pi = idle-time 55

3.15 Ví dụ minh họa pi < idle-time 56

3.16 Ví dụ minh họa pi > idle-time 56

3.17 Ví dụ minh họa job Ji chỉ cắt được tối đa thành 2 sub-jobs 57

3.18 Ví dụ minh họa job Ji chỉ cắt được tối đa thành 3 sub-jobs 57

3.19 Ví dụ minh họa thay đổi thứ tự các jobs có cùng kích thước 58

3.20 Giải thuật ASGN với Cmax = 40 66

3.21 Giải thuật ALPT với Cmax = 39 68

3.22 Giải thuật MAAS với Cmax = 37 71

3.23 Đồ thị N 72

3.24 Flow trên đồ thị N với Cmax = 38 72

3.25 Giải thuật MAAS với thứ tự của các jobs khác nhau 73

3.26 Minh họa cách mã hóa chromosome trong GA 73

3.27 Minh họa cách mã hóa solution trong TABU 73

3.28 Flow chart của giải thuật Tabu Search [81] 75

3.29 Flow chart của giải thuật Genetic Algorithm [82] 76

3.30 Thao tác lai ghép tại vị trí index = 2 77

3.31 Thao tác đột biến 77

Trang 13

3.32 Giải thuật E4SSJ 78

3.33 Giải thuật E4SSJ với Cmax = 38 80

3.34 Thời gian tính toán của CPLEX solver trên tập dữ liệu DS1 84

3.35 Kết quả của các phương pháp đề xuất trên tập dữ liệu DS1 88

3.36 Kết quả của các phương pháp đề xuất trên tập dữ liệu DS2 89

4.1 Các khung cửa sổ thời gian của bài toán PSP+setup-time 93

4.2 Một lời giải khả thi với Cmax = 43 93

4.3 Một lời giải tối ưu với Cmax∗ = 40 93

4.4 PSP ≤p PSP+setup-time 94

4.5 Giải thuật ASGN với Cmax = 43 98

4.6 Giải thuật ASPT với Cmax = 42 100

4.7 Giải thuật ASGN với thứ tự của các jobs khác nhau 100

4.8 Các khung cửa sổ thời gian của bài toán PSP+deadline 106

4.9 Một lời giải không khả thi vì vi phạm ràng buộc deadline 106

4.10 Một lời giải khả thi với Cmax = 41 106

4.11 Một lời giải tối ưu với Cmax∗ = 38 107

4.12 PSP ≤p PSP+deadline 107

4.13 Giải thuật ASGN với kết quả là lời giải không khả thi 111

4.14 Giải thuật AEDL với Cmax = 41 113

4.15 Hill climbing 113

4.16 Tối ưu cục bộ và tối ưu toàn cục 115

4.17 Random restart hill climbing 115

4.18 Simulated annealing 116

4.19 Các khung cửa sổ thời gian của bài toán TWSP 125

4.20 Một lời giải khả thi với Cmax = 24 125

4.21 Một lời giải tối ưu với Cmax∗ = 21 126

4.22 Giải thuật ASGN với Cmax = 24 132

4.23 Giải thuật ALPT với Cmax = 24 137

4.24 Giải thuật ASPT với Cmax = 23 139

Trang 14

DANH MỤC BẢNG BIỂU

1.1 Một số ràng buộc về công việc được đề cập trong các tài liệu về lập lịch 5

2.1 Dữ liệu đầu vào cho bài toán 1 19

2.2 Dữ liệu đầu vào cho bài toán 3 21

2.3 Dữ liệu đầu vào cho bài toán 6 32

2.4 Dữ liệu đầu vào cho bài toán 7 36

3.3 Minh họa 10 mẫu dữ liệu được tạo ra cho bộ dữ liệu (10,3) 81

3.4 Kết quả của CPLEX solver trên tập dữ liệu DS1 83

3.5 Kết quả của E4SSJ áp dụng các quy tắc lập lịch ưu tiên trên tập dữ liệu DS1 85

3.6 Kết quả của các phương pháp đề xuất trên tập dữ liệu DS1 87

3.7 Kết quả của các phương pháp đề xuất trên tập dữ liệu DS2 89

4.1 Dữ liệu đầu vào cho bài toán PSP+setup-time 93

4.2 Kết quả của các phương pháp heuristics trên tập dữ liệu DS1 103

4.3 Kết quả của các phương pháp heuristics trên tập dữ liệu DS2 104

4.4 Dữ liệu đầu vào cho bài toán PSP+deadline 106

4.5 Kết quả tổng hợp thực nghiệm trên tập dữ liệu DS1 121

4.6 Kết quả tổng hợp thực nghiệm trên tập dữ liệu DS2 122

4.7 Dữ liệu đầu vào cho bài toán TWPSP 125

4.8 Kết quả của các phương pháp đề xuất 141

Trang 15

DANH MỤC TỪ VIẾT TẮTASGN Assignment based on FCFS

ASPT Assignment based on SPT

ALPT Assignment based on LPT

AEDL Assignment based on EDL

BMF Assignment based on Max Flow

BHC Basic Hill Climbing

CR Critical Ratio

E4SSJ Exact for SubSet-Jobs

EBSR Extraction and Backward Shifted Re-insertion

EDD Earliest Due Date

EDL Earliest Deadline

EFSR Extraction and Forward Shifted Re-insertion

FCFS First Come First Serve

FFD First Fit Decreasing

GA Genetic Algorithm

LPT Longest Processing Time

MAAS Matching and Assignment

MILP Mixed-Integer Linear Programming

MIP Mixed-Integer Programming

MP Mathematical Programming

Trang 16

PSP Personal Scheduling Problem

PSP+deadline Personal Scheduling Problem with deadline constraint

PSP+setup-time Personal Scheduling Problem with setup-time constraint

RND Random

RRHC Random Restart Hill Climbing

SA Simulated Annealing

SHC Stochastic Hill Climbing

SPT Shortest Processing Time

STR Slack Time Remaining

TABU Tabu Search

TWSP Teamwork Scheduling Problem

Trang 17

DANH MỤC BẢNG KÝ HIỆU

Bảng 1: Bảng ký hiệu liên quan đến công việc

J tập hợp n công việc {J1, , Jn} Chương 3, 4

rji thời gian xử lý còn lại của Ji Chương 3, 4ri thời điểm có thể bắt đầu thực thi của Ji Chương 2sti thời gian chuẩn bị của Ji Chương 4di thời điểm đến hạn của Ji Chương 2di thời điểm bắt buộc phải hoàn thành của Ji Chương 4Ci thời điểm hoàn thành của Ji Chương 3, 4Cmax thời điểm hoàn thành tất cả các công việc Chương 3, 4Cmax∗ giá trị nhỏ nhất mà Cmaxcó thể đạt được Chương 3, 4

Bảng 2: Bảng ký hiệu liên quan đến khung thời gian trên một máy

W tập hợp m khung thời gian {W1, , Wm} Chương 3

rwt kích thước còn lại của Wt Chương 3

Trang 18

Bảng 3: Bảng ký hiệu liên quan đến khung thời gian trên nhiều máy

rwjt kích thước còn lại của Wttrên Mj Chương 4

yi,j,t∈ N thời gian thực thi của Jitrên Mjtại Wt Chương 4si,j,t∈ N thời điểm bắt đầu của Jitrên Mjtại Wt Chương 4ci,j,t∈ N thời điểm hoàn thành của Jitrên Mjtại Wt Chương 4

Trang 19

CHƯƠNG 1GIỚI THIỆU VỀ ĐỀ TÀI LUẬN ÁN

Chương này giới thiệu chung về đề tài luận án, cũng như là động cơ, mục tiêu, phạm vi và đốitượng nghiên cứu Ngoài ra những nội dung công việc trong luận án cũng được liệt kê, trình bàysơ lược ở cuối chương này, qua đó định hướng người đọc nắm được luồng thực hiện các tiếp cậnthách thức được đặt ra trong bài toán nghiên cứu.

1.1Giới thiệu chung

Trong thế giới thực cũng như hoạt động thường ngày có rất nhiều vấn đề liên quan đến việclập lịch (scheduling) Chẳng hạn, lập lịch để lập thời khóa biểu cho một trường học, lập lịch đểthu xếp cũng như lập kế hoạch cho một tổ chức, lập lịch để khai thác tài nguyên của một hệthống sao cho tối ưu, Khi đề cập đến hoạt động của chiếc máy tính hay một mạng các máytính, lập lịch là một phương pháp tiếp cận để phân phối nguồn tài nguyên máy tính như băngthông, bộ nhớ, bộ xử lý, cho các quy trình, luồng dữ liệu và ứng dụng khác nhau sao cho tốiưu theo một hoặc nhiều tiêu chí nào đó, ví dụ như là lập lịch để cân bằng tải trên hệ thống vàđảm bảo phân phối tài nguyên đồng đều, từ đó đưa ra mức độ ưu tiên theo các quy tắc đã đặtra Những vấn đề này bảo đảm một hệ thống máy tính có thể phục vụ tất cả các yêu cầu và đạtđược chất lượng dịch vụ nhất định Trong quản lý dự án, lập lịch là lập một danh sách các hoạtđộng, cũng như các công việc được giao và các mốc thời gian quan trọng trong một dự án Khiđó một lịch trình bao gồm ngày bắt đầu và ngày kết thúc, thời lượng và các nguồn lực được chỉđịnh cho mỗi hoạt động Việc lập lịch dự án hiệu quả là một yếu tố quan trọng của việc quản lýthời gian.

Việc định nghĩa một bài toán lập lịch (mà kết quả đầu tiên về lập lịch có thể tham khảo trongcông bố của Johnson1) đã được nhiều tác giả phát biểu khác nhau trong nhiều nghiên cứu mà cóthể liệt kê một số phát biểu điển hình như lập lịch là liên quan đến việc phân bổ các nguồn lựckhan hiếm cho các hoạt động với mục tiêu tối ưu hóa một hoặc nhiều độ đo hiệu quả sử dụngtài nguyên [1], lập lịch là một quá trình ra quyết định liên quan đến việc phân bổ nguồn lực giớihạn hoặc máy móc theo thời gian để thực hiện một tập hợp các công việc hoặc nhiệm vụ, trong

1S M Johnson, “Optimal two- and three-stage production schedules with setup times included,” Naval

Re-search Logistics Quarterly, vol 1, no 1, pp 61–68, 1954.

Trang 20

đó một hoặc một số mục tiêu phải được tối ưu hóa và đáp ứng một tập hợp các ràng buộc nào đó[2], lập lịch là một quá trình ra quyết định được sử dụng thường xuyên trong nhiều ngành côngnghiệp sản xuất và dịch vụ, nó liên quan đến việc phân bổ nguồn lực cho các nhiệm vụ trongkhoảng thời gian nhất định, với mục đích là tối ưu hóa một hoặc nhiều mục tiêu nào đó [3], lậplịch là bài toán phân bổ nguồn lực theo thời gian để thực hiện một tập hợp các nhiệm vụ, trongđó các vấn đề tính toán và sản xuất là quan trọng nhất [4].

Đối với các bài toán lập lịch hiện nay, các nhà nghiên cứu thường xem xét các bài toán lậplịch cho một loại tài nguyên cụ thể như lập lịch cấp phát các tác vụ (task allocation scheduling)là bài toán cấp phát các tác vụ cho một tập các máy thực thi với chi phí tổng thể tối thiểu, bàitoán này thường được áp dụng để thiết kế các hệ thống máy tính phân tán và cả trong sản xuấttự động [5], lập lịch ràng buộc nguồn lực (resource constrained scheduling) là bài toán bao gồmcác hoạt động phải được lên kế hoạch tùy thuộc vào sự ưu tiên và các ràng buộc về nguồn lựcsao cho hiệu quả theo các tiêu chí xác định [6], lập lịch công việc (job scheduling) là bài toánxác định thứ tự xử lý của các công việc trên các máy trong các khoảng thời gian nhất định vớimỗi máy chỉ có thể xử lý một công việc tại một thời điểm [7],

Trong đó, lập lịch công việc là một hướng có rất nhiều nghiên cứu và đóng vai trò quan trọngtrong việc giúp mọi người lập kế hoạch sử dụng tất cả các nguồn lực của họ một cách hiệu quảvà tối ưu nhất có thể, do đó nó được sử dụng trong nhiều ngành sản xuất và dịch vụ Lập lịchcông việc cũng rất cần thiết trong cuộc sống cá nhân (personal job scheduling), không chỉ giúpcác cá nhân xử lý nhiều công việc phức tạp mà còn giảm căng thẳng Trong thời đại công nghệhiện nay, mọi người phải đối phó với hàng trăm công việc, email và nhiều vấn đề phức tạp cầngiải quyết từng ngày Theo David Allen [8], một chuyên gia về cải thiện năng suất công việc,hầu hết chúng ta luôn có khoảng 50 đến 150 nhiệm vụ lớn nhỏ cần phải được xử lý ở bất cứthời điểm nào Bên cạnh đó, mỗi công việc sẽ có nhiều thuộc tính và ràng buộc khác nhau nhưlà thời điểm bắt đầu, thời hạn phải hoàn thành, thời gian xử lý thích hợp để thực hiện công việchiệu quả hơn, Và để thành công, chúng ta cần có khả năng quyết định nhanh chóng nhữngcông việc quan trọng nhất cần làm là gì và những công việc nào ít quan trọng hơn có thể đượcdời lại phía sau.

Thời gian là tài nguyên quý giá nhất mà mọi người không thể mua, và thật không may chúngta thường lãng phí hoặc sử dụng nó một cách không hiệu quả Một vài số liệu thống kê thú vịliên quan tới thời gian mà chúng ta đang trải qua trong cuộc sống hằng ngày như sau:

• Thời gian làm việc: nhân viên toàn thời gian làm việc trung bình 8.5 giờ mỗi ngày trong

Trang 21

tuần và 5.53 giờ mỗi ngày vào một ngày cuối tuần (theo thống kê của BLS2); nhân viêncó trung bình 56 lần gián đoạn công việc và tốn trung bình 2 giờ mỗi ngày để phục hồisau khi mất tập trung (theo thống kê của Atlassian3).

• Thời gian giải trí: xem tivi là hình thức giải trí được yêu thích nhất tốn 2.81 giờ mỗi ngày;giao tiếp với bạn bè tốn trung bình 0.64 giờ mỗi ngày; thể dục thể thao tốn trung bình 0.31giờ mỗi ngày; những người từ 15 đến 24 tuổi chơi game tốn khoảng 1 giờ mỗi ngày (theothống kê của BLS).

• Thời gian sử dụng điện thoại: trung bình là 3 giờ 15 phút mỗi ngày và hầu hết mọi ngườikiểm tra điện thoại trung bình 58 lần mỗi ngày (theo thống kê của RescueTime4).

Kỹ năng quản lý thời gian và công việc tốt sẽ giúp con người làm việc hiệu quả hơn, quản lýđược những rủi ro có thể xảy ra và có thể cân bằng được giữa công việc cá nhân và những côngviệc khác Theo Kukreja5 thì việc tạo ra một lịch trình trước khi bắt đầu một ngày là một trong10 cách thiết thực để cải thiện kỹ năng quản lý thời gian, và theo Kukhnavets6thì chia nhỏ côngviệc cũng là một trong những gợi ý để cải thiện kỹ năng quản lý công việc Để tạo ra một lịchtrình chúng ta có thể sử dụng các ứng dụng quản lý công việc cá nhân hiện tại như MicrosoftTo-Do, Google Tasks, Apple Reminders, Evernote, nTask, Todoist, Mặc dù các ứng dụng nàyngày càng trở nên thông minh hơn và đều có những đặc điểm thế mạnh riêng nhưng nó chỉ cungcấp môi trường trực quan giúp mọi người tự sắp xếp các công việc của mình một cách thủ công,mà không thể tự động chia nhỏ các công việc để tối ưu hóa việc thực thi các công việc này trongcác khung thời gian trống có sẵn của từng người.

Một vấn đề nữa là với rất nhiều công việc và những ràng buộc phải được thỏa mãn, đặc biệthơn cả là vì sự thay đổi liên tục trong cuộc sống thực, mọi người sẽ rất vất vả và tốn thời giankhi liên tục phải tự sắp xếp lại các công việc đã được sắp xếp của mình mỗi khi các công việc

2BLS, 24% of employed persons do some work at home on days they work in 2019, 2020 [Online] Available:

https://www.bls.gov/news.release/pdf/atus.pdf (visited on 06/25/2020).

3Atlassian, You waste a lot of time at work, 2020 [Online] Available:

https://www.atlassian.com/time-wasting-at-work-infographic (visited on 07/21/2020).

4RescueTime, Screen time stats 2019: Here’s how much you use your phone during the workday, 2019 [Online].

Available: https://blog.rescuetime.com/screen-time-stats-2018 (visited on 03/21/2019).

5R Kukreja, 10 practical ways to improve time management skills, 2020 [Online] Available: https://www.

lifehack.org/articles/productivity/10-ways-improve-your-time-management-skills.html (visited on 05/22/2020).

6P Kukhnavets, What are the benefits of a personal task manager? 2019 [Online] Available: https://hygger.io/

blog/benefits-personal-task-manager (visited on 01/22/2019).

Trang 22

bị thay đổi Do đó bài toán lập lịch công việc cá nhân có thể tự động phân chia các công việcnhỏ hơn trong những khung thời gian làm việc là rất quan trọng để áp dụng cho các ứng dụngquản lý công việc cá nhân Đối với một tổ chức hoặc một nhóm người cùng làm việc, vấn đềlập lịch cũng được đặt ra sao cho hoạt động phối hợp trong nhóm và mỗi thành viên được hiệuquả Việc lập lịch riêng cho mỗi thành viên hay còn gọi là lập lịch cá nhân là một bài toán quantrọng và cơ bản cho việc lập lịch cho cả tập thể nhóm (teamwork job scheduling).

Trong phạm vi nghiên cứu, luận án tập trung chủ yếu vào bài toán lập lịch công việc của mộtcá nhân, xem xét các phương pháp tiếp cận như là những nghiên cứu cơ bản để có thể làm nềntảng cho các bài toán lập lịch công việc đặc thù khác và cho bài toán lập lịch công việc trongmột tập thể hoặc một nhóm người có quan hệ xã hội.

1.2Động cơ nghiên cứu

Đối với việc lập lịch công việc cá nhân, bài toán sẽ có hai đặc điểm chính Thứ nhất, mỗingười đều có những khung thời gian làm việc (available-windows) khác nhau, có thể linh độngsắp xếp những công việc của họ vào đấy Thứ hai, mỗi người có thể muốn chia một công việclớn thành nhiều công việc nhỏ để dễ dàng sắp xếp vào các khung làm việc của mình, nhưngnếu các công việc được chia quá nhỏ thì lại không thể hiệu quả khi không đủ thời gian để xửlý, vì vậy cần phải có thêm ràng buộc là các công việc không được chia nhỏ hơn một ngưỡngxác định (bounded-splitting) để việc xử lý công việc được hiệu quả hơn, và ràng buộc này lạithường không được đề cập đến trong các bài toán lập lịch hiện nay (xem trình bày tại Bảng1.1).

Trang 23

Bảng 1.1: Một số ràng buộc về công việc được đề cập trong các tài liệu về lập lịch

(Schwindt & Zimmermann, 2015) [12]

A survey (Blazewicz et al., 1991) [13]

(Leung & Li, 2008) [14]

Analysis and perspectives (Fuchigami & Rangel, 2018) [15]

Chính vì điều này nên có rất ít công bố trước đây liên quan tới bài toán lập lịch công việccá nhân Bài toán lập lịch công việc cá nhân lần đầu tiên được giới thiệu trong công trình [16]vào năm 2010 Nhóm tác giả đã đưa ra hai ràng buộc cho bài toán đó là các công việc chỉ đượcsắp xếp vào những khung thời gian trống (available − windows) và các công việc có thể đượccắt nhỏ nhưng không thể nhỏ hơn ngưỡng xác định (splitmin), bài toán được ký hiệu như sau:1|ri; di; prec; noatw; splitmini|P wiUi Sau đó vài kỹ thuật xử lý ngôn ngữ tự nhiên được ápdụng vào bước xử lý tác vụ đầu vào, và giải thuật di truyền được áp dụng vào bước tìm lời giảikhả thi cho bài toán này.

Sau đó vào năm 2013, công trình [17] đã đưa ra bài toán tương tự với hai ràng buộc nhưtrên: 1|splittable; splitmin; available − windows|Cmax Nhóm tác giả cũng đã chứng minh bàitoán này thuộc lớp N P -khó mạnh bằng cách thu giảm đa thức về bài toán 3-Partition Sau đónăm tính chất của lời giải tối ưu cũng đã được trình bày trong bài báo Ngoài ra ba giải thuậtheuristic dựa trên quy tắc lập lịch ưu tiênLPTcũng được đề xuất để xác định lời giải khả thicho bài toán này.

Cũng trong năm 2013, công trình [18] đã đề xuất mô hìnhMILPcho bài toán trên:

1|splittable; splitmin; available − windows|Cmax, và sử dụng cácMILPsolver như COIN-ORCBC, GLPK, GUROBI nhằm xác định lời giải tốt nhất trong một khoảng thời gian xác định chobài toán này Bên cạnh đó bài báo cũng đã bổ sung thêm một tính chất của lời giải tối ưu chobài toán đang khảo sát.

Ba công trình nghiên cứu ở trên chỉ mới đặt ra bài toán lập lịch công việc cá nhân [16], cũng

Trang 24

như đã chứng minh bài toán này thuộc lớp N P -khó mạnh [17], và đã đề xuất một mô hìnhMILPđể có thể sử dụng cácMILPsolver xác định lời giải tối ưu cho bài toán với dữ liệu đầu vào cókích thước nhỏ [18] Do đó bài toán lập lịch công việc cá nhân này còn nhiều vấn đề tồn đọngcần phải được xem xét, giải quyết và trả lời các câu hỏi như cần có một khung tổng quát cácbước để các giải quyết các bài toán liên quan tới hai ràng buộc splitminvà available − windowshay không? Nếu có thì các phương pháp tiếp cận trong các bước này là gì? Có các phương phápnào có thể giải quyết bài toán một cách hiệu quả hơn với dữ liệu đầu vào có kích thước lớn cỡvài trăm hoặc thậm chí vài ngàn công việc? Có thể xem xét thêm các ràng buộc phù hợp vớitừng bài toán đặc thù cụ thể khác nhau hay không? Có thể áp dụng bài toán lập lịch công việccá nhân này trên một nhóm nhiều người được không?

1.3Mục tiêu, phạm vi và đối tượng nghiên cứu

Mục tiêu của luận án là xem xét và giải quyết bài toán lập lịch công việc cá nhân, đó là:O1 Nghiên cứu và đề xuất một số phương pháp tiếp cận để giải quyết bài toán lập lịch công

việc cá nhân trên các bộ dữ liệu đầu vào có kích thước nhỏ và lớn, qua đó đề xuất lựa chọnphương pháp hiệu quả đối với từng loại dữ liệu đầu vào khác nhau.

O2 Nghiên cứu giải quyết các bài toán lập lịch công việc cá nhân đặc thù có một số ràng buộcthường được sử dụng trong thực tế.

O3 Nghiên cứu ứng dụng mở rộng bài toán lập lịch công việc cá nhân trên một nhóm nhiềungười.

Dựa trên ba mục tiêu nghiên cứu ở trên, luận án đã xác định:

• Phạm vi nghiên cứu: giải quyết bài toán lập lịch công việc của từng cá nhân.

• Đối tượng nghiên cứu: nghiên cứu một số phương pháp tiếp cận để giải quyết bài toán lậplịch các công việc của từng cá nhân này.

1.4Nội dung công việc của luận án

Với mục tiêu cũng như phạm vi và đối tượng nghiên cứu ở trên, luận án tập trung vào nhữngnội dung công việc sau nhằm để giải quyết những thách thức đang đặt ra của bài toán lập lịch

Trang 25

công việc cá nhân, từ đó góp phần vào việc giải quyết vấn đề mang tính nghiên cứu cơ bản củabài toán này:

• Đặc tả nhóm bài toán lập lịch công việc cá nhân bao gồm bài toán lập lịch công việc cánhân cơ bản với hai ràng buộc đó là các công việc có thể cắt nhỏ bị chặn dưới và các côngviệc chỉ được sắp xếp vào những khung thời gian trống, bài toán lập lịch công việc cánhân đặc thù với các ràng buộc như mỗi công việc đều có thời gian chuẩn bị khác nhau,mỗi công việc đều có thời điểm bắt buộc phải hoàn thành khác nhau, và bài toán lập lịchcông việc cá nhân cho một nhóm nhiều người có các khung thời gian làm việc khác nhau.• Đề xuất và hiện thực sơ đồ tổng quát các bước tiếp cận để giải quyết các bài toán lậplịch công việc cá nhân đang nghiên cứu bao gồm: (1) xác định tính N P -đầy đủ của bàitoán, (2) xem xét một số trường hợp đặc biệt, (3) đưa ra một số tính chất của lời giảitối ưu, (4) xác định miền nghiệm của bài toán, (5) xây dựng mô hình Mixed-IntegerLinear Programming (MILP), (6) sử dụng phương pháp chính xác với MILP solver đểxác định lời giải tối ưu cho bài toán, (7) sử dụng các phương pháp xấp xỉ dạng heuris-tic/metaheuristic/matheuristic để xác định lời giải khả thi cho bài toán.

• Áp dụng một số heuristics đặc thù thừa kế các giải thuật cổ điển như giải thuật ment, giải thuật Flow, giải thuật Matching, áp dụng các quy tắc lập lịch ưu tiên First ComeFirst Serve (FCFS), Shortest Processing Time (SPT), Longest Processing Time (LPT), , và một số metaheuristics thường dùng trong công nghiệp như là Simulated Anneal-ing (SA), Genetic Algorithm (GA), Tabu Search (TABU) trên cơ sở rút giảm không giantìm kiếm dựa trên các tính chất được đưa ra, với mong muốn xác định lời giải khả thi cóchất lượng tốt trong giới hạn thời gian chấp nhận được.

Assign-• Đề xuất hướng tiếp cận matheuristics bằng cách kết hợp giải thuật (meta)heuristic cùngvới việc xử lý từng bài toán con nhỏ bằng công cụ MILPsolver nhằm xác định lời giảikhả thi có chất lượng tốt nhất có thể.

1.5Cấu trúc luận án

Từ những nội dung công việc cần nghiên cứu được nêu ở trên, cấu trúc luận án được trìnhbày bao gồm năm chương, trong đó:

Trang 26

Chương thứ nhấtnhằm giới thiệu một cách khái quát những vấn đề chung của một luận ánnhư mục tiêu, phạm vi và đối tượng nghiên cứu, cũng như nội dung công việc phải giải quyết.

Chương thứ haitrình bày tổng quan về bài toán lập lịch công việc, trong đó đưa ra nhữngkhảo sát về tình hình nghiên cứu trong và ngoài nước, từ đó chỉ ra những thách thức của bài toánlập lịch công việc cá nhân, làm rõ hơn vì sao có mục tiêu và nội dung trình bày trong chươngthứ nhất Ngoài ra luận án cũng trình bày những kiến thức mang tính nền tảng khi cần giải quyếtmột bài toán lập lịch công việc bao gồm mô tả bài toán, phân lớp bài toán và các phương phápgiải quyết bài toán như phương pháp chính xác và phương pháp xấp xỉ.

Chương thứ batrình bày chi tiết bài toán lập lịch công việc cá nhân gồm hai ràng buộc, đâylà bài toán cơ bản cần tiếp cận đầu tiên Trong chương này các nội dung sẽ được trình bày nhưđặc tả bài toán bao gồm phát biểu và minh họa bài toán, các phương pháp tiếp cận để giải quyếtbài toán bao gồm tính N P -đầy đủ của bài toán, các tính chất của lời giải tối ưu, miền đánh giánghiệm, mô hình toán học, các phương pháp xấp xỉ như heuristic, metaheuristic, matheuristic,và đánh giá kết quả thực nghiệm các phương pháp tiếp cận này.

Chương thứ tưtrình bày một số bài toán lập lịch công việc cá nhân đặc thù với việc mở rộngcác ràng buộc cho bài toán lập lịch công việc cá nhân cơ bản như ràng buộc setup-time, ràngbuộc deadline, hoặc hướng đến việc khai thác những kết quả của bài toán lập lịch công việc cánhân để mở rộng cho bài toán lập lịch công việc nhóm.

Chương thứ nămlà chương tổng kết để đưa ra những kết quả thực hiện của luận án như lànhững đóng góp, đồng thời cũng trình bày những hướng còn bỏ ngõ khi giải quyết các bài toánlập lịch công việc cá nhân/nhóm này.

Trang 27

CHƯƠNG 2TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH CÔNGVIỆC

Chương này tập trung trình bày tình hình nghiên cứu liên quan đến bài toán lập lịch công việc,cũng như kiến thức nền tảng về những vấn đề liên quan mà luận án giải quyết Một cách cụthể hơn, chương này giới thiệu kiến thức về bài toán lập lịch công việc nói chung, bao gồm cácthành phần, các yếu tố đặc trưng của bài toán; phân lớp bài toán và mối quan hệ với các bài toáncổ điển; các phương pháp tiếp cận để giải quyết bài toán.

2.1Tình hình nghiên cứu

Scheduling problem

Task allocation scheduling Job scheduling Resource constrained scheduling etc.

machine characteristics job characteristics available-windows cstr.

General shop precedence cstr splittable cstr batching cstr.

preemption cstr bounded-splitting (splitmin) cstr. lot-sizing cstr.

Hình 2.1: Các hướng nghiên cứu và các ràng buộc liên quan

Bài toán lập lịch có rất nhiều hướng nghiên cứu và ứng dụng trong thực tế (xem chi tiết Hình2.1), cụ thể có thể liệt kê vài hướng nghiên cứu như sau:

• Lập lịch cấp phát các tác vụ (task allocation scheduling) được ứng dụng trong môi trườngIoT, lĩnh vực robot, lĩnh vực phương tiện không người lái,

• Lập lịch ràng buộc nguồn lực (resource constrained scheduling) được ứng dụng trong việcquản lý dự án, sắp xếp thời khoá biểu, phân bổ phòng ký túc xá,

Trang 28

• Lập lịch cần cẩu quay (quay crane scheduling) được ứng dụng trong việc bốc dỡ hàng hoátại cảng biển (seaports), các bãi container,

• Định tuyến và lập lịch phương tiện giao thông (vehicle routing and scheduling) được ứngdụng trong việc giao nhận hàng hoá, việc quản lý lịch trình của tài xế xe công nghệ, • Lập lịch công việc (job scheduling) được ứng dụng trong việc quản lý nhân sự, quản lý

các máy sản xuất,

Trong hướng nghiên cứu lập lịch cấp phát các tác vụ, đã có nhiều nghiên cứu trong nhiềulĩnh vực cụ thể trong những năm gần đây như nhóm tác giả Max Witteman [19] đã công bố bàibáo đề cập đến việc lập lịch trình các nhiệm vụ bảo dưỡng máy bay phải được thực hiện trongnhiều lần kiểm tra bảo dưỡng để giữ cho một đội máy bay có đủ khả năng bay Việc phân bổnhiệm vụ bảo trì là một bài toán tổ hợp phức tạp cần được giải quyết hàng ngày bởi người vậnhành bảo trì Nhóm tác giả đã đề xuất một cách tiếp cận mới có khả năng giải quyết bài toánphân bổ nhiệm vụ này chỉ trong vài phút, đó là xây dựng bài toán này dưới dạng bài toán đónggói thùng có kích thước thay đổi có giới hạn về thời gian (time-constrained variable-sized binpacking problem) Để giải quyết bài toán này, nhóm tác giả đã đề xuất phương pháp heuristic xâydựng dựa trên thuật toán giảm dần phù hợp nhất (worst-fit decreasing) Phương pháp heuristicnày được kiểm tra và kiểm chứng bằng cách sử dụng dữ liệu bảo dưỡng của 45 máy bay từ mộthãng hàng không châu Âu So sánh với phương pháp chính xác, phương pháp heuristic được đềxuất nhanh hơn 30% đối với tất cả các trường hợp thử nghiệm được thảo luận với hãng hàngkhông Hầu hết các trường hợp có khoảng cách tối ưu dưới 3% ngay cả đối với trường hợp cựcđoan, khoảng cách tối ưu vẫn nhỏ hơn 5%.

Một công bố khác của nhóm tác giả Hussein M Burhan [20] nghiên cứu về việc cấp phátcác tác vụ trong môi trường IoT (Internet of Things) Bài báo này có ba đóng góp chính: thứnhất, bài báo đã giải quyết việc phân bổ tác vụ trong IoT (Internet of Things) như một bài toántối ưu với một công thức mới được kế thừa từ bài toán tập bao phủ (set cover problem); thứ hai,bài toán đã mở rộng bài toán tập bao phủ để thể hiện rõ hơn sự xung đột giữa sự vận hành và sựổn định; thứ ba, các thuật toán đa mục tiêu tiến hóa và đơn mục tiêu tiến hóa được phát triển đểgiải quyết bài toán đã được xây dựng.

Trong lĩnh vực robot thì có công bố của nhóm tác giả Xinye Chen [21], bài báo này xemxét các bài toán phân bổ nhiệm vụ trong một hệ thống nhiều robot phân tán dưới các giới hạnthời gian quan trọng Xem xét yêu cầu của tính toán phân tán, nhiều phương pháp heuristic phân

Trang 29

tán hiện nay có xu hướng mắc kẹt trong tính tối ưu cục bộ và không thể có được các giải phápchất lượng cao Đối với bài toán phân bổ nhiệm vụ động trong hệ thống nhiều robot, không chỉthông tin nhiệm vụ và trạng thái robot có thể thay đổi mà còn cả trạng thái mạng Có nghĩa là,mỗi robot có thể giao tiếp có thể thay đổi theo thời gian và đôi khi thậm chí có thể không córobot nào mà nó có thể giao tiếp Để giải quyết những vấn đề này, một phương pháp phân bổtheo nhóm động (dynamic grouping allocation method) được đề xuất Nó được xây dựng dựatrên các thuật toán đấu giá dựa trên sự đồng thuận (consensus-based auction algorithms) Ngoàira để tăng khả năng thăm dò khám phá, một phương pháp lựa chọn tỷ lệ được sử dụng khi nócó khả năng mắc bẫy ở vị trí tối ưu cục bộ Chiến lược chia sẻ thông tin theo khối cũng được sửdụng để tránh những xung đột có thể xảy ra mà những thay đổi động có thể mang lại Các môphỏng chỉ ra rằng phương pháp được đề xuất có thể cung cấp các giải pháp không có xung độttrong môi trường động và có thể đạt được hiệu suất vượt trội so với các thuật toán hiện đại nhất.Về lĩnh vực phương tiện không người lái UAV (unmanned aerial vehicles) có hai công bốgần đây liên quan tới vấn đề này, đó là nhóm tác giả Schwarzrock [22] nghiên cứu áp dụng trongbối cảnh môi trường tĩnh vào năm 2018, và nhóm tác giả Amorim [23] nghiên cứu áp dụng trongbối cảnh môi trường động vào năm 2020 Để cho phép các UAV có khả năng quyết định nhiệmvụ nào cần thực hiện, các phương pháp trí thông minh bầy đàn và phương pháp hệ thống đa táctử thường được sử dụng nhưng còn nhiều hạn chế Công trình năm 2018 đề xuất ba biến thểthuật toán trí thông minh bầy đàn bổ sung cho nhau để tạo thành một phương pháp mới nhằmtăng số lượng nhiệm vụ được thực hiện để đạt được việc phân bổ nhiệm vụ tốt hơn Còn côngtrình năm 2020 đề xuất một phương pháp heuristic mới bằng cách kết hợp chiến lược trí thôngminh bầy đàn với phương pháp phân công tổng quát GAP (generalized assignment problem) gọilà Swarm-GAP Thông qua các thí nghiệm trong môi trường mô phỏng, các phương pháp đềxuất đã được đánh giá, mang lại kết quả nâng cao cho bài toán so với các phương pháp hiện có.

Trong hướng nghiên cứu lập lịch ràng buộc nguồn lực, đa phần các nghiên cứu thường xemxét nguồn lực trong những dự án gọi là bài toán lập lịch ràng buộc nguồn lực dự án (resource-constrained project scheduling problem) Đây là một bài toán N P -khó thu hút nhiều nhà nghiêncứu vì tính phức tạp và tính sử dụng hàng ngày của nó Có nhiều phương pháp tiếp cận được đưara để giải quyết bài toán này như sử dụng 17 quy tắc ưu tiên heuristics được đề xuất bởi nhómtác giả Chen Zhi [24], giải thuật tìm kiếm lân cận được đề xuất bởi nhóm tác giả Longqing Cui[25], giải thuật di truyền được đề xuất bởi nhóm tác giả HaoJie Chen [26], giải thuật memeticđược đề xuất bởi nhóm tác giả Humyun Fuad Rahman [27], phương pháp phân tách Benders với

Trang 30

các nhát cắt chuyên dụng để xác định lời giải tối ưu được đề xuất bởi Noemie Balouka và IzackCohen [28], phương pháp học tăng cường được đề xuất bởi nhóm tác giả Karam M Sallam [29].Bên cạnh đó, ở trong nước cũng có một số ít các nghiên cứu xem xét các nguồn lực khácnhư thời khóa biểu, phòng ký túc xá, Trong công trình nghiên cứu [30], bài toán sắp xếp thờikhoá biểu môn học trường đại học được đưa ra và giải quyết Thách thức của bài toán xếp thờikhóa biểu môn học là bài toán bùng nổ tổ hợp, không gian tìm kiếm lớn, trong khi đó thời gianyêu cầu để thuật giải chạy cho ra lời giải phải trong khoảng thời gian chấp nhận được Nghiêncứu án này tập trung vào các phương pháp theo hướng tiếp cận metaheuristic bởi vì hướng tiếpcận này được sử dụng rất thông dụng để giải quyết các bài toán xếp thời khóa biểu, một trongnhững lớp bài toán N P -khó Tuy nhiên việc áp dụng các thuật giải theo hướng tiếp cận này làkhông đơn giản bởi vì việc áp dụng một thuật giải metaheuristic vào một bài toán đặc thù cầnsự tinh tế trong việc biểu diễn lời giải, khởi tạo lời giải ban đầu, thực hiện việc tìm kiếm lời giảitrong không gian lời giải Hơn nữa, với sự đa dạng của các thuật giải đã công bố, việc đánh giáđể lựa chọn thuật giải tối ưu cho bài toán xếp thời khóa biểu với đặc thù Việt Nam là rất cầnthiết Ngoài ra còn có công trình [31] nghiên cứu cải tiến và áp dụng giải thuật mô phỏng luyệnkim cho bài toán xếp phòng sinh viên tại ký túc xá Trong nghiên cứu này, tác giả đã ứng dụngkỹ thuật mô phỏng luyện kim cải tiến để giải quyết bài toán xếp phòng cho sinh viên tại ký túcxá với tài nguyên là số lượng phòng, số lượng giường có giới hạn, cùng với số lượng sinh viêntương ứng, không những thế việc sắp xếp còn phải quan tâm đến các nguyện vọng và sở thíchcủa sinh viên trong thời gian chấp nhận được Tác giả cũng đã thực nghiệm trên mẫu dữ liệu môphỏng của ký túc xá thực tế với khoảng 3000 sinh viên và cho kết quả khá hiệu quả.

Trong hướng nghiên cứu lập lịch công việc, nếu khảo sát các ràng buộc trên đặc điểm củamôi trường máy thực thi thì sẽ có các bài toán liên quan tới bài toán general shop Theo Brucker[10], các bài toán như open shop, flow shop, job shop, và mixed shop là những trường hợp đặcbiệt của bài toán general shop Và hiện nay có rất nhiều công trình nghiên cứu về các bài toánnày như các công trình [32]–[35] nghiên cứu về bài toán open shop, các công trình [36]–[40]nghiên cứu về bài toán flow shop, các công trình [41]–[45] nghiên cứu về bài toán job shop, cáccông trình [46]–[49] nghiên cứu về bài toán mixed shop là sự kết hợp (combination) giữa bàitoán job shop và bài toán open shop.

Còn nếu khảo sát các ràng buộc trên đặc điểm của công việc thì sẽ có các ràng buộc nhưpreemption, precedence relations, batching, lot-sizing, Các ràng buộc này đã được nghiên cứutừ lâu và đã được trình bày trong các sách kinh điển về lập lịch như là Handbook of Scheduling

Trang 31

[1], Multicriteria Scheduling [9], Scheduling Algorithms [10], Introduction to Scheduling [11],Handbook on Project Management and Scheduling [12], Scheduling: Theory, Algorithms, andSystems [3], Handbook on Scheduling [4], và trong các survey về bài toán lập lịch như Math-ematical programming formulations for machine scheduling: A survey [13], Scheduling withprocessing set restrictions: A survey [14], A survey of case studies in production scheduling:Analysis and perspectives [15] (xem chi tiết tại Bảng1.1).

Cuối cùng, nếu khảo sát các ràng buộc liên quan tới khung cửa sổ thời gian thì sẽ có cácràng buộc như time-windows, periodic maintenance, Một số nghiên cứu về bài toán lập lịchcông việc với ràng buộc time-windows như nhóm tác giả Yang Zhang [50] nghiên cứu bài toánlập lịch đặt hàng PSS (product-service system) với khung cửa sổ thời gian cho một nhà cung cấpPSS bao gồm một nhà máy sản xuất và một trung tâm dịch vụ Trong bài toán này, sản phẩmcủa mỗi đơn đặt hàng PSS đầu tiên được sản xuất bởi nhà máy sản xuất, sau đó dịch vụ lắp đặtđược cung cấp bởi trung tâm bảo hành Nhóm nghiên cứu đề xuất lần lượt thực hiện hướng tiếpcận như sau: (1) một mô hình toán học cho bài toán được trình bày để giảm thiểu tổng lưu trữvà chi phí trễ hạn; (2) để giải quyết bài toán N P -khó này, một thuật toán chèn thời gian nhànrỗi (idle time insertion algorithm) được đề xuất để có được thời gian bắt đầu và hoàn thành tốiưu của sản xuất và phục vụ các đơn đặt hàng PSS cho một trình tự đơn hàng nhất định; (3)ba metaheuristics dựa trên tìm kiếm cục bộ, mô phỏng luyện kim và tìm kiếm tabu được pháttriển để tìm kiếm tốt nhất thông qua việc kết hợp thuật toán chèn thời gian nhàn rỗi; (4) tấtcả metaheuristics sử dụng phiên bản điều chỉnh của phương pháp NEH (Nawaz-Enscore-Ham)heuristic để tạo ra các giải pháp ban đầu và áp dụng ý tưởng về tìm kiếm vùng lân cận thay đổiđể tìm ra tối ưu cục bộ; (5) hiệu suất của các thuật toán đề xuất được đánh giá bằng cách sosánh với nhau, và kết quả cho thấy các thuật toán nói chung hoạt động tương tự nhau nhưng kếtquả khác nhau phụ thuộc vào kích thước bài toán, độ trễ hạn, phạm vi ngày đến hạn và độ rộngkhung cửa sổ thời gian có tác động đáng kể đến hiệu suất của các thuật toán này.

Một nghiên cứu khác [51] xem xét bài toán lập lịch cho các máy giống hệt nhau (identicalparallel machine) với một tài nguyên bổ sung duy nhất Thời gian xử lý của một công việc đượcxác định bởi hàm tiêu thụ tài nguyên tuyến tính Bài toán nghiên cứu xem xét đến hai ràng buộcmới, đó là tổng tài nguyên có sẵn thay đổi theo thời gian và giới hạn mức tăng tiêu thụ tài nguyêncủa mỗi công việc trong hai khoảng thời gian liên tiếp Hơn nữa, các công việc có giới hạn mứctiêu thụ tài nguyên, thời gian đến và thời hạn Hai đóng góp của bài báo là giới thiệu mô hìnhMILPvà đề xuất một heuristic, trong đó phương pháp heuristic đã cho thấy là rất hiệu quả để

Trang 32

giải quyết bài toán thông qua các thực nghiệm.

Bên cạnh đó, một số nghiên cứu khác về ràng buộc periodic maintenance như nhóm tác giảTing Wang [52] nghiên cứu bài toán về lập lịch trên máy đơn (single machine), trong đó việcbảo trì định kỳ linh hoạt được xem xét Máy thực thi đơn được vận hành để xử lý một tập hợpcác công việc với thời gian xử lý và thời gian bảo trì xen kẽ Trong một khoảng thời gian xử lý,một tập hợp con các công việc được xử lý tuần tự và thời gian hoàn thành của công việc cuốicùng không được vượt quá thời lượng tối đa cho phép Thời gian xử lý thực tế của mỗi công việcphát triển với tốc độ suy giảm tuyến tính theo công việc cụ thể và phụ thuộc vào thời gian bắtđầu của nó trong khoảng thời gian đó Giữa hai giai đoạn xử lý, một giai đoạn bảo trì có thờihạn cố định tồn tại và các hoạt động bảo trì được thực hiện để tốc độ xử lý của máy trở lại tốcđộ bình thường Mục tiêu là sắp xếp tất cả các công việc vào một tập hợp các khoảng thời gianxử lý và để giảm thiểu thời gian thực hiện của lịch trình Nhóm tác giả mô hình hóa bài toánbằng cách sử dụng mô hình tập phân vùng (set-partitioning) và sử dụng thuật toán nhánh và giá(branch and price algorithm) Các thử nghiệm được thực hiện trên một tập các bộ dữ liệu đượctạo ngẫu nhiên để đánh giá hiệu suất của phương pháp được đề xuất.

Một bài toán khác cũng liên quan tới bảo trì định kỳ được nhóm tác giả Vitor Nesello [53]đưa ra là bài toán lập lịch cho một máy duy nhất với các lần bảo trì định kỳ và thời gian thiết lậpphụ thuộc vào trình tự, với mục tiêu là giảm thiểu khoảng chênh lệch Các tác giả đề xuất mộtthuật toán chính xác dựa trên giải pháp lặp lại của ba mô hình chỉ mục cung thời gian thay thế(alternative arc-time-indexed models) Các thử nghiệm tính toán mở rộng được thực hiện trên420 trường hợp chuẩn với tối đa 50 công việc và trên 405 trường hợp mới được đề xuất liên quanđến tối đa 150 công việc Sau đó so sánh kết quả tìm được theo tất cả các công thức với kết quảthu được bằng công thức toán học tốt nhất hiện có cho thấy tất cả các trường hợp từ tập dữ liệuhiện có được giải quyết ở mức tối ưu.

Trong tất cả các công trình trên, bài toán lập lịch công việc vẫn không được giải quyết trọnvẹn với một lý do chính đó là bài toán lập lịch công việc cá nhân mang tính thực tế và gần gũivới chúng ta đã không được đề cập đến.

Trang 33

2.2Giới thiệu bài toán lập lịch công việc

Giả sử có n công việc (job) Ji (i = 1, , n) được thực thi trên m máy (machine) Mj (j =1, , m) Một lịch trình (schedule) là ứng mỗi công việc được gán vào một hoặc nhiều máytrong một khoảng thời gian nào đó, và có thể được biểu diễn bằng sơ đồ Gantt như Hình2.2.

Hình 2.2: Sơ đồ Gantt theo hướng máy (a) và hướng công việc (b) [10]

Tuỳ thuộc vào bài toán cụ thể, đầu vào của bài toán cần có một vài thông tin trong các thôngtin liên quan đến công việc được mô tả như dưới đây:

• pij là thời gian xử lý (processing-time) của công việc Ji trên máy Mj Trong trường hợpchỉ xử lý trên 1 máy, ký hiệu piđược sử dụng thay cho ký hiệu pi1.

• ri là thời điểm có thể bắt đầu thực thi (release-date) của công việc Ji Trước thời điểm ri,công việc không thể thực hiện vì cần chờ đủ điều kiện (thông tin chưa đầy đủ, tài nguyênchưa sẵn sàng, ) để có thể bắt đầu thực thi.

• sti là thời gian chuẩn bị (setup-time) trước khi thực thi của công việc Ji Đôi khi côngviệc cần phải có thời gian để chuẩn bị các môi trường cần thiết để có thể bắt đầu thực thi,ví dụ các môi trường cần thiết có thể là kiểm tra, xem lại mã cũ trước khi thực hiện viếtmã mới cho một chức năng mới, đọc lại các tài liệu hiện có trước khi soạn thảo, • dilà thời điểm đến hạn (due-date) của công việc Ji Công việc có thể hoàn thành sau thời

điểm due-date, tuy nhiên việc này sẽ dẫn đến một hình phạt (penalty) nào đó.

Trang 34

• dilà thời điểm bắt buộc phải hoàn thành (deadline) của công việc Ji Công việc không thểhoàn thành sau thời điểm deadline, nếu một lịch trình có một công việc nào đó vi phạmdeadline thì dẫn đến lịch trình này không khả thi (infeasible schedule).

• wi là trọng số (weight) của công việc Ji Đây là thông số mô tả độ quan trọng giữa cáccông việc.

Ký hiệu bài toán

Một bài toán lập lịch công việc có ba yếu tố đặc trưng, đó là: môi trường máy thực thi chine environment), các đặc điểm công việc (job characteristics) và tiêu chí tối ưu (optimalitycriterion) hay còn gọi là hàm mục tiêu (objective function) Theo Graham1thì ba đặc trưng nàyđược ký hiệu thành ba tham số: α|β|γ, trong đó:

(ma-• α = α1α2:

– α1 ∈ {1, P, Q, R, O, F, J}, ∀i = 1, , n, ∀j = 1, , m:* α1 = 1: một máy đơn (single machine); pi1= pi.

* α1 = P : nhiều máy giống hệt nhau (identical parallel machines); pij = pi.* α1 = Q: nhiều máy đồng nhất (uniform parallel machines); pij = pi

, với sj làtốc độ của máy Mj.

* α1 = R: nhiều máy không liên quan (unrelated parallel machines); pij = pisij,với sij là tốc độ của máy Mj phụ thuộc vào công việc Ji.

* α1 = O: mỗi công việc Jibao gồm một chuỗi m hoạt động Oij có thời gian xửlý là pij, mỗi Oij phải được xử lý trên máy Mj, và không có quan hệ thứ tự giữacác hoạt động (gọi là open shop).

* α1 = F : mỗi công việc Jibao gồm một chuỗi m hoạt động Oij có thời gian xửlý là pij, mỗi Oij phải được xử lý trên máy Mj, và có quan hệ thứ tự giữa cáchoạt động Oij → Oi,j+1(gọi là flow shop).

* α1 = J : mỗi công việc Ji bao gồm một chuỗi ni hoạt động Oi1, Oi2, , Oiniđược xử lý theo thứ tự Oij → Oi,j+1, mỗi Oij sẽ có thời gian xử lý pij khác nhautrên các máy µi,j ∈ {M 1, , Mm} khác nhau (gọi là job shop).

– α2 = k: k là số lượng máy.

1R Graham, E Lawler, J Lenstra, et al., “Optimization and approximation in deterministic sequencing andscheduling: A survey,” Annals of Discrete Mathematics, vol 5, pp 287–326, 1979.

Trang 35

• β:

– β = pmtn: mô tả công việc có thể được tạm ngưng và tiếp tục trở lại vào thời điểm

khác (preemption).

– β = prec: mô tả mối quan hệ thứ tự giữa các công việc (precedence).

– β = batch: mô tả việc gom nhóm nhiều công việc thành các khối (batch) và lập lịch

cho các khối này.• γ : ∀i = 1, , n, ta có:

– Tiêu chí minimax: tìm giá trị nhỏ nhất trong các giá trị tối đa thu được thông qua so

sánh các thông số trong tập các công việc Các thông số có thể là Ci, Li, và Ti theocác diễn giải chi tiết dưới đây:

* Cmax = max(Ci): thời điểm hoàn thành (completion time) tối đa, với Cilà thờiđiểm hoàn thành của công việc Ji Hàm mục tiêu này dùng để xác định lời giảicó thời điểm hoàn thành của tất cả các công việc là nhỏ nhất.

* Lmax = max(Li): độ muộn (lateness) tối đa, với Li là độ muộn của công việcJi và được tính bởi công thức: Li = Ci− di Hàm mục tiêu này dùng để xácđịnh lời giải có độ muộn tối đa là nhỏ nhất Lưu ý, trong trường hợp một lịchtrình mà tất cả các công việc đều hoàn thành đúng hạn, độ muộn tối đa có giátrị âm, và mô tả giá trị độ muộn của công việc hoàn thành gần với due date củanó nhất.

* Tmax = max(Ti): độ trễ (tardiness) tối đa, với Ti là độ trễ của công việc Ji vàđược tính bởi công thức: Ti = max(0, Ci− di) Hàm mục tiêu này dùng để xácđịnh lời giải có độ trễ tối đa là nhỏ nhất Lưu ý, trong trường hợp một lịch trìnhmà tất cả các công việc đều hoàn thành đúng hạn, độ trễ tối đa có giá trị bằng0.

– Tiêu chí minisum: tìm giá trị nhỏ nhất trong tổng các giá trị thu được liên quan đến

từng công việc Các giá trị thu được có thể là Ci, Ti, và Ui theo các diễn giải chi tiếtdưới đây:

* P Ci: tổng thời điểm hoàn thành tất cả các công việc Hàm mục tiêu này dùngđể xác định lời giải có tổng thời điểm hoàn thành tất cả các công việc là nhỏnhất.

Trang 36

* P Ti: tổng độ trễ tất cả các công việc Hàm mục tiêu này dùng để xác định lờigiải có tổng độ trễ tất cả các công việc là nhỏ nhất.

* P Ui: tổng số công việc bị trễ, với Ui là trạng thái trễ của công việc được xácđịnh bởi: Ui = 0 nếu Ci ≤ di, và ngược lại Ui = 1 Hàm mục tiêu này dùng đểxác định lời giải có tổng số công việc bị trễ là nhỏ nhất.

Lmax, Tmax P Ci

P wiUi P wiTi(1)

Hình 2.3: Mối quan hệ giữa các hàm mục tiêu

Ngoài ra, Brucker [10] đã chứng minh một vài mối quan hệ giữa các hàm mục tiêu được môtả trong Hình2.3 Tổng thể chi tiết các chứng minh như sau:

• Từ hai công thức ở trên là Li = Ci− divà Ti = max(0, Ci− di), nếu di = 0 thì hàm mụctiêu:

– Lmaxtrở thành Cmax, do đó ta có (1): Cmax −→ Lmax

– Tmax trở thành Cmax, do đó ta có (1): Cmax −→ Tmax

P Ti trở thànhP Ci, do đó ta có (4): P Ci −→P Ti

P wiTitrở thànhP wiCi, do đó ta có (8): P wiCi −→P wiTi• Và nếu wi = 1 thì hàm mục tiêu:

P wiCi trở thànhP Ci, do đó ta có (5): P Ci −→P wiCi

P wiUitrở thànhP Ui, do đó ta có (6): P Ui −→P wiUi

P wiTitrở thànhP Ti, do đó ta có (7): P Ti −→P wiTi

Trang 37

• Bên cạnh đó, giả sử ta có: Lmax = max(Li) ≤ k, ∀i⇐⇒ Ci− di ≤ k, ∀i⇐⇒ Ci− (di+ k) ≤ 0, ∀i

⇐⇒ max(0, Ci− (di+ k)) ≤ 0, ∀i

⇐⇒P Ti =P max(0, Ci− (di+ k)) ≤ 0⇐⇒P Ui ≤ 0

⇐⇒P Ti =P max(0, Ci− (di+ k)) ≤ 0⇐⇒P Ui ≤ 0

Và nếu k = 0 thì hàm mục tiêu:

P Uitrở thành Tmax, do đó ta có (2): Tmax −→P Ui

P Ti trở thành Tmax, do đó ta có (3): Tmax −→P Ti □

Một số bài toán minh họa

Bài toán 1 Bài toán lập lịch trên một máy cho một nhóm công việc với thời điểm có thể bắt đầu

của mỗi công việc là ri ̸= 0 (i = 1, , n) sao cho độ muộn tối đa là nhỏ nhất.

Bài toán1được ký hiệu như sau: 1|ri; pmtn|Lmax

Một dữ liệu minh họa cho bài toán1được thể hiện trong Bảng2.1.

Bảng 2.1: Dữ liệu đầu vào cho bài toán1

pi 2 1 2 2ri 1 2 2 7di 2 3 4 8

Trang 38

Hình2.4trình bày một lịch trình khả thi tương ứng với dữ liệu đầu vào ở trên.

Hình 2.4: Một lịch trình khả thi cho bài toán1

Bài toán 2 Bài toán lập lịch công việc với thời gian xử lý là một đơn vị cho tất cả các công việc

và ràng buộc quan hệ thứ tự giữa các công việc là tùy ý trên m máy giống hệt nhau sao cho thờiđiểm hoàn thành tất cả các công việc là nhỏ nhất.

Bài toán2được ký hiệu như sau: P |pi = 1; prec|Cmax

Một dữ liệu minh họa cho bài toán 2 là một đồ thị có hướng với n đỉnh và số lượng máyđược thể hiện trong Hình2.5.

Hình 2.5: Dữ liệu đầu vào cho bài toán2

Hình2.6trình bày một lịch trình khả thi tương ứng với dữ liệu đầu vào ở trên.

Hình 2.6: Một lịch trình khả thi cho bài toán2

Bài toán 3 Bài toán chia một nhóm công việc thành các khối và lên lịch cho các khối này trên

một máy sao cho tổng thời điểm hoàn thành tất cả các công việc có trọng số là nhỏ nhất Thờigian xử lý của một khối là tổng thời gian xử lý các công việc trong khối đó Thời gian chuẩn bịcủa mỗi khối là s.

Trang 39

Bài toán3được ký hiệu như sau: 1|s − batch|P wiCi

Một dữ liệu minh họa cho bài toán3được thể hiện trong Bảng2.2, và s = 1.Bảng 2.2: Dữ liệu đầu vào cho bài toán3

pi 3 2 2 3 1 1wi 1 2 1 1 4 4

Hình2.7 trình bày một lịch trình khả thi với 3 − batches tương ứng với dữ liệu đầu vào ởtrên.

Hình 2.7: Một lịch trình khả thi với 3 − batches cho bài toán3

Và giá trị của hàm mục tiêu tương ứng với lịch trình khả thi ở trên là:P wiCi = (2) × 3 + (1 + 1 + 4) × 10 + (1 + 4) × 15 = 141

Theo Leung [1], bài toán quyết định (decision problem) là bài toán có đầu ra (output) chỉ làYES hoặc NO như Hình2.8 Còn bài toán tối ưu (optimization problem) là bài toán xác định lờigiải tốt nhất (best solution) từ tất cả các lời giải khả thi (feasible solution) như Hình2.9.

Hình 2.8: Bài toán quyết định Hình 2.9: Bài toán tối ưu

Ví dụ bài toán quyết định phân hoạch (partition) được mô tả như sau:

Trang 40

• Mẫu dữ liệu (instance): cho một tập hợp gồm n các số nguyên dương S = {a1, a2, , an}.• Câu hỏi (question): có thể phân chia tập S thành hai tập con không giao nhau S1, S2 sao

ai hay không?

Ví dụ bài toán tối ưu người đi giao hàng (traveling salesman) được mô tả như sau:

• Mẫu dữ liệu: cho một tập hợp n các địa điểm giao hàng c1, c2, , cn, trong đó mỗi cặphai địa điểm ci và cj bất kỳ sẽ có khoảng cách là d(i, j) = d(j, i).

• Câu hỏi: xác định một chu trình đi qua n địa điểm này sao cho tổng khoảng cách là nhỏnhất?

Bên cạnh đó, một nhận xét rất quan trọng cũng được Leung [1] đưa ra tại mục 2.3.3 như sau:

Nhận xét 2.1 Các bài toán tối ưu (cực tiểu hoá hoặc cực đại hoá) có thể chuyển đổi thành bài

toán quyết định tương ứng bằng cách cung cấp bổ sung một tham số ω và chỉ cần đặt câu hỏiliệu có lời giải khả thi nào để chi phí của lời giải là ≤ ω (cực tiểu hoá) hoặc ≥ ω (cực đại hoá).

Ví dụ bài toán tối ưu người đi giao hàng ở trên được chuyển đổi thành bài toán quyết địnhđược mô tả như sau:

• Mẫu dữ liệu: cho một tập hợp n các địa điểm giao hàng c1, c2, , cn, trong đó mỗi cặphai địa điểm ci và cj bất kỳ sẽ có khoảng cách là d(i, j) = d(j, i), và một giá trị B.• Câu hỏi: có tồn tại một chu trình đi qua n địa điểm này sao cho tổng khoảng cách ≤ B

hay không?

Theo Cook [54], một bài toán quyết định được gọi là thuộc lớp P nếu tồn tại một thuật toángiải bài toán trong thời gian O(nc), với một hằng số c không phụ thuộc vào kích thước đầu vàon Đôi khi người ta còn thay O(nc) bởi poly(n) để nói rõ đây là lớp bài toán có độ phức tạpđa thức, chẳng hạn bài toán tìm kiếm tuần tự (linear search) là bài toán có độ phức tạp O(n)với c = 1 Và một bài toán quyết định được gọi là thuộc lớp N P nếu tồn tại một bằng chứng(certificate) dễ kiểm tra cho bài toán đó, trong đó bằng chứng dễ kiểm tra được hiểu như là tacó thể dễ dàng kiểm tra một mẫu dữ liệu (instance) cụ thể nào đó của bài toán có đầu ra là YEStrong thời gian đa thức poly(n) Ý tưởng đằng sau lớp bài toán N P là nếu ai đó cho chúng talời giải của một bài toán khó, việc kiểm tra xem đó có phải là lời giải đúng hay không sẽ dễhơn việc trực tiếp giải bài toán đó, chẳng hạn bài toán quyết định tổng tập hợp con (subset-sum)được mô tả như sau:

Ngày đăng: 02/08/2024, 17:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN