Tải bản đầy đủ (.pdf) (209 trang)

Một số phương pháp tiếp cận cho bài toán lập lịch cá nhân

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.14 MB, 209 trang )

ĐẠ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ẬN
CHO BÀI TỐN LẬP LỊCH CÁ NHÂN

LUẬN ÁN TIẾN SĨ

TP. HỒ CHÍ MINH - NĂM 2022


ĐẠ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ẬN
CHO BÀI TỐN LẬP LỊCH CÁ NHÂN

Chun ngành: Khoa học máy tính
Mã số chuyên ngành: 62480101
Phản biện độc lập: PGS. TS. Nguyễn Tuấn Đăng
Phả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 Thn
Phản biện: PGS. TS. Lê Hồ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





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 ứng
dụ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ác
cơ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ăn
nữ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áy
mó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ác
cô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ệc
nà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ừng
cơ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ơn
mộ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ường
khô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ải
quyết bài tố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ững
khung thời gian làm việc.
Với chỉ một trong hai ràng buộc này thì bài tốn có thể xác định được lời giải tối ưu một
cá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ưng
khơ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ết
tấ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ông
việ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ệc
có 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 được
bằ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ác
cơ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ả hai
ràng buộc cùng một lúc thì bài tốn này trở thành bài tốn thuộc lớp N P -khó mạnh (strongly

N P -hard).
Bài tố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
ii


problem) hoặc trên một nhóm nhiều người (teamwork scheduling problem). Đối với từng bài
toá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án
bao gồm: (1) đặc tả bài tốn thơng qua phát biểu mơ tả bài tốn, trình bày các ký hiệu sử dụng
trong 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ương
pháp tiếp cận để giải quyết bài tốn bao gồm xác định tính N P -đầy đủ của bài toán, xem xét
mộ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ất
phương pháp chính xác dựa trên mơ hình Mixed-Integer Linear Programming (MILP) và các
phươ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.

iii


ABSTRACT
The objective of personal scheduling aims to assign the jobs into available time windows so
that jobs can be handled in the most effective way. Current personal task management applications 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 struggle
because of that. Another issue is that sometimes these jobs require a lot of processing time, so
it 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 flexibly
assigned in different available time windows. It is possible that the jobs are split into sub-jobs
with “too small size”, the scheduling result is not as effective in many practical situations as
expected since these jobs are too fragmented, and it should be spent more time on resuming
the sub-jobs. It is necessary, consequently, to consider the constraint that "the jobs cannot be

split less than a certain threshold" for a more efficient result, and this constraint is often not
addressed in literature scheduling problems. Therefore, this thesis focuses on methodology and
several approaches for solving the personal scheduling problem with two constraints that are the
jobs that can be split but not less than a certain threshold and jobs are only assigned in available
time windows.
With only one of these two constraints, the problem can easily determine the optimal solution. For example, if we consider the constraint of "the jobs that can be split but not less
than a certain threshold", then the optimal solution is achieved by splitting all jobs equal to this
specified threshold and then assigning these sub-jobs into the time axis. Otherwise, when only
considering the constraint of "the jobs can be split and assigned in available time windows", the
optimal solution is achieved by splitting all jobs into units of time is 1, and then assigning these
sub-jobs into available time windows. However, if both constraints are considered at the same
time, this problem becomes a strongly N P -hard problem.
This personal scheduling problem can be applied to one person (personal scheduling problem) or multiple people (teamwork scheduling problem). For each specific scheduling problem,
the thesis has presented almost necessary approaches related, including (1) specification of the
problem through problem statements, presentation of notations used in the problem, as well as
iv


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

v


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ực
hiệ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ốt
thờ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à đặc
biệt là thầy Trần Văn Hồi, cơ Lê Thanh Vân, thầy Nguyễn Đức Dũng, thầy Nguyễn Hồ Mẫn
Rạng, thầy Phạm Hồ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ại
Laboratoire d’Informatique thuộc trường University Franc¸ois-Rabelais of Tours và trải nghiệm
cuộ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ân
yê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ể hồn thành tốt luận án này.
Tp. Hồ Chí Minh, ngày

tháng

năm

Trang Hồng Sơn

vi


MỤC LỤC

Danh mục hình ảnh

ix

Danh mục bảng biểu

xii

Danh mục từ viết tắt

xii

Danh mục bảng ký hiệu

xv

Chương 1

Giới thiệu về đề tài luận án

1

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 2

Tổng quan về bài tốn lập lịch cơng việc

9

2.1


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

9

2.2

Giới thiệu bài tốn lập lịch cơng việc . . . . . . . . . . . . . . . . . . . . . . .

15

2.3

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

26

2.4

Kết chương . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

Chương 3

Bài tốn lập lịch cơng việc cá nhân cơ bản

45

3.1


Đặc tả bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

3.2

Các phương pháp tiếp cận . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

3.3

Đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

3.4

Kết chương . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

Chương 4

Một số bài tốn lập lịch cơng việc cá nhân đặc thù

92

4.1


Bài tốn ràng buộc setup-time . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2

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

4.3

Bài tốn lập lịch cơng việc nhóm . . . . . . . . . . . . . . . . . . . . . . . . . 123

4.4

Kết chương . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
vii

92


Chương 5

Kết luận

144

5.1

Tóm tắt các cơng việc đã thực hiện . . . . . . . . . . . . . . . . . . . . . . . . 144

5.2


Đánh giá kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

5.3

Các đóng góp chính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

5.4

Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Danh mục cơng trình đã cơng bố

150

Tài liệu tham khảo

151

viii


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 tố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 tố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 tố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

ix


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 .

54

3.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

x


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 tố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

xi


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

2.5

Thứ tự ưu tiên FCFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

2.6

Thứ tự ưu tiên SPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

2.7

Thứ tự ưu tiên LPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36


2.8

Thứ tự ưu tiên EDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

2.9

Thứ tự ưu tiên STR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

2.10 Thứ tự ưu tiên CR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

3.1

Dữ liệu đầu vào cho bài toán PSP . . . . . . . . . . . . . . . . . . . . . . . . .

48

3.2

So sánh MILP 1 và MILP 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

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

xii

. . . . . . . . . . . . . . . . . . . . . . 141


DANH MỤC TỪ VIẾT TẮT
ASGN 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
xiii



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

xiv


DANH MỤC BẢNG KÝ HIỆU
Bảng 1: Bảng ký hiệu liên quan đến công việc
Ký hiệu

Ý nghĩa

Phạm vi sử dụng

J

tập hợp n công việc {J1 , . . . , Jn }

Chương 3, 4


Ji

công việc thứ ith

Chương 3, 4

pi

thời gian xử lý của Ji

Chương 3, 4

rji

thời gian xử lý còn lại của Ji

Chương 3, 4

ri

thời điểm có thể bắt đầu thực thi của Ji

Chương 2

sti

thời gian chuẩn bị của Ji

Chương 4


di

thời điểm đến hạn của Ji

Chương 2

di

thời điểm bắt buộc phải hoàn thành của Ji

Chương 4

Ci

thời điểm hoàn thành của Ji

Chương 3, 4

Cmax

thời điểm hồn thành tất cả các cơng việc

Chương 3, 4


Cmax

giá trị nhỏ nhất mà Cmax có 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
Ký hiệu

Ý nghĩa

W

tập hợp m khung thời gian {W1 , . . . , Wm }

Chương 3

Wt

khung thời gian thứ tth

Chương 3

wt

kích thước của Wt

Chương 3

rwt

kích thước cịn lại của Wt

Chương 3


cột mốc thứ tth

Chương 3

bt

xv

Phạm vi sử dụng


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

Ý nghĩa

Phạm vi sử dụng

M

tập hợp k máy {M1 , . . . , Mk }

Mj

máy thứ j th

Wj

tập hợp mj khung thời gian trên


Wtj

khung thời gian thứ tth trên Mj

Chương 4

wtj

kích thước của Wt trên Mj

Chương 4

rwtj

kích thước cịn lại của Wt trên Mj

Chương 4

cột mốc thứ tth trên Mj

Chương 4

bjt

Chương 4
Chương 4
Mj {W1j , . . . , Wmj j }

Chương 4


Bảng 4: Bảng ký hiệu liên quan đến các biến quyết định trong các mơ hình MILP
Ký hiệu

Ý nghĩa

Phạm vi sử dụng

xi,t ∈ {0, 1}

Ji có được gán tại Wt khơng?

Chương 3, 4

yi,t ∈ N

thời gian thực thi của Ji tại Wt

Chương 3, 4

si,t ∈ N

thời điểm bắt đầu của Ji tại Wt

Chương 3, 4

ci,t ∈ N

thời điểm hoàn thành của Ji tại Wt

Chương 3, 4


xi,j,t ∈ {0, 1}

Ji có được gán cho Mj tại Wt không?

Chương 4

yi,j,t ∈ N

thời gian thực thi của Ji trên Mj tại Wt

Chương 4

si,j,t ∈ N

thời điểm bắt đầu của Ji trên Mj tại Wt

Chương 4

ci,j,t ∈ N

thời điểm hoàn thành của Ji trên Mj tại Wt

Chương 4

xvi


CHƯƠNG 1 GIỚ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à đối

tượng nghiên cứu. Ngồi ra những nội dung cơng việc trong luận án cũng được liệt kê, trình bày
sơ 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ận
thách thức được đặt ra trong bài toán nghiên cứu.

1.1

Giớ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ệc
lậ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áy
tí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ăng
thơ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 đã đặt
ra. 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 trong
cơ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ực
khan 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ụng
tà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ới
hạ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
1


S. 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.

1


đó 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 q trình ra quyết định được sử dụng thường xuyên trong nhiều ngành cơng
nghiệ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ụ trong
khoả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ập
lị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 tố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ập
lị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ài
toá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ất
tự động [5], lập lịch ràng buộc nguồn lực (resource constrained scheduling) là bài toán bao gồm
cá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ực
sao 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 tốn
xá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ới
mỗ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ọng
trong 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ịch
cô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úp
cá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ần
giả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 ln 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 hồn thành, thời gian xử lý thích hợp để thực hiện công việc
hiệ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ững
cơ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ể được
dờ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úng
ta 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
2


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ên
có 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ồi
sau 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.31
giờ 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 (theo
thố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ười
kiể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ơng
việ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 trong
10 cách thiết thực để cải thiện kỹ năng quản lý thời gian, và theo Kukhnavets6 thì chia nhỏ công
việ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ịch
trì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ư Microsoft
To-Do, Google Tasks, Apple Reminders, Evernote, nTask, Todoist, ... Mặc dù các ứng dụng này
ngà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ỉ cung
cấ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 trong
cá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ệt
hơ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 gian
khi 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
2

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

(visited on 06/25/2020).
3
Atlassian, You waste a lot of time at work, 2020. [Online]. Available: (visited on 07/21/2020).
4
RescueTime, Screen time stats 2019: Here’s how much you use your phone during the workday, 2019. [Online].
Available: (visited on 03/21/2019).
5
R. 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).
6
P. Kukhnavets, What are the benefits of a personal task manager? 2019. [Online]. Available: />blog/benefits-personal-task-manager (visited on 01/22/2019).

3


bị thay đổi. Do đó bài tốn lập lịch cơng việc cá nhân có thể tự động phân chia các công việc
nhỏ 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ụng
quả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ệu
quả. 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 quan
trọ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ột
cá 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ền
tảng cho các bài tốn lập lịch cơng việc đặc thù khác và cho bài tốn lập lịch cơng việc trong
mộ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 tốn sẽ có hai đặc điểm chính. Thứ nhất, mỗi
người đều có những khung thời gian làm việc (available-windows) khác nhau, có thể linh động
sắ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ệc
lớ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ưng
nếu các cơng việc được chia q 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ưỡng
xá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ại
thường không được đề cập đến trong các bài tốn lập lịch hiện nay (xem trình bày tại Bảng 1.1).

4


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
precedence

preemption

batching

lot-sizing


bounded-splitting

Handbook of Scheduling (Leung, 2004) [1]







N/A

N/A

Multicriteria Scheduling (Vincent & Billaut, 2006) [9]







N/A

N/A

Scheduling Algorithms (Brucker, 2007) [10]








N/A

N/A

Introduction to Scheduling (Robert & Vivien, 2009) [11]







N/A

N/A

Handbook on Project Management and Scheduling










N/A

Scheduling: Theory, Algorithms, and Systems (Pinedo, 2016) [3]









N/A

Handbook on Scheduling (Blazewicz et al., 2019) [4]









N/A

Mathematical programming formulations for machine scheduling:








N/A

N/A





N/A

N/A

N/A



N/A





N/A

(Schwindt & Zimmermann, 2015) [12]


A survey (Blazewicz et al., 1991) [13]
Scheduling with processing set restrictions: A survey
(Leung & Li, 2008) [14]
A survey of case studies in production scheduling:
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 tốn lập lịch cơng việc
cá nhân. Bài tố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 tốn đó là các cơng việc chỉ được
sắp xếp vào những khung thời gian trống (available − windows) và các cơng việc có thể được
cắ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 |

wi Ui . Sau đó vài kỹ thuật xử lý ngôn ngữ tự nhiên được áp

dụ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ải
khả thi cho bài tố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ài
toá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 tố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ật
heuristic dựa trên quy tắc lập lịch ưu tiên LPT cũng được đề xuất để xác định lời giải khả thi
cho bài toán này.
Cũng trong năm 2013, cơng trình [18] đã đề xuất mơ hình MILP cho bài toán trên:
1|splittable; splitmin ; available − windows|Cmax , và sử dụng các MILP solver như COIN-OR
CBC, 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 cho
bài tố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 cho
bà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 tốn lập lịch cơng việc cá nhân [16], cũng
5



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ình MILP
để có thể sử dụng các MILP solver 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 tốn lập lịch cơng việc cá nhân này cịn nhiều vấn đề tồn đọng
cầ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ác
bước để các giải quyết các bài toán liên quan tới hai ràng buộc splitmin và available−windows
hay 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áp
nà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ới
từng bài tốn đặc thù cụ thể khác nhau hay khơng? Có thể áp dụng bài tốn lập lịch cơng việc
cá nhân này trên một nhóm nhiều người được khơng?

1.3

Mụ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 tố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ọn
phươ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 tốn lập lịch cơng việc cá nhân đặc thù có một số ràng buộc
thường được sử dụng trong thực tế.
O3. Nghiên cứu ứng dụng mở rộng bài tốn lập lịch cơng việc cá nhân trên một nhóm nhiều
ngườ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 tố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ập
lịch các công việc của từng cá nhân này.


1.4

Nộ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ững
nộ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
6


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ủa
bài tốn này:
• Đặc tả nhóm bài tốn lập lịch cơng việc cá nhân bao gồm bài tố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ông
việc chỉ được sắp xếp vào những khung thời gian trống, bài tố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 hồn thành khác nhau, và bài tốn lập lịch
cơ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 tốn lập
lị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ài
toá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ải
tối ưu, (4) xác định miền nghiệm của bài tốn, (5) xây dựng mơ hình Mixed-Integer
Linear 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 heuristic/metaheuristic/matheuristic để xác định lời giải khả thi cho bài tố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 Assignment, 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 Come
First 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 Annealing (SA), Genetic Algorithm (GA), Tabu Search (TABU) trên cơ sở rút giảm khơng gian
tì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.
• Đề xuất hướng tiếp cận matheuristics bằng cách kết hợp giải thuật (meta)heuristic cùng
với việc xử lý từng bài toán con nhỏ bằng công cụ MILP solver nhằm xác định lời giải

khả thi có chất lượng tốt nhất có thể.

1.5

Cấ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ình
bày bao gồm năm chương, trong đó:

7


×