fơơn vị BỘ GIÁO DỤC VÀ ĐÀO TẠO

BỘ QUỐC PHÒNG

VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ

ĐẶNG QUỐC HỮU

MỘT SỐ PHƯƠNG PHÁP GẦN ĐÚNG

GIẢI BÀI TOÁN LẬP LỊCH VỚI TÀI NGUYÊN GIỚI HẠN

LUẬN ÁN TIẾN SĨ TOÁN HỌC

Hà Nội - 2021

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG

VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ

ĐẶNG QUỐC HỮU

MỘT SỐ PHƯƠNG PHÁP GẦN ĐÚNG

GIẢI BÀI TOÁN LẬP LỊCH VỚI TÀI NGUYÊN GIỚI HẠN

Chuyên ngành: Cơ sở toán học cho tin học

Mã số: 9 46 01 10

LUẬN ÁN TIẾN SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC:

1. TS. Nguyễn Thế Lộc 2. TS. Nguyễn Doãn Cường

Hà Nội - 2021

i

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu,

kết quả nghiên cứu được trình bày trong luận án là hoàn toàn trung thực và chưa

từng được ai công bố trong bất kỳ công trình nào khác, các dữ liệu tham khảo

được trích dẫn đầy đủ.

Hà Nội, ngày tháng 08 năm 2021

Nghiên cứu sinh

Đặng Quốc Hữu

ii

LỜI CẢM ƠN

Luận án này được hoàn thành tại Viện Công nghệ thông tin - Viện Khoa

học và Công nghệ quân sự và Trường Đại học Thương mại.

Lời đầu tiên, nghiên cứu sinh bày tỏ lòng biết ơn sâu sắc tới tập thể giáo

viên hướng dẫn: TS. Nguyễn Thế Lộc và TS. Nguyễn Doãn Cường đã trực tiếp

giảng dạy và tận tình hướng dẫn, định hướng cho nghiên cứu sinh trong suốt

quá trình thực hiện luận án này.

Nghiên cứu sinh trân trọng gửi lời cảm ơn tới Thủ trưởng Viện Khoa học

và Công nghệ quân sự, Phòng Đào tạo - Viện Khoa học và Công nghệ quân sự,

Viện Công nghệ thông tin đã giúp đỡ tôi trong suốt thời gian học tập, nghiên

cứu, thực hiện luận án. Cảm ơn các thầy cô tại Viện Khoa học và Công nghệ

quân sự, Đại học Quốc gia Hà Nội, Đại học Sư phạm Hà Nội,... đã nhiệt tình

hướng dẫn, giúp đỡ tôi hoàn thành các nội dung của chương trình tiến sĩ và

đóng góp cho tôi những ý kiến quý báu về mặt nội dung khoa học và bố cục

của luận án.

Tôi xin trân trọng cảm ơn các thầy cô, các nhà khoa học, đồng nghiệp

trong và ngoài Viện đã đọc, nhận xét luận án, đóng góp những ý kiến quý báu

để nghiên cứu sinh hoàn thiện luận án này.

Trân trọng cảm ơn Ban Giám hiệu trường Đại học Thương mại, các đồng

nghiệp và gia đình đã động viên, chia sẻ và tạo điều kiện cho tôi trong suốt thời

gian làm nghiên cứu sinh.

Nghiên cứu sinh

Đặng Quốc Hữu

iii

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT ....................................................... v

DANH MỤC CÁC BẢNG ....................................................................................... vii

DANH MỤC CÁC HÌNH VẼ....................................................................................ix

MỞ ĐẦU ..................................................................................................................... 1

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN MS-RCPSP ........................................ 8

1.1. Bài toán MS-RCPSP ......................................................................................... 9 1.1.1. Mô tả bài toán ................................................................................................... 9 1.1.2. Một số ứng dụng thực tế của bài toán MS-RCPSP ......................................... 15 1.1.3. Những nghiên cứu liên quan ........................................................................... 19 1.2. Một số thuật toán metaheuristic tìm nghiệm gần đúng ................................... 24 1.2.1. Thuật toán PSO ............................................................................................... 25 1.2.2. Thuật toán PSO kết hợp với tìm kiếm lân cận ................................................ 27 1.2.3. Thuật toán DE ................................................................................................. 31 1.2.4. Thuật toán Cuckoo Search .............................................................................. 33

Kết luận chương 1 ..................................................................................................... 42

CHƯƠNG 2: GIẢI BÀI TOÁN MS-RCPSP BẰNG PHƯƠNG PHÁP TỐI ƯU BẦY ĐÀN VÀ PHƯƠNG PHÁP TIẾN HÓA VI PHÂN ........................................ 43

2.1. Phương pháp biểu diễn cá thể ......................................................................... 44 2.2. Thang đo độ chênh của cá thể ......................................................................... 45 2.3. Đề xuất thuật toán M-PSO .............................................................................. 50 2.3.1. Kỹ thuật Di cư ................................................................................................. 51 2.3.2. Thuật toán M-PSO .......................................................................................... 54 2.3.3. Thực nghiệm ................................................................................................... 56 2.3.4. Đánh giá chất lượng lời giải của thuật toán .................................................... 61 2.3.5. Hình ảnh so sánh M-PSO và GA-M ............................................................... 63 2.4. Đề xuất thuật toán DEM ................................................................................. 64 2.4.1. Phương pháp tái thiết lập tài nguyên thực hiện .............................................. 64 2.4.2. Thuật toán ....................................................................................................... 70 2.4.3. Kết quả thực nghiệm ....................................................................................... 70 2.4.4. Đánh giá chất lượng lời giải của thuật toán .................................................... 74 2.4.5. Hình ảnh so sánh DEM với thuật toán GA-M ................................................ 77

Kết luận chương 2 ..................................................................................................... 79

CHƯƠNG 3: BÀI TOÁN REAL-RCPSP ................................................................ 80

3.1. Bài toán Real-RCPSP ..................................................................................... 80

MỤC LỤC

iv

3.1.1. Phát biểu bài toán ............................................................................................ 81 3.1.2. Những ứng dụng thực tế của bài toán Real-RCPSP ....................................... 82 3.2. Xếp loại bài toán Real-RCPSP thông qua phân loại Graham ......................... 83

Kết luận chương 3 ..................................................................................................... 88

CHƯƠNG 4: GIẢI BÀI TOÁN REAL-RCPSP BẰNG PHƯƠNG PHÁP TIẾN HÓA VI PHÂN VÀ PHƯƠNG PHÁP CUCKOO SEARCH .................................. 89

4.1. Phương pháp biểu diễn cá thể ......................................................................... 90 4.2. Đề xuất thuật toán A-DEM ............................................................................. 92 4.2.1. Phương pháp thích nghi .................................................................................. 93 4.2.2. Thuật toán A-DEM ......................................................................................... 97 4.2.3. Thực nghiệm ................................................................................................... 99 4.2.4. Đánh giá chất lượng lời giải của thuật toán .................................................. 104 4.2.5. Hình ảnh so sánh A-DEM và GA-M ............................................................ 105 4.3. Đề xuất thuật toán R-CSM ............................................................................ 106 4.3.1. Thuật toán ..................................................................................................... 107 4.3.2. Kết quả thực nghiệm ..................................................................................... 109 4.3.3. Đánh giá chất lượng lời giải của thuật toán .................................................. 110 4.3.4. Hình ảnh so sánh R-CSM với thuật toán GA-M ........................................... 111 4.4. Đề xuất thuật toán RR-CSM ......................................................................... 112 4.4.1. Phương pháp Rotate ...................................................................................... 113 4.4.2. Thuật toán ..................................................................................................... 117 4.4.3. Kết quả thực nghiệm ..................................................................................... 119 4.4.4. Đánh giá chất lượng lời giải của thuật toán .................................................. 120 4.4.5. Hình ảnh so sánh RR-CSM với thuật toán GA-M ........................................ 122

Kết luận chương 4 ................................................................................................... 124

KẾT LUẬN ............................................................................................................. 125

DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ ........................ 127

TÀI LIỆU THAM KHẢO ....................................................................................... 129

v

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Tập tác vụ (task) cần thực hiện trước tác vụ i Ci

Tập các tài nguyên; L

Li Tập tài nguyên có thể thực hiện tác vụ i, Li L

Tài nguyên thứ i Li

Một lịch biểu khả thi của bài toán; P

Tập tất cả các lịch biểu Pall

Tập tất các các kỹ năng của các tài nguyên; S

Si Tập các kỹ năng của tài nguyên i, Si S

Tập các tác vụ của dự án W

Wi Tập các tác vụ có thể thực hiện bởi tài nguyên i, Wi W

Tác vụ thứ i Wi

Algorithm Thuật toán, mô tả bằng mã giả của một thuật toán

A-DEM Thuật toán mới A-DEM (Adaptive DEM)

Giá trị trung bình (Average) AVG

Giá trị tốt nhất (BEST) BEST

Xác suất lai ghép (Crossover Probability ) CR

Thuật toán Cuckoo Search (Cuckoo Search) CS

Thuật toán CS áp dụng giải bài toán MS-RCPSP (CS for CSM

MS-RCPSP)

Thuật toán tiến hóa vi phân (Differential Evolution) DE

Thuật toán đề xuất DEM áp dụng giải bài toán MS-RCPSP DEM

(DE for MS-RCPSP)

Fitness Giá trị tốt nhất của một cá thể trong quần thể từ thế hệ đầu

tiên cho đến thế hệ hiện tại.

GA Thuật toán di truyền (Genetic Algorithms)

GRASP Thuật toán lai giữa Greedy và Adative(Greedy Randomized

vi

Adaptive Search Procedure)

GreedyDO Thuật toán tham lam nhằm tối ưu thời gian thực hiện

(Greedy algorithm for Duration Optimization)

GS Kỹ thuật tìm kiếm toàn cục (Global Search)

HAntCO Thuật toán tối ưu đàn kiến lai (Hybrid Ant Colony

Optimization)

iMOPSE Bộ dữ liệu chuẩn iMOPSE (iMOPSE dataset)

LS Kỹ thuật tìm kiếm cục bộ (Local Search)

Makespan Thời gian tối thiểu để hoàn thành dự án

M-PSO Thuật toán đề xuất M-PSO (Migration PSO)

MS-RCPSP Bài toán lập lịch với tài nguyên giới hạn và đa kỹ năng

(Multi skill - RCPSP)

PSO Thuật toán tối ưu bầy đàn (Particle Swarm Optimization)

RCPSP Bài toán lập lịch thực hiện dự án với tài nguyên giới hạn -

sau này viết gọn là: bài toán lập lịch với tài nguyên giới hạn

(Resource-Constrained Project Scheduling Problem)

Real-RCPSP Bài toán mới Real-RCPSP (Real-RCPSP Problem)

R-CSM Thuật toán đề xuất R-CSM (Reallocate CSM)

RR-CSM Thuật toán đề xuất RR-CSM (Rotate and Reallocate CSM)

STD Độ lệch chuẩn (Standard Deviation)

TNG Công ty cổ phần đầu tư và thương mại TNG

vii

Trang

DANH MỤC CÁC BẢNG

Bảng 1.1: Thông tin đầu vào của dự án .......................................................... 11

Bảng 1.2: Dữ liệu về tác vụ và yêu cầu thực hiện .......................................... 18

Bảng 1.3: Tổng hợp các nghiên cứu về bài toán MS-RCPSP ........................ 24

Bảng 2.1: Thời gian thực hiện các tác vụ ........................................................ 44

Bảng 2.2: Thang đo tài nguyên thực hiện tác vụ ............................................ 46

Bảng 2.3: Tài nguyên có thể thực hiện tác vụ ................................................. 48

Bảng 2.4: Giá trị vector thang đo .................................................................... 48

Bảng 2.5: Tài nguyên thực hiện tác vụ của cá thể S1, S2 ................................. 48

Bảng 2.6: Giá trị của vector độ chênh d .......................................................... 48

Bảng 2.7: Kết quả cộng hai cá thể .................................................................. 50

Bảng 2.8: Năng lực của các tài nguyên ........................................................... 53

Bảng 2.9: Lịch biểu khả thi của dự án trong ví dụ 2.2 .................................... 53

Bảng 2.10: Lịch biểu mới sau khi di cư .......................................................... 53

Bảng 2.11: Bộ dữ liệu iMOPSE cho bài toán MS-RCPSP ............................. 56

Bảng 2.12: Kết quả thực nghiệm M-PSO ....................................................... 59

Bảng 2.13: So sánh kết quả thực nghiệm M-PSO với các thuật toán khác .... 61

Bảng 2.14: Thời gian thực hiện các tác vụ ...................................................... 68

Bảng 2.15: Năng lực các tài nguyên ............................................................... 68

Bảng 2.16: Tài nguyên thực hiện tác vụ ......................................................... 69

Bảng 2.17: Kết quả thực nghiệm DEM với bộ dữ liệu iMOPSE.................... 71

Bảng 2.18: So sánh kết quả thực nghiệm DEM với các thuật toán ................ 73

Bảng 2.19: So sánh kết quả thực nghiệm DEM với M-PSO .......................... 73

Bảng 4.1: Thời gian chuẩn thực hiện các tác vụ ............................................. 90

Bảng 4.2: Năng lực tài nguyên của dự án ....................................................... 90

Bảng 4.3: Yêu cầu tài nguyên thực hiện tác vụ và thời gian thực hiện .......... 91

Bảng 4.4: Thời gian thực hiện các tác vụ ........................................................ 92

Bảng 4.5: Các hợp đồng may công nghiệp ................................................... 102

Bảng 4.6: Dữ liệu chuyền may của TNG ...................................................... 102

viii

Bảng 4.7: Kết quả thực nghiệm A-DEM trên bộ dữ liệu iMOPSE .............. 102

Bảng 4.8: Kết quả thực nghiệm A-DEM với bộ dữ liệu TNG ...................... 103

Bảng 4.9: Kết quả thực nghiệm R-CSM với bộ dữ liệu iMOPSE ................ 109

Bảng 4.10: Kết quả thực nghiệm R-CSM với bộ dữ liệu TNG .................... 110

Bảng 4.11: Thời gian thực hiện các tác vụ .................................................... 113

Bảng 4.12: Kết quả thực nghiệm RR-CSM với bộ dữ liệu iMOPSE ........... 119

Bảng 4.13: Kết quả thực nghiệm RR-CSM với bộ dữ liệu TNG.................. 120

ix

Trang

DANH MỤC CÁC HÌNH VẼ

Hình 1.1. Đồ thị ưu tiên thực hiện các tác vụ. ................................................ 11

Hình 1.2. Biểu đồ Gantt về thực hiện các tác vụ theo thời gian ..................... 12

Hình 1.3. Ma trận quan hệ giữa tác vụ và kỹ năng của tài nguyên ................. 15

Hình 1.4. Biểu đồ Gantt mô tả một phương án lịch biểu. ............................... 18

Hình 1.5. Sơ đồ bay của 2 chiếc UAV ............................................................ 19

Hình 1.6. Sơ đồ di chuyển của một cá thể i trong PSO .................................. 26

Hình 1.7. Kiểu lân cận Ring (a) và Von Neumann (b) ................................... 28

Hình 1.8. Hàm RotateRight (a) và hàm Exchange (b) .................................... 30

Hình 1.9. Chuyển động Brown của 5 hạt phấn hoa ........................................ 35

Hình 1.10. Chuyển động Brown của 3 hạt keo ............................................... 35

Hình 1.11. Đồ thị hàm mật độ xác suất của phân phối Lévy .......................... 37

Hình 1.12. 1000 bước dịch chuyển Lévy flight và chuyển động Brown ........ 38

Hình 2.1. Đồ thị ưu tiên các tác vụ trong dự án .............................................. 44

Hình 2.2. Tài nguyên thực hiện tác vụ theo thời gian ..................................... 45

Hình 2.3. Biểu diễn giá trị trên thang đo ......................................................... 47

Hình 2.4. Thay đổi tài nguyên thực hiện tác vụ .............................................. 52

Hình 2.5. So sánh giá trị BEST giữa M-PSO và GA-M ................................ 63

Hình 2.6. So sánh giá trị STD giữa M-PSO và GA-M .................................. 63

Hình 2.7. Sơ đồ khối thực hiện di chuyển tác vụ sang tài nguyên khác ......... 67

Hình 2.8. Thứ tự ưu tiên của các tác vụ .......................................................... 68

Hình 2.9. Biểu đồ Gantt của lịch biểu 2.15 ..................................................... 69

Hình 2.10. Biểu đồ Gantt của lịch biểu mới ................................................... 69

Hình 2.11. Minh họa phương pháp tái thiết lập tài nguyên ............................ 69

Hình 2.12. So sánh giá trị BEST giữa DEM với GA-M ................................ 77

Hình 2.13. So sánh giá trị STD giữa DEM với GA-M ................................... 77

Hình 2.14. So sánh giá trị AVG giữa DEM với GA-M .................................. 78

Hình 3.1. Các kiểu thứ tự thực hiện tác vụ ..................................................... 86

x

Hình 4.1. Biểu đồ Gantt của lịch biểu trong ví dụ 4.1 .................................... 92

Hình 4.2. Kiến trúc hình sao ........................................................................... 93

Hình 4.3. Tìm các cá thể lân cận ..................................................................... 94

Hình 4.4. So sánh giá trị BEST giữa A-DEM với GA-M trên iMOPSE ...... 105

Hình 4.5. So sánh giá trị STD giữa A-DEM với GA-M trên iMOPSE ........ 105

Hình 4.6. So sánh giá trị BEST giữa A-DEM và GA-M và TNG ................ 106

Hình 4.7. So sánh giá trị STD giữa A-DEM với GA-M trên bộ dữ liệu

TNG ................................................................................................ 106

Hình 4.8. So sánh giá trị BEST giữa R-CSM với GA-M trên iMOPSE ...... 111

Hình 4.9. So sánh giá trị STD giữa R-CSM với GA-M trên iMOPSE ......... 111

Hình 4.10. So sánh giá trị BEST giữa R-CSM, GA-M và TNG trên .......... 112

Hình 4.11. So sánh giá trị STD giữa R-CSM với GA-M.............................. 112

Hình 4.12. Đồ thị ưu tiên của dự án 1 ........................................................... 113

Hình 4.13. Đồ thị ưu tiên của dự án 2 ........................................................... 113

Hình 4.14. Các tài nguyên sử dụng liên tục (a) và có thời gian trống (b) .... 114

Hình 4.15. Biểu đồ Gantt khi áp dụng phương pháp Rotate ......................... 116

Hình 4.16. So sánh giá trị BEST giữa R-CSM, RR-CSM, GA-M ............... 122

Hình 4.17. So sánh giá trị STD giữa R-CSM, RR-CSM, GA-M trên

iMOPSE .......................................................................................... 122

Hình 4.18. So sánh giá trị BEST giữa R-CSM, RR-CSM và TNG ............. 123

Hình 4.19. So sánh giá trị STD giữa RR-CSM với R-CSM ......................... 123

1

MỞ ĐẦU

1. Tính cấp thiết của đề tài luận án

Cách mạng công nghiệp 4.0 đang diễn ra mạnh mẽ trên toàn thế giới với

nền tảng là các hệ thống điều khiển và tự động hóa thông minh cho phép các

thiết bị giao tiếp với nhau và với con người. Internet vạn vật (IoT) mang lại khả

năng kết nối nhiều thiết bị tạo thành hệ thống thông minh đồng thời làm bùng

nổ lượng dữ liệu trên các mạng truyền thông, trong khi đó các tài nguyên phục

vụ kết nối, truyền thông lại là hữu hạn. Do vậy, cần có các phương án lập lịch

phân phối, cấp phát tài nguyên cũng như quản lý các dự án công việc sao cho

hiệu quả.

Trong thực tế, việc lập lịch trong các dự án hoặc các dây chuyền sản xuất

luôn bị ràng buộc bởi những điều kiện như thời gian hoàn thành dự án, tài

nguyên cần thiết để thực hiện dự án... nên cần có các phương án lập lịch điều

phối một cách hiệu quả, gắn liền với thực tế.

Bài toán RCPSP (Resource-Constrained Project Scheduling Problem) là bài

toán giải quyết các vấn đề về lập lịch dự án với tài nguyên giới hạn bởi một số

ràng buộc hoặc điều kiện nhất định. MS-RCPSP (Multi Skill - RCPSP) là bài

toán mở rộng từ bài toán gốc RCPSP sau khi được bổ sung thêm ràng buộc về

yếu tố đa kỹ năng của các tài nguyên. Trong bài toán MS-RCPSP, mỗi tài

nguyên sẽ có thể có nhiều kỹ năng khác nhau, mỗi kỹ năng có thể có nhiều bậc

(mức) kỹ năng khác, mỗi tác vụ cũng yêu cầu tài nguyên thực hiện cần đáp ứng

đúng loại kỹ năng và phải đạt một mức nhất định mới có thể thực hiện được.

Với sự mở rộng này bài toán MS-RCPSP có nhiều khả năng ứng dụng hơn

trong thực tế. Hiện nay nhiều nhà khoa học đã đưa ra các phương pháp giải bài

toán MS-RCPSP dựa trên giải thuật heuristic và metaheuristic, tuy nhiên các

phương pháp này thường dựa trên các kỹ thuật khá truyền thống nên đạt hiệu

quả chưa thực sự tốt. Do vậy, hướng nghiên cứu thứ nhất của luận án là

2

nghiên cứu đề xuất các phương pháp giải mới, hiệu quả hơn cho bài toán MS-

RCPSP.

Với bài toán MS-RCPSP, tài nguyên thực hiện tác vụ cần có kỹ năng phù

hợp và bậc kỹ năng lớn hơn hoặc bằng bậc (mức) kỹ năng yêu cầu, thời gian

thực hiện tác vụ là như nhau với bất kỳ tài nguyên thực hiện nào. Tuy nhiên,

khi quan sát dữ liệu thực tế, tác giả nhận thấy tài nguyên có bậc kỹ năng cao

hơn thường sẽ hoàn thành tác vụ nhanh hơn, chẳng hạn như thợ bậc 7 sẽ hoàn

thành công việc trong thời gian ngắn hơn so với thợ bậc 3. Do vậy, luận án đề

xuất bài toán mới Real-RCPSP, bài toán này bổ sung ràng buộc về thời gian

thực hiện thay đổi theo bậc kỹ năng của tài nguyên thực hiện, đây là hướng

nghiên cứu thứ hai của luận án. Tiếp theo, luận án nghiên cứu và đề xuất các

thuật toán giải bài toán Real-RCPSP, đây là hướng nghiên cứu thứ ba của

luận án.

Bài toán MS-RCPSP và bài toán Real-RCPSP có thể ứng dụng trong nhiều

lĩnh vực của khoa học và cuộc sống như lập lịch điều phối tài nguyên trong hệ

điều hành, các hệ thống phân tán, lập lịch biểu cho các dây chuyền sản

xuất,...Việc nghiên cứu giải hai bài toán trên có ý nghĩa quan trọng, giúp nâng

cao hiệu suất của nhiều lĩnh vực nhất là trong điều kiện cách mạng công nghiệp

4.0 đang diễn ra trên mọi lĩnh vực.

Nhiều trường hợp riêng của bài toán lập lịch đã được chứng minh là thuộc

lớp NP-Khó, nên không thể tìm được lời giải tối ưu trong thời gian đa thức.

Thay vì đó, một số phương pháp cận tối ưu được đề xuất để giải các bài toán

này. Một số cách tiếp cận theo Heuristic truyền thống như Min-min, Max-

min,... hoặc với các thuật toán truyền thống như GA[1],[52],

Ant[12],[39],[41],[55],… thường cho chất lượng lời giải không tốt. Do vậy,

việc nghiên cứu đề xuất các thuật toán mới là cần thiết để nâng cao chất lượng

lời giải.

3

2. Mục tiêu nghiên cứu

Trên cơ sở phân tích các vấn đề còn tồn tại của các nghiên cứu liên quan và

xác định ba hướng nghiên cứu, mục tiêu của luận án là:

- Nghiên cứu, đề xuất các phương pháp gần đúng để giải bài toán MS-RCPSP

nhằm cực tiểu hóa thời gian thực hiện dự án.

- Đề xuất bài toán mới Real-RCPSP, là bài toán có khả năng ứng dụng cao

trong việc lập kế hoạch điều phối sản xuất đặc biệt là các dây chuyền sản

xuất sản phẩm.

- Nghiên cứu và đề xuất thuật toán gần đúng để giải bài toán Real-RCPSP.

3. Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu

- Bài toán lập lịch thực hiện dự án với tài nguyên giới hạn và khả năng áp

dụng của bài toán này trong việc lập kế hoạch sản xuất, lập lịch điều phối

luồng công việc, phân công thực hiện các tác vụ dựa trên các tập tài nguyên

cho trước.

- Các phương pháp Metaheuristic như thuật toán tối ưu bầy đàn PSO (Particle

Swarm Optimization) [12],[23],[33],[56],[59], thuật toán di truyền GA

(Genetic Algorithm) [1],[24], thuật toán tiến hóa vi phân DE (Differential

Evolution) [8],[26], thuật toán tiến hóa CS (Cuckoo Search)

[20],[25],[34],[36],[60],[61].

Phạm vi nghiên cứu của luận án là các phương pháp cận tối ưu và các thuật

toán tiến hóa để giải bài toán MS-RCPSP và bài toán mới Real-RCPSP.

4. Nội dung nghiên cứu

Luận án này tập trung vào nghiên cứu giải quyết hai bài toán: bài toán MS-

RCPSP (đã có từ trước) và bài toán mới Real-RCPSP (do nghiên cứu sinh đề

xuất, dựa trên bài toán RS-RCPSP) theo hướng tiếp cận Metaheuristic. Dựa

4

trên các giải thuật tiến hóa bao gồm Tối ưu bầy đàn PSO, Tiến hóa vi phân DE

và CS, luận án đề xuất các thuật toán tiến hóa mới:

- M-PSO và DEM để giải bài toán MS-RCPSP

- A-DEM, R-CSM và RR-CSM để giải bài toán Real-RCPSP.

Để kiểm chứng, cuối mỗi phần đều trình bày quá trình cài đặt các thuật toán đề

xuất, thu thập, so sánh, phân tích và đánh giá kết quả thực nghiệm.

5. Phương pháp nghiên cứu

Nghiên cứu được tiến hành dựa trên các phương pháp sau:

- Phương pháp nghiên cứu tài liệu, phân tích và tổng hợp (Giai đoạn tìm hiểu

bài toán);

- Phương pháp phân tích và tổng hợp (Giai đoạn xây dựng mô hình lý thuyết

và đề xuất giải pháp);

- Phương pháp thực nghiệm (Giai đoạn kiểm chứng).

Kết quả thực nghiệm trên các bộ dữ liệu được xử lý bằng những phương pháp

sau:

- Phân tích phương sai;

- So sánh giá trị trung bình;

- Phân tích tương quan.

6. Ý nghĩa khoa học và thực tiễn

Về mặt lý thuyết khoa học, hiện nay có nhiều công trình nghiên cứu và đề

xuất phương pháp giải cho bài toán MS-RCPSP, các phương pháp dựa trên các

kỹ thuật truyền thống như Greedy, GA, Ant,... Luận án đề xuất các phương

pháp hiệu quả hơn dựa trên các kỹ thuật tiến hóa như PSO, DE và CS. Luận án

giới thiệu bài toán mới lần đầu được đề xuất là bài toán Real-RCPSP với khả

năng ứng dụng thực tế cao hơn bài toán MS-RCPSP đã có, đặc biệt là khi được

áp dụng trong các dây chuyền sản xuất hay các dự án tiến hành theo kiểu luồng

công việc (workflow). Bài toán hướng tới việc lập kế hoạch sản xuất tự động

5

nhằm tối thiểu hóa thời gian thực hiện (makespan).

Về thực tiễn, kết quả nghiên cứu của luận án là cơ sở khoa học để thực thi

các thuật toán lập lịch điều phối thực hiện dự án với tài nguyên giới hạn trong

thực tế. Luận án cũng nghiên cứu và đề xuất phương pháp số hóa dữ liệu thực

tế để áp dụng cho mô hình bài toán lập lịch, điều này giúp ích trong việc chuyển

đổi số và ứng dụng công nghệ thông tin trong tự động hóa sản xuất của doanh

nghiệp.

7. Bố cục của luận án

Luận án gồm các phần: Mở đầu, bốn chương chính, Kết luận và hướng phát

triển, Danh mục các công trình khoa học đã công bố, Tài liệu tham khảo. Phần

Mở đầu trình bày tính cấp thiết của đề tài luận án, những khái quát chung về

mục tiêu, đối tượng, nội dung, phương pháp nghiên cứu, ý nghĩa khoa học và

thực tiễn của luận án. Tóm tắt nội dung những phần còn lại như sau:

Chương 1. Tổng quan về bài toán MS-RCPSP

MS-RCPSP là bài toán lập lịch thực hiện dự án với tài nguyên giới hạn và

đa kỹ năng, đã được chứng minh là bài toán NP-Khó. So với bài toán RCPSP

tổng quát, bài toán MS-RCPSP là một trường hợp riêng có tính ứng dụng cao

hơn trong một số lĩnh vực thực tế đặc thù do được bổ sung yếu tố kỹ năng và

mức kỹ năng của tài nguyên thực hiện các tác vụ. Chương này trình bày tổng

quan về bài toán MS-RCPSP, các ứng dụng của các bài toán này và ba trong số

những thuật toán thuật toán metaheuristic mạnh nhất được các nhóm nghiên

cứu trước đó áp dụng để giải bài toán MS-RCPSP nói riêng cũng như các bài

toán NP-Khó nói chung là PSO, DE và CS. Ba thuật toán này cũng là cơ sở để

luận án đề xuất các thuật toán mới trong các chương tiếp theo.

Chương 2. Giải bài toán MS-RCPSP bằng phương pháp Tối ưu bầy đàn

và phương pháp Tiến hóa vi phân.

6

Chương này trình bày về phương pháp biểu diễn cá thể của bài toán MS-

RCPSP và đề xuất thang đo độ chênh lệch giữa các cá thể. Thang đo là thành

phần quan trọng để phục vụ cho quá trình tính toán tiến hóa của các cá thể. Để

phục vụ cho việc thực nghiệm, kiểm chứng thuật toán, chương này cũng giới

thiệu về bộ dữ liệu iMOPSE, bộ dữ liệu chuẩn được Myszkowski [42],[45] và

các cộng sự phát triển riêng cho bài toán MS-RCPSP. Trên cơ sở đó, luận án

đề xuất hai thuật toán mới đề giải bài toán MS-RCPSP:

- Thuật toán M-PSO được phát triển từ thuật toán tối ưu bầy đàn PSO

- Thuật toán DEM được xây dựng trên cơ sở thuật toán tiến hóa vi phân DE

Để kiểm chứng các thuật toán đề xuất, luận án tiến hành thực nghiệm, tổng

hợp kết quả thực nghiệm, phân tích và đánh giá tính hiệu quả.

Chương 3. Bài toán Real-RCPSP

Chương 3 trình bày về bài toán mới đề xuất Real-RCPSP, bao gồm các nội

dung như phát biểu toán học của bài toán, giới thiệu ứng dụng thực tế của bài

toán và xếp loại bài toán.

Chương 4. Giải bài toán Real-RCPSP bằng phương pháp Tiến hóa vi

phân và phương pháp Cuckoo Search

Trong chương 4, luận án trình bày các vấn đề để giải bài toán Real-RCPSP

gồm: mã hóa cá thể, xây dựng bộ dữ liệu thực tế và ba thuật toán mới để giải

bài toán Real-RCPSP.

- Thuật toán A-DEM, được xây dựng trên cơ sở thuật toán tiến hóa vi phân

DE để ứng dụng tìm lời giải cho bài toán mới

- Thuật toán R-CSM, thuật toán mới này được đề xuất trên cơ sở của thuật

toán tiến hóa Cuckoo Search (CS)

- Thuật toán RR-CSM, thuật toán mới này được cải tiến dựa trên thuật toán

7

R-CSM

Các thuật toán này mang lại kết quả tốt với bài toán Real-RCPSP. Các thực

nghiệm được tiến hành trên bộ dữ liệu iMOPSE và bộ dữ liệu TNG do nghiên

cứu sinh tự thu thập và xây dựng. Kết quả thực nghiệm được thu thập, tổng

hợp, phân tích và đánh giá tính hiệu quả.

8

CHƯƠNG 1

TỔNG QUAN VỀ BÀI TOÁN MS-RCPSP

Các bài toán lập lịch đã được đề xuất, nghiên cứu từ năm 1950 [37], nhiệm

vụ chính của việc lập lịch là tìm ra một lịch biểu để thiết lập các tài nguyên sẵn

có trong việc thực hiện các công việc/tác vụ (task) và thỏa mãn tập ràng buộc

cho trước nhằm đạt được một mục tiêu cụ thể, thường là tối thiểu hóa chi phí

và/hoặc thời gian thực hiện của toàn dự án hoặc một quy trình sản xuất. Bài

toán lập lịch được ứng dụng trong nhiều lĩnh vực khác nhau như lập lịch điều

phối tài nguyên trong hệ điều hành [39], lập lịch cho dây chuyền sản xuất,...

hoặc ứng dụng trong lĩnh vực kinh tế, tài chính [11],[62],[CT4], quân sự

[17],[18],[28],[CT4], … Nhiều bài toán lập lịch tổng quát đã được chứng minh

là thuộc lớp NP-Khó [2],[22],[46].

Ngày nay, rất nhiều ứng dụng trong nghiên cứu khoa học và thực tiễn có sử

dụng đến dữ liệu dạng luồng công việc, đặc trưng của các ứng dụng này là phải

xử lý nhiều tác vụ với dữ liệu vào/ra giữa các tác vụ là rất lớn. Tìm ra một lịch

biểu tốt để gán các tài nguyên thực hiện từng tác vụ trong một chuỗi công việc

một cách hiệu quả là rất cần thiết và thu hút sự tập trung của nhiều nhà khoa

học.

RCPSP (Resource-Constrained Project Scheduling Problem) [2],[46],

[CT4] là bài toán lập lịch dự án với tài nguyên giới hạn, đã được chứng minh

là bài toán thuộc lớp NP-Khó. Mục tiêu là tìm ra lịch biểu thực hiện dự án với

thời gian tối thiểu trong điều kiện hạn chế về tài nguyên thực hiện. Hiện nay,

bài toán này được nghiên cứu và ứng dụng trong nhiều lĩnh vực. Luận án tập

trung tìm hiểu một trường hợp mở rộng của bài toán RCPSP, được đặt tên là

MS-RCPSP.

Chương này gồm các nội dung chính sau:

Phần 1.1: Trình bày về bài toán lập lịch thực hiện dự án với tài nguyên giới

9

hạn và đa kỹ năng (MS-RCPSP), các ứng dụng của bài toán này.

Phần 1.2: Trình bày 03 thuật toán metaheuristic để tìm nghiệm gần đúng áp

dụng cho các bài toán thuộc lớp NP-Khó, gồm: PSO, DE, CS.

1.1. Bài toán MS-RCPSP

1.1.1. Mô tả bài toán

1.1.1.1. Đặt vấn đề

Mục tiêu của bài toán RCPSP là tìm phương án lịch biểu tốt nhất để thực

hiện các tác vụ (task) của dự án trong điều kiện bị giới hạn về tài nguyên và các

tác vụ có ràng buộc về thứ tự thực hiện. Hàm mục tiêu của bài toán RCPSP

được đánh giá dựa trên một trong hai đại lượng là thời gian thực thi (makespan)

hoặc chi phí thực thi (cost) hoặc kết hợp cả hai đại lượng này (đa mục tiêu).

Trong RCPSP, nhiều tác vụ được đưa ra để thực hiện, mỗi tác vụ được mô

tả theo thời gian bắt đầu và kết thúc. Một tác vụ bất kỳ khi đã bắt đầu thì không

thể dừng lại cho đến khi kết thúc. Các tác vụ liên quan đến nhau bằng các mối

quan hệ ưu tiên về trình tự thực hiện. Theo thứ tự ưu tiên, tác vụ cần phải hoàn

thành trước thời gian bắt đầu của tác vụ khác được gọi là những tác vụ tiền

nhiệm. Các tài nguyên được cung cấp hữu hạn và được sử dụng để thực hiện

các tác vụ. Khi tác vụ cần, một số tài nguyên sẽ được sử dụng, số tài nguyên

được cấp không được vượt quá số sẵn có. Một tác vụ có thể sử dụng nhiều tài

nguyên, một đơn vị tài nguyên chỉ dùng cho một tác vụ tại một thời điểm.

Bài toán RCPSP: RCPSP [2], [CT4] là bài toán tối ưu tổ hợp, thuộc lớp

NP-Khó, gồm các thành phần (V,t,C,L,S,s), trong đó:

• V ={W0,...,Wn+1}: tập hợp các tác vụ cần thực hiện.

trong đó:

- W1,..., Wn là các tác vụ cần thực hiện

10

- W0, Wn+1 là 2 tác vụ giả định, được bổ sung để phục vụ việc xác định thời

điểm bắt đầu và thời điểm kết thúc của dự án.

• W = {W1,...,Wn} tập các tác vụ (thật) cần thực hiện.

• t = {t0,t1,...,tn+1} thời gian thực hiện của các tác vụ.

• ti: thời gian thực hiện của Wi. Các giá trị đặc biệt: t0 = tn+1 = 0.

• P: lịch biểu để thực hiện

• Bi: thời gian bắt đầu của tác vụ i

• Ei: thời gian hoàn thành tác vụ i, dễ nhận thấy: Ei = Bi + ti

• Vq = {Wi ∈ W | Bi ≤ q < Bi +ti} tập các tác vụ (thật) đang thực hiện tại thời

điểm q.

• C: tập các ưu tiên, (Wi, Wj) ∈ C, nghĩa là tác vụ Wi thực hiện trước tác vụ Wj

• L: tập hợp các tài nguyên, L = {L1, L2,..., Lk }, giả thiết chúng có thể được

tái sử dụng.

• S = {S1,..., Sk } tập hợp chứa thông tin về dung lượng tài nguyên, Sk thể hiện

dung lượng của Lk.

• sik: số lượng tài nguyên Lk được huy động để thực hiện Wi.

giả sử P0 = 0, một lời giải là khả thi nếu thỏa mãn các ràng buộc sau đây:

(1.1) Bj – Bi ≥ ti  (Wi, Wj)  C

𝑊𝑖𝑉𝑞

∑ (1.2) 𝑠𝑖𝑘 ≤ 𝑆𝑘 ∀𝐿𝑘 ∈ 𝐿, ∀𝑞 ≥ 0

Cụ thể:

 Ràng buộc (1.1): thể hiện ràng buộc ưu tiên giữa hai tác vụ i và j. Tác vụ

cha (task i) phải kết thúc trước thời điểm tác vụ con (task j) bắt đầu, tác

vụ con có thể không thực hiện ngay sau khi tác vụ cha kết thúc.

 Ràng buộc (1.2): số lượng tài nguyên k sử dụng để thực hiện tác vụ i tại

thời điểm q tối đa bằng dung lượng của tài nguyên k.

Makespan của lịch biểu P = Bn+1 là thời điểm bắt đầu của tác vụ cuối cùng.

Định nghĩa 1.1[2]: RCPSP là bài toán tìm kiếm lịch biểu P sao cho

11

makespan của P là tối thiểu theo các ràng buộc (1.1), (1.2).

Ký hiệu:

 X: tập các lời giải rời rạc, Pall: là tập các lời giải khả thi, Pall ⊆ X

 Hàm mục tiêu: f: Pall → ℝ

cần tìm lời giải khả thi P ∈ Pall, thể hiện bởi hàm f(P) là min hoặc max.

Ví dụ 1.1[2]:

Trong bảng 1.1 dưới đây, RCPSP khởi tạo 10 tác vụ, sử dụng 2 tài nguyên

với S1 = 7 và S2 = 4.

2 1 2 2 2 0 1 3 1 0 0 0 4 1 1 3 1 2 6 3 0 5 2 1 3 1 1 6 2 1 1 1 0 Bảng 1.1: Thông tin đầu vào của dự án Wi W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 0 ti si1 0 si2 0

Quan hệ ràng buộc về thứ tự ưu tiên của các tác vụ được thể hiện dưới dạng

W1

W5

W9

W10

W2

W11

W6

W0

W3

W7

W8

W4

đồ thị như trong Hình 1.1.

Hình 1.1. Đồ thị ưu tiên thực hiện các tác vụ.

Lịch biểu với makespan tối thiểu Bn+1=12 được thể hiện dưới dạng lược đồ

Gantt dạng mảng 2 chiều như trong hình 1.2, trong đó trục x thể hiện thời gian,

12

y

x

Hình 1.2. Biểu đồ Gantt về thực hiện các tác vụ theo thời gian

trục y thể hiện yêu cầu tài nguyên sử dụng.

1.1.1.2. Phát biểu bài toán MS-RCPSP

MS-RCPSP [4],[6],[22],[31],[CT4] là bài toán lập lịch thực hiện dự án với

tài nguyên giới hạn và đa kỹ năng, được mở rộng từ bài toán RCPSP. MS-

RCPSP được bổ sung thêm yếu tố đa kỹ năng của tài nguyên, theo đó, mỗi tài

nguyên có các kỹ năng (skill) khác nhau và mỗi kỹ năng có một mức/bậc (level)

nhất định. Mỗi tác vụ sẽ yêu cầu tài nguyên đáp ứng kỹ năng và mức kỹ năng

cụ thể để thực hiện. Do bổ sung ràng buộc mới, bài toán MS-RCPSP gần với

các dự án thực tế có liên quan đến yếu tố kỹ năng và mức kỹ năng hơn.

Phát biểu toán học của bài toán MS-RCPSP

Các ký hiệu:

 Ci: tập tác vụ (task) cần thực hiện trước tác vụ i

 S: tập tất các các kỹ năng của các tài nguyên; Si: Tập các kỹ năng của tài

nguyên i, Si  S;

 Si: kỹ năng thứ i;

13

 tj: thời gian thực hiện tác vụ j

 L: tập các tài nguyên;

 Lk: tập tài nguyên có thể thực hiện tác vụ k; Lk  L

 Li: tài nguyên thứ i

 W: tập các tác vụ của dự án;

 Wk: tập các tác vụ có thể thực hiện bởi tài nguyên k, Wk  W

 Wi: tác vụ thứ i

 ri: tập các kỹ năng được yêu cầu để thực hiện tác vụ i. Một tài nguyên có

thể thực hiện được tác vụ i nếu có kỹ năng giống với kỹ năng yêu cầu của

tác vụ i và có mức kỹ năng lớn hơn hoặc bằng mức kỹ năng yêu cầu.

t: biến xác định tài nguyên v có đang thực hiện tác vụ u tại thời điểm t

 Bk, Ek: thời gian bắt đầu và thời gian kết thúc thực hiện tác vụ k

 Au,v

hay không; 1: có, 0: không;

 hi: mức kỹ năng của kỹ năng (skill) i;

 gi: loại kỹ năng i;

 m: makespan của lịch biểu

 P: một lịch biểu khả thi của bài toán;

 Pall: tập tất cả các lịch biểu

 f(P): hàm mục tiêu, để tính makespan của P

 n: số tác vụ, z: số tài nguyên

Mục tiêu của bài toán MS-RCPSP là tìm lịch biểu P sao cho:

f(P)  min

Lịch biểu tìm được cần thỏa mãn các ràng buộc sau:

(1.3)  Sk    Lk L

(1.4)  tj  0  Wj W

(1.5)  Ej  0  WjW

14

(1.6)

(1.7)

𝑞  ∀ 𝐿𝑘 ∈ 𝐿, ∀𝑞 ∈ 𝑚 ∶ ∑ 𝐴𝑖,𝑘

(1.8) ≤ 1  Ei  Ej - tj WjW, j1, Wi Cj  ∀ W𝑖 ∈ 𝑊𝑘 ∃ 𝑆𝑞 ∈ 𝑆𝑘 ∶ 𝑔𝑆𝑞 = 𝑔𝑟𝑖 và ℎ𝑆𝑞 ≥ ℎ𝑟𝑖 𝑛 𝑖=1

𝑞 ∈ {0; 1}

𝑞 = 1; với 𝐴𝑗,𝑘

(1.9)  ∀ 𝑊𝑗 ∈ 𝑊 ∃! 𝑞 ∈ [0, 𝑚], ! 𝐿𝑘 ∈ 𝐿: 𝐴𝑗,𝑘

Cụ thể:

 Ràng buộc (1.3): mỗi tài nguyên phải có tối thiểu một kỹ năng nào đó

 Ràng buộc (1.4, 1.5): thời gian thực hiện của tác vụ bất kỳ tối thiểu phải

bằng 0 (thực tế thì mọi tác vụ thật, có thời gian thực hiện tối thiểu luôn >

0, trường hợp bằng 0 để minh họa cho 2 tác vụ giả thể hiện thời điểm bắt

đầu và kết thúc của dự án)

 Ràng buộc (1.6): tác vụ cha (task i) phải kết thúc trước thời điểm tác vụ

con (task j) bắt đầu. Thời điểm tác vụ i kết thúc ký hiệu là Ei, thời điểm

tác vụ con j bắt đầu là Ej - tj (thời điểm kết thúc trừ đi thời gian thực hiện).

 Ràng buộc (1.7) nghĩa là: với mọi tác vụ i  Wk (tập các tác vụ mà tài

nguyên k thực hiện được), luôn tồn tại kỹ năng S  Sk (tập skill của tài

nguyên k) sao cho 𝑔𝑆 = 𝑔𝑆𝑖: loại skill của r trùng với loại kỹ năng của Li mà tác vụ i yêu cầu. ℎ𝑆𝑞 ≥ ℎ𝑟𝑖 : mức kỹ năng của tài nguyên thực hiện cao hơn hoặc bằng mức kỹ năng yêu cầu.

𝑞 =

 Ràng buộc (1.8): tại mỗi thời điểm (q), mỗi tài nguyên chỉ được thực hiện

𝑛 𝑖=1

0 thì tài nguyên k không được gán cho

𝑛 𝑖=1

=1 thì tài nguyên k được gán cho một tác vụ duy

tối đa một tác vụ. Nếu ∑ 𝐴𝑖,𝑘 𝑞 tác vụ nào, nếu ∑ 𝐴𝑖,𝑘 nhất.

 Ràng buộc (1.9): mỗi tác vụ chỉ được gán cho một tài nguyên duy nhất và

chỉ được thực hiện bởi một tài nguyên duy nhất.

Trong bài toán MS-RCPSP, mỗi tác vụ có thêm các yêu cầu về kỹ năng

(skill) của tài nguyên cần để thực hiện, mỗi tài nguyên cũng được chia làm

nhiều mức kỹ năng khác nhau. Các ràng buộc về kỹ năng của tài nguyên được

15

yêu cầu để thực hiện một tác vụ được mô tả dưới dạng một ma trận như ví dụ

được minh họa trong hình 1.3 dưới đây:

 Có thể thiết lập  Không thể thiết lập Tác vụ S2.2 S3.1

S2.2 S1.1 W1 W2 W3 W4

Tài nguyên

                S1.3, S2.2 S2.1, S3.2 S1.2, S2.1 S2.2, S3.3 L1 L2 L3 L4

Hình 1.3. Ma trận quan hệ giữa tác vụ và kỹ năng của tài nguyên

Trong hình 1.3, ký hiệu: Si.j nghĩa là kỹ năng Si và mức kỹ năng j. Tác vụ

yêu cầu tài nguyên thực hiện phải đáp ứng loại kỹ năng và mức kỹ năng cụ thể.

Tài nguyên thực hiện cần có cùng loại kỹ năng và mức kỹ năng lớn hơn hoặc

bằng mức kỹ năng yêu cầu.

Cụ thể:

Tác vụ W1, yêu cầu tài nguyên có loại kỹ năng S2 và mức kỹ năng lớn hơn

hoặc bằng 2. Đối chiếu với bảng tài nguyên, ta thấy tài nguyên L1 có loại kỹ

năng S2 và mức kỹ năng của S2 là 2, do vậy L1 có thể thực hiện W1.

1.1.2. Một số ứng dụng thực tế của bài toán MS-RCPSP

1.1.2.1. Ứng dụng trong Fog Computing và Edge Computing

Fog Computing [32] được thiết kế để khắc phục những hạn chế của điện

toán đám mây (Cloud Computing) bằng cách cung cấp một kiến trúc phân tán

trong đó một số dữ liệu sẽ được phân loại để xử lý ngay bởi các thiết bị ở gần

nơi phát sinh dữ liệu thay vì phải gửi về trung tâm đám mây, như vậy vừa tiết

kiệm được chi phí truyền thông, giảm khả năng bị mất mát hoặc rò rỉ (do vấn

đề bảo mật) trên đường truyền lại vừa tránh được nghẽn đường truyền mạng.

Những kiến trúc này được thiết kế và xây dựng theo các mô hình của Edge

16

Computing (Điện toán biên).

Nhiệm vụ chính của Fog Computing là tìm phương án bố trí các nguồn tài

nguyên tính toán bao gồm máy chủ, router, các thiết bị lưu trữ, database sao

cho tối đa hóa việc truy xuất và xử lý cục bộ. Nói cách khác, cần tìm cách sắp

xếp sao cho chỉ những tác vụ đặc thù (chẳng hạn yêu cầu nhiều tài nguyên) mới

phải gán cho các tài nguyên ở đám mây trung tâm (vốn ở rất xa khách hàng),

còn những tác vụ có thể giải quyết tại chỗ thì đều được gán cho những nguồn

tài nguyên ngay tại nơi phát sinh yêu cầu (chẳng hạn các máy chủ có sẵn trong

mạng LAN của khách hàng). Làm như vậy vừa giảm bớt được chi phí thực thi

(có lợi cho khách hàng), bao gồm chi phí truyền thông tin và chi phí xử lý dữ

liệu, vừa giảm bớt được tình trạng tắc nghẽn đường truyền trong những giờ cao

điểm (có lợi cho nhà cung cấp dịch vụ), lại có thể rút ngắn thời gian xử lý để

đáp ứng yêu cầu về thời gian thực của một số ứng dụng. Các giải pháp lập lịch

dựa trên bài toán RCPSP có thể được áp dụng trong trường hợp này [CT4].

Việc lập lịch trong môi trường Fog Computing được chia làm 3 nhóm:

- Lập lịch cấp phát tài nguyên (resource scheduling)

- Lập lịch quản lý luồng công việc (workflow scheduling)

- Lập lịch quản lý các tác vụ (task scheduling)

1.1.2.2. Ứng dụng trong các ngành kinh tế

Vấn đề "giá tùy chọn" (Option Pricing Problem)

Mô hình định giá tùy chọn [11], [62] là mô hình toán học sử dụng các biến

nhất định để tính toán giá trị lý thuyết của một tùy chọn. Một tùy chọn hiểu là

một hợp đồng hai bên trong việc thực hiện một giao dịch. Có hai loại tùy chọn

chính:

- Call: là hợp đồng tùy chọn cung cấp cho bạn quyền nhưng không phải

là nghĩa vụ mua tài sản ở mức giá đã xác định trước hoặc vào ngày hết

hạn.

17

- Put: là hợp đồng tùy chọn cung cấp cho bạn quyền nhưng không phải là

nghĩa vụ bán tài sản ở mức giá đã xác định trước ngày hết hạn.

Giá tùy chọn là nội dung cốt lõi của tài chính hiện đại, được áp dụng trong

thị trường chứng khoán hoặc trong thị trường tài chính nói chung.

Vấn đề thị trường chứng khoán (Stock Problem)

Black and Scholes đã đề xuất mô hình Black-Scholes[11] áp dụng trong thị

trường chứng khoán, sau đó mô hình tính toán này được sử dụng để tính toán

trong lĩnh vực tài chính khác. Ngày nay mô hình này trở thành một công cụ

không thể thiếu trong thị trường chứng khoán và thị trường tài chính.

Vấn đề vị trí thiết lập kho (Facility Location Problem)

Mục tiêu là tìm kiếm vị trí đặt các kho hàng (chi nhánh) trong mạng (chuỗi)

sao cho tối thiểu hóa chi phí vận chuyển đồng thời xem xét đến các yếu tố ràng

buộc như: đối thủ cạnh tranh, không đặt gần các vị có thể gây nguy hiểm như

cháy nổ. Bài toán này đã được Y Gao[62] đề xuất dựa trên lý thuyết không chắc

chắn.

1.1.2.3. Ứng dụng trong lĩnh vực quân sự

Một bài toán con của RCPSP, ký hiệu là SRCPSP (Stochastic Resource-

constrained Project Scheduling) [17], được áp dụng trong quân sự ở ba trường

hợp cụ thể sau.

Lập kế hoạch nhiệm vụ (Mission Planning)

Một nhiệm vụ quân sự có thể được mô hình hóa như một dự án bao gồm

một hệ thống phân cấp công việc khác nhau. Các tài nguyên bao gồm: nhân

lực, tài liệu, thiết bị cần thiết để hoàn thành nhiệm vụ. SRCPSP đã được áp

dụng thành công để lập lịch thực hiện các tác vụ trên tàu hải quân [18].

18

Bảng 1.2: Dữ liệu về tác vụ và yêu cầu thực hiện

Thứ tự thực hiện

Tác vụ J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 Thời gian thực hiện (giờ) 13 6 7 9 13 11 8 12 13 15 Kỹ năng cần thiết [0,1,0,0] [0,0,1,0] [1,0,0,0] [0,0,0,1] [0,1,0,0] [0,0,1,0] [1,0,0,0] [1,1,0,0] [0,0,1,0] [0,0,1,0] - - - Thời hạn (giờ) 15 40 20 30 50 60 50 60 40 50

Bảng 1.2 thể hiện rằng trên tàu hải quân có 10 công việc(Job) cần thực hiện,

từ J1 đến J10, mỗi tác vụ có thời gian xử lý và yêu cầu kỹ năng nhất định đối với

thủy thủ. Biểu diễn thể hiện công việc 9 chỉ bắt đầu sau khi công

việc 1 bắt đầu được 14 giờ, các thủy thủ có thể có một hoặc nhiều kỹ năng trong

tập {K1, K2, K3, K4}, Áp dụng thuật toán xếp lịch, với 4 thủy thủ, kết quả

được thể hiện trong sơ đồ Gantt như hình 1.4 dưới đây.

Hình 1.4. Biểu đồ Gantt mô tả một phương án lịch biểu.

Lập kế hoạch dẫn đường

Bài toán Lập kế hoạch dẫn đường (Shortest Path Problem - SPP) nhằm tìm

đường đi ngắn nhất từ nguồn tới đích với chi phí thực hiện thấp nhất [28]. SPP

được áp dụng trong việc dẫn đường cho thiết bị bay không người lái (UAV -

Unmanned Aerial Vehicle) đến một đích cụ thể thông qua một tuyến đường

19

ngắn nhất và khả năng thành công bay đến đích cao nhất, chẳng hạn đảm bảo 2

UAV không va chạm nhau trên lịch trình. Hành trình của UAV cần đảm bảo

thỏa mãn các ràng buộc về khả năng sống sót, các ràng buộc vật lý, cảm biến

và các hoạt động khác. SPP chính là một nhánh của bài toán RCPSP.

Hình 1.5 mô tả tuyến đường và khả năng tính toán thông qua cảm biến của

hai UAV nhằm đảm bảo không va chạm trong quá trình thực hiện chuyến bay

[28].

Hình 1.5. Sơ đồ bay của 2 chiếc UAV

Thiết lập mạng vận chuyển hậu cần (Configuring Logistics Networks)

Năm 2005, Bộ Quốc phòng Mỹ xác định xây dựng chuỗi cung ứng vật tư

quân trang trong quân đội là 1 trong 25 nhiệm vụ trọng điểm của quân đội [13].

Với yêu cầu đó, quân đội Mỹ đã xây dựng mạng vận chuyển hậu cần quân sự

nhằm giảm thiểu thời gian cấp phát trang thiết bị đến các vị trí đóng quân tại

các vị trí khác nhau đồng thời kiểm soát lượng vật tư còn tồn trong kho. Bài

toán RCPSP [2],[46] được nghiên cứu ứng dụng trong việc lên kế hoạch vận

chuyển trong mạng hậu cần quân sự theo mô hình trên.

1.1.3. Những nghiên cứu liên quan

Như phần trước đã giới thiệu, bài toán lập lịch với tài nguyên giới hạn và

đa kỹ năng MS-RCPSP có nhiều ứng dụng trong khoa học và thực tiễn nên đã

20

được nghiên cứu rộng rãi bởi nhiều nhà khoa học và đã có nhiều công bố khoa

học liên quan đến bài toán này. MS-RCPSP đã được chứng minh là bài toán

thuộc lớp NP-Khó [2],[22],[46] nên các nhóm tác giả đều sử dụng các phương

pháp tìm lời giải gần đúng.

Myszkowski và cộng sự [42],[45] là nhóm nghiên cứu tập trung vào bài

toán MS-RCPSP trong nhiều năm, họ công bố sớm và nhiều kết quả về bài toán

này. Ban đầu nhóm của Myszkowski giải quyết MS-RCPSP bằng các heuristic

[31],[43],[44], chẳng hạn như bố trí thứ tự thực thi các tác vụ dựa trên thời

lượng của chúng. Các tác vụ được sắp xếp theo thời lượng tăng dần, sau đó tài

nguyên được gán cho chúng theo thứ tự đó. Nếu có nhiều tài nguyên phù hợp

với một tác vụ thì tài nguyên rẻ nhất sẽ được chọn.

Sau đó, theo xu hướng chung, Myszkowski và cộng sự nhận ra rằng các

heuristic thiếu ổn định và có phạm vi ứng dụng hẹp so với các metaheuristic

nên đã chuyển sang nghiên cứu các thuật toán tiến hóa. Họ đã công bố các công

trình giải quyết bài toán MS-RCPSP trong đó sử dụng:

- Thuật toán Tabu Search [31];

- Thuật toán Đàn kiến [44];

- Thuật toán GA [43];

- Một số thuật toán khác

So với các thuật toán đã công bố, đóng góp lớn nhất của Myszkowski và

cộng sự là đã xây dựng và công bố bộ dữ liệu chuẩn iMOPSE [42]. Trong khi

các nhóm nghiên cứu trước đó, chẳng hạn [51], thường sử dụng bộ dữ liệu

PSPLIB [47] khi giải quyết bài toán RCPSP tổng quát, Myszkowski chỉ ra rằng

bộ dữ liệu này thiếu trường thông tin về chi phí thực hiện tác vụ, do đó không

hoàn toàn thích hợp với bài toán MS-RCPSP. Nhóm của Myszkowski đã tự xây

dựng và công bố bộ dữ liệu chuẩn iMOPSE [42], sau này được công nhận rộng

rãi và được nhiều nhóm nghiên cứu cũng như chính luận án này sử dụng.

21

Qua các công trình công bố, có thể thấy, trong các nghiên cứu của mình,

nhóm tác giả Myszkowski sử dụng các thuật toán truyền thống như GA,

Greedy, Ant,... Luận án đặt mục tiêu tìm ra các thuật toán Metaheuristic mới để

giải bài toán MS-RCPSP và các thực nghiệm được thực hiện trên bộ dữ liệu

iMOPSE.

Một nhóm nghiên cứu bài toán MS-RCPSP lâu năm khác là nhóm của

Hosseinian [4],[5],[6],[7]. Năm 2018, Hosseinian và Baradaran công bố kết quả

nghiên cứu [4] về bài toán Multi-mode Multi-skilled Resource-Constrained

Project Scheduling Problem (MMSRCPSP), một biến thể của bài toán MS-

RCPSP trong đó bổ sung thêm ràng buộc rằng mỗi tác vụ chỉ có thể được thực

thi ở một vài chế độ (mode) định trước và không thể thay đổi mode một khi quá

trình thực thi đã được bắt đầu. Để giải quyết bài toán, Hosseinian và cộng sự

đã sử dụng thuật toán GA cổ điển kết hợp với phương pháp ra quyết định dựa

trên độ đo thông tin Shanon-entropy để lựa chọn cá thể cho thế hệ kế tiếp. Thực

nghiệm được tiến hành trên bộ dữ liệu sinh ngẫu nhiên bởi phần mềm ProGen.

Tiếp tục hướng nghiên cứu đó, năm 2019 nhóm tác giả này công bố bài báo [5]

trong đó sử dụng thuật toán Dandelion Algorithm để giải quyết bài toán MS-

RCPSP. Dandelion [53] là thuật toán tiến hóa mới được công bố năm 2017, lấy

ý tưởng từ khả năng tự thay đổi bán kính và hướng gieo hạt của cây Bồ công

anh. Trong bài này nhóm tác giả lựa chọn thực nghiệm trên iMOPSE [42], bộ

dữ liệu chuẩn được công nhận rộng rãi, đa dạng và phù hợp hơn với bài toán

MS-RCPSP. Năm 2020, nhóm tác giả này tiếp tục công bố bài báo [6] giải

quyết bài toán MS-RCPSP đa mục tiêu với hai hàm mục tiêu là thời gian và chi

phí thực hiện dự án. Nhóm tác giả sử dụng thuật toán Pareto-based Grey Wolf

Optimizer và tiếp tục kiểm chứng các kết quả trên bộ dữ liệu chuẩn iMOPSE

[42].

Qua phân tích tổng quan trên có thể thấy cách tiếp cận của Hosseinian và

22

Baradaran có nhiều điểm tương đồng với luận án này về bài toán (MS-RCPSP),

về cách lựa chọn giải pháp (là những thuật toán tiến hóa mới thay vì những

thuật toán “truyền thống” như GA, PSO) và về việc lựa chọn bộ dữ liệu thực

nghiệm (iMOPSE). Tuy nhiên những bài toán của Hosseinian và Baradaran

mới chỉ dừng ở mô hình lý thuyết, chưa được gắn với thực tế cũng như chưa

được thực nghiệm trên một bộ dữ liệu thực tế. Trong luận án này, ngoài thực

nghiệm với bộ dữ liệu iMOPSE, các thuật toán mới còn được kiểm chứng bằng

việc triển khai thực nghiệm trên các bộ dữ liệu thực tế.

Ngoài các nhóm nghiên cứu dài hạn với những chuỗi bài báo, nhiều tác giả

đã công bố những công trình đơn lẻ, đại đa số dựa trên các thuật toán tiến hóa.

Năm 2017, Javanmard và cộng sự sử dụng 2 thuật toán tiến hóa truyền

thống là GA và PSO để lên phương án lịch biểu cho các tài nguyên đa kỹ năng

(trên thực tế là các công nhân và kỹ sư) thực hiện một dự án trong ngành hóa

chất với mục tiêu tối thiểu hóa tổng chi phí của dự án [51]. Hai thuật toán đề

xuất được kiểm chứng trên bộ dữ liệu PSPLIB [47], vốn không hoàn toàn thích

hợp với những bài toán lập lịch có mục tiêu là tối thiểu hóa chi phí. Hơn nữa ở

khâu thực nghiệm các tác giả không so sánh được các thuật toán truyền thống

của mình với những thuật toán mới hơn mà chỉ so sánh với nhau.

Cũng nghiên cứu các bài toán đa mục tiêu như nhóm của Hosseinian, H.

Davari-Ardakani [21] đề xuất một biến thể đa mục tiêu của bài toán MS-

RCPSP nhằm tối thiểu hóa hai đại lượng là thời gian và chi phí thực hiện của

dự án. Bài toán đề xuất, được tác giả ký hiệu là MSPSP [21], chỉ giới hạn trong

những dự án có 2 đặc điểm (có thể nói là không quá phổ biến) sau đây:

- Thời điểm thực hiện là tùy ý, chẳng hạn dự án có thể được thực hiện

vào các buổi tối hoặc ngày nghỉ cuối tuần

- Chi phí về năng lượng là rất cao, có thể so sánh được với tiền lương

trả cho nhân viên.

23

Dừng lại ở việc phát biểu bài toán, H. Davari-Ardakani và đồng nghiệp [21]

chưa đề xuất được giải pháp mới mà chỉ tiến hành thực nghiệm với những giải

pháp đã có như Max-min, vì vậy bài toán có thể coi là vẫn còn để mở.

Để giải quyết bài toán MS-RCPSP, H. Dai [15] sử dụng thuật toán Memetic,

là phiên bản cải tiến của thuật toán GA nhờ bổ sung thêm thao tác tìm kiếm lân

cận (local search). Cách tiếp cận H. Dai khá tương đồng với luận án này ở các

điểm sau:

- Lựa chọn iMOPSE làm bộ dữ liệu thực nghiệm;

- Lựa chọn các thuật toán của nhóm Myszkowski làm đối tượng so

sánh do tính hiệu quả của chúng.

Tuy nhiên công trình của H. Dai có một số hạn chế sau:

- Lựa chọn những thuật không phải là hiệu quả nhất của nhóm

Myszkowski làm đối tượng so sánh, chẳng hạn thuật toán GRASP;

- Thuật toán đề xuất (memetic) là một trong những thuật toán truyền

thống, đã được sử dụng từ lâu nên không còn nhiều tính đột phá.

Nemati-Lafmejani [48] đã phát triển một mô hình tối ưu hóa tích hợp hai

mục tiêu để giải quyết bài toán MS-RCPSP, mục tiêu của mô hình đề xuất là

giảm thiểu chi phí và thời gian thực hiện dự án. Younis và cộng sự [38] đã đề

xuất một thuật toán metaheuristic kết hợp các phương pháp tiếp cận tối ưu hóa

đàn kiến và tìm kiếm lân cận để lập lịch trong điện toán lưới.

Một số nghiên cứu tập trung giải quyết các lớp bài toán con khác của MS-

RCPSP. Zhu và cộng sự [29] đã đề xuất một thuật toán tiến hóa dựa trên kỹ

thuật multi-verse kết hợp với một số thuật toán heuristic khác.

Một số tác giả cũng đã nghiên cứu để áp dụng bài toán MS-RCPSP cho

nhiều lĩnh vực khoa học và tài chính. O.P. Mejia [40] đã phát triển một thuật

toán lập lịch để quản lý các hoạt động của phòng thí nghiệm hạt nhân. Để giải

24

quyết vấn đề của các cảm biến dày đặc trong mạng cảm biến không dây, R.

Wan [49] đề xuất một thuật toán lập lịch tiết kiệm năng lượng, sắp xếp một số

cảm biến dự phòng vào chế độ nghỉ để giảm xung đột truyền dữ liệu và tiêu

hao năng lượng. W. Guo [56] đã phát triển một thuật toán dựa trên PSO có

được hiệu suất tốt hơn so với các phương pháp tiếp cận trước đây về sử dụng

năng lượng. H. Cheng [14] và cộng sự đã xây dựng một thuật toán dựa trên

PSO khác có tên là DPSO-CA dựa trên PSO rời rạc nhằm mục đích giảm thiểu

nhiễu đồng kênh trong mạng. MS-RCPSP cũng được nghiên cứu và áp dụng

trong lĩnh vực tài chính ngân hàng bởi Black and Scholes [11] và Chen[58].

Bảng 1.3 dưới đây tổng hợp lại các nghiên cứu chính liên quan đến bài toán

MS-RCPSP.

Bảng 1.3: Tổng hợp các nghiên cứu về bài toán MS-RCPSP

TT Năm Nhóm tác giả Thuật toán Bộ dữ liệu

2017 Javanmard [47],[51] GA, PSO PS-LIB 1

iMOPSE 2 2013- 2019 Myszkowski và cộng sự [31],[42],[43],[44],[45] GA, Ant, Greedy,...

2018 Hosseinian [4],[5],[6],[7] GA, PSO 3 ProGen, iMOPSE

2019 H. Davari-Ardakani [21] Min-Max iMOPSE 4

2019 Huafeng Dai [15] Memetic iMOPSE 5

Luận án tập trung giải quyết bài toán MS-RCPSP bằng các thuật toán

Metaheuristic mới, các thuật toán được kiểm chứng qua việc thực nghiệm với

bộ dữ liệu iMOPSE. Đồng thời, để gắn với thực tế, luận án cũng đề xuất bài

toán mới Real-RCPSP, các thuật toán giải bài toán này và triển khai thực

nghiệm với các bộ dữ liệu thực tế để kiểm chứng.

1.2. Một số thuật toán metaheuristic tìm nghiệm gần đúng

Để tìm nghiệm gần đúng có rất nhiều thuật toán đã được đề xuất và sử dụng

như Thuật toán nhánh cận [CT3], Tabu Search [CT6], PSO, DE, Cuckoo

25

Search,... Luận này sử dụng các thuật toán PSO, DE, Cuckoo Search.

1.2.1. Thuật toán PSO

k)

k) + c2.rand2().(gbest – xi

k+1 = 𝜔.vi

k+1

(1.10) Tối ưu bầy đàn (Particle Swarm Optimization - PSO) [23],[33],[56],[59], [CT2] là một thuật toán tiến hóa. Tương tự như các thuật toán tiến hóa khác, PSO sẽ tiến hành tìm kiếm dựa trên quần thể, ban đầu quần thể được khởi tạo một cách ngẫu nhiên với số cá thể xác định. Tuy nhiên PSO khác với các thuật toán tiến hóa khác là mỗi cá thể trong quần thể được xác định bởi hai tham số cơ bản là vector vị trí (đại diện cho kinh nghiệm của cá thể qua các thế hệ) và vector vận tốc (vector dịch chuyển - đại diện cho kinh nghiệm của quần thể qua các thế hệ). Mỗi cá thể sẽ dịch chuyển trong không gian tìm kiếm với một vận tốc riêng, sau mỗi thế hệ các cá thể sẽ dịch chuyển theo hướng về vị trí tốt nhất của chính cá thể đó trong quá khứ và vị trí tốt nhất của quần thể và sau mỗi thế hệ các cá thể sẽ hướng tới các vùng tìm kiếm tốt hơn trong không gian tìm kiếm. Trong quá trình tìm kiếm các cá thể sẽ cập nhật vector dịch chuyển và vector vị trí theo giá trị tốt nhất của chính cá thể đó trong quá khứ và vị trí tốt nhất của quần thể theo công thức sau: k+c1.rand1().(pbesti – xi vi

k+1 = xi

k + vi

(1.11) xi

k+1: là vector dịch chuyển của cá thể i ở thế hệ k+1;

Trong đó:

k: là vector dịch chuyển của cá thể i ở thế hệ k;

- vi

k+1: là vector vị trí của các thể i ở thế hệ k+1;

- vi

k: là vector vị trí của cá thể i ở thể hệ k;

- xi

- xi

- pbesti: là vector vị trí tốt nhất của cá thể i tính tới thời điểm hiện tại;

- gbest: là vector vị trí tốt nhất của quần thể tính tới thời điểm hiện tại.

- Các hệ số trong công thức PSO với ý nghĩa như sau:

o : hệ số quán tính; o c1, c2: là các hệ số gia tốc thể hiện cho đặc trưng về mặt kinh nghiệm

của các thể và kinh nghiệm của quần thể.

26

𝑘)

𝑐1 × 𝑟1 × (𝑔𝑏𝑒𝑠𝑡 − 𝑥𝑖

𝑘)

𝑐1 × 𝑟1 × (𝑝𝑏𝑒𝑠𝑡𝑖 − 𝑥𝑖

𝑘 𝑤 × 𝑣𝑖

𝑘+1 𝑥𝑖

𝑔𝑏𝑒𝑠𝑡

𝑘

𝑘 𝑥𝑖

𝑔𝑏𝑒𝑠𝑡 − 𝑥𝑖

𝑘

𝑝𝑏𝑒𝑠𝑡𝑖

𝑝𝑏𝑒𝑠𝑡𝑖 − 𝑥𝑖

rand1, rand2: là các hệ số ngẫu nhiên trong đoạn [0,1]

Hình 1.6. Sơ đồ di chuyển của một cá thể i trong PSO

Begin Pall = Load dữ liệu iMOPSE và khởi tạo quần thể ban đầu t = 0

Chi tiết thuật toán PSO được thể hiện như trong Algorithm 1.1 dưới đây.

Algorithm 1.1. PSO Input: tmax: số thế hệ Output phương án tốt nhất gbest 1 2 3 4 while ( t < tmax ) 5 t = t + 1 6 for i=1 to size(Pall) do 7 tính giá trị hàm mục tiêu f(Pi) 8 end for 9 for i = 1 to size(Pall) do 10 if f(Pi) < f(fitnessi) then 11 pbesti = Pi 12 f(pbesti) = f(Pi) 13 end if 14 end for 15 for i=1 to size(Pall) do 16 gbest = Pi 17 f(gbest) = f(Pi) 18 end for 19 for i=1 to size(Pall) do 20 cập nhật vector dịch chuyển theo (1.3) 21 Cập nhật vector vị trí theo (1.4) 22 end for 23 end while 24 return gbest 25 end Trong đó: - f: objective function

27

- fitnessi: Giá trị tốt nhất của cá thể thứ i trong quần thể

từ thế hệ đầu tiên cho đến thế hệ hiện tại.

1.2.2. Thuật toán PSO kết hợp với tìm kiếm lân cận

Phương pháp Tìm kiếm lân cận [16] (hay còn gọi là Tìm kiếm cục bộ, Local

Search) là phương pháp heuristic thường được áp dụng để tìm phương án tối

ưu hoặc cận tối ưu trong một không gian tìm kiếm mà khoảng cách giữa hai

phương án bất kỳ đã được định nghĩa, tức là đã có một phép đo khoảng cách

giữa hai phương án. Dựa trên đại lượng khoảng cách đó, khái niệm vùng lân

cận sẽ được xác định. Ý tưởng chung của phương pháp Tìm kiếm lân cận là

thực hiện vòng lặp gồm các bước sau:

1. Khởi tạo phương án ban đầu (theo kiểu ngẫu nhiên hoặc bằng một kỹ

thuật nào đó).

2. Áp dụng một phép biến đổi cho phương án hiện có để thu được một tập

phương án lân cận, đây là những phương án có khoảng cách (được xác

định theo một độ đo xác định trước) tới phương án ban đầu nhỏ hơn hoặc

3. Lựa chọn phương án tốt nhất trong tập phương án lân cận, gán giá trị này

bằng một ngưỡng quy định.

cho phương án hiện có rồi quay trở lại đầu vòng lặp (bước 2).

Vòng lặp trên được thực hiện cho tới khi tìm được phương án đủ tốt để thỏa

mãn điều kiện dừng.

Phương pháp Tìm kiếm lân cận đã được các nhóm nghiên cứu tích hợp vào

PSO để cải thiện chất lượng của cá thể tại mỗi vòng đời [3],[19]. Trong không

gian tìm kiếm, các phương án không hoàn toàn độc lập mà thường có mối quan

hệ, mối quan hệ đó chi phối nhiều đặc tính của chúng. Chẳng hạn như trong bài

toán Scheduling thì hai lịch biểu càng có nhiều thành phần trùng nhau thì giá

trị makespan của chúng càng có khả năng gần nhau. Dựa vào quy luật tự nhiên

này, các nhà nghiên cứu đã đề xuất nhiều kiểu lân cận (topology) khác nhau

28

như kiểu Ring, kiểu Von Neuman. Mỗi topology đó mô tả một cách xác định

thứ tự giữa các phương án trong tập lân cận. Hình sau là một số kiểu lân cận

1

N

2

m+1

m-1

m

k-1

k

k+1

k

k-1

k+1

...

3

n+1

n

n-1

4

k+1

k

k-1

được mô tả trong [3].

(b)

(a)

Hình 1.7. Kiểu lân cận Ring (a) và Von Neumann (b)

k+1 ở vòng đời tiếp theo sẽ được xác định là:

Sau khi đã xác định được thứ tự giữa các phương án lân cận, phương án

k

(1.12)

xi

k+1 = xi

k + vi

xi

k)

vi

k+1 = ×vi

k + c1 rand1× (pbesti - xi

k) + c2rand2× (lbesti - xi

với vector dịch chuyển được định nghĩa bằng công thức:

Công thức này tương tự như công thức gốc của PSO được xây dựng bởi

k.

Kennedy và Eberhart, chỉ thay phương án tốt nhất của quần thể gbesti bằng

phương án tốt nhất lbesti trong tập lân cận của phương án đang xét xi

Trong bài báo [CT2] đã xây dựng thuật toán L-PSO áp dụng phương pháp

Tìm kiếm lân cận, tuy nhiên bài toán đặt ra trong [CT2] không phải là đối tượng

nghiên cứu của luận án này, vì vậy phần phát biểu bài toán và phần thực nghiệm

không được giới thiệu ở đây, mà chỉ trình bày việc tích hợp phương pháp lân

29

cận tích hợp trong thuật toán PSO. Trong [CT2], áp dụng phương pháp lân cận

Ring với vùng lân cận có phạm vi k = 2, nghĩa là phương án đang xét xi sẽ có

tập lân cận bao gồm 2 phần tử là left (xi) và right (xi). Thuật toán đề xuất L-

PSO được mô tả trong [CT2] như sau:

Algorithm LPSO()

Input: T,S,dữ liệu công việc W[1×M],P[1×N],B[N×N],D[M×M], hằng số K, độ lệch , số lượng cá thể của quần thể NoP Output: phương án gần đúng tốt nhất gbest

Begin

1. For i=1 to NoP do 2. xi= random vectors; vi= random vectors; // Khởi tạo giá trị ngẫu nhiên cho vector vị trí và vector dịch chuyển của cá thể i

// Khởi tạo bước lặp

3. end for 4. t= 0; 5. While (the deviation of gbest > ) Do 6. for i=1 to NoP do 7. Compute new position xi // Tính vector vị trí xi

theo công thức (1.12)

// Cập nhật pbesti

// Cập nhật gbesti

8. end for 9. for i=1 to NoP do 10. Update pbesti; 11. end for 12. Update gbest; 13. for i=1 to NoP do 14. lbesti = Ring(xi) ; // Cập nhật lbesti 15. end for 16. for i=1 to NoP do 17.

// Cập nhật vector

Update vik and compute xi ; dịch chuyển vik và xi

19. end for 20. t++ ; 21. if (the deviation of gbest ≤  after K generations) // nếu sau K thế hệ mà độ lệch giữa các gbest

không vượt quá 

then gbest= Variable_Neighborhood_Searching (gbest);

23. End while; 24. Return gbest; End Function

Trong đó phương án lân cận tốt nhất lbesti của phương án hiện tại xi sẽ được

30

Function Ring(xi)

Input: phương án đang xét xi

Output: x trong đó Fitness(x) = min{Fitness(xi), Fitness(Left(xi)), Fitness(Right(xi))}

tính bởi hàm Ring() như sau:

Hàm tìm kiếm lân cận Variable_Neighborhood_Searching(), hạt nhân của

Function Variable_Neighborhood_Searching ( )

Input: vector vị trí xi Output: vector vị trí xk có Fitness(xk) < Fitness(xi)

Begin

1. t = 0; // Khởi tạo bước lặp 2. while (Fitness(xk) > Fitness (xi) and (t <

Max_Iteration)) 3. r = random [1,M];

// Khởi tạo giá trị r ngẫu

nhiên trong đoạn [1, M] 4. xi = RotateRight(xi, r); 5. rand1 = [1,M]; rand2 = [1,M]; // Khởi tạo ngẫu nhiên

rand1, rand2 [1,M]

6. xk = Exchange (xi, rand1, rand2); 7. if Fitness(xk) < Fitness(xi) then 8. return xk 9. else 10. return xi; 12. end if 11. t = t+1; 12. end while

End.

3

1

2

3

1

3

1

2

3

1

thuật toán LPSO được mô tả như sau:

(b)

(a)

3

3

2

1

1

Hình 1.8. Hàm RotateRight (a) và hàm Exchange (b)

trong đó hàm RotateRight() và hàm Exchange() được thiết kế để giúp tạo ra cá

thể đột biến cho quần thể hiện tại.

Hàm RotateRight sẽ tịnh tiến toàn bộ các phần tử của phương án về bên phải,

còn hàm Exchange sẽ hoán đổi hai phần tử của phương án như hình 1.8.

31

1.2.3. Thuật toán DE

Tiến hóa vi phân (Differential Evolution - DE) được đề xuất bởi R. Storn

và K. Price vào năm 1997 [26], đây là một giải thuật tiến hóa dựa trên thông

tin định hướng để tạo ra các cá thể ở thế hệ tiếp theo bằng cách sử dụng các

toán tử lai ghép, đột biến và chọn lọc. Đặc trưng của thuật toán DE là sử dụng

thông tin định hướng trong toán tử đột biến để làm đột biến các cá thể của quần

thể hiện tại. Hoạt động của thuật toán DE được mô tả như sau:

Bước 1: Giả sử không gian tìm kiếm gồm D chiều, mỗi cá thể i được biểu

diễn bởi một vector D chiều xi = (xi,1, xi,2,…,xi,D), trong đó xi,j  R, i=1,2,…,N;

j=1,2,…,D.

Để đột biến cá thể xi thuật toán DE lựa chọn 3 cá thể ngẫu nhiên từ quần

thể xr1  xr2  xr3  xi. Khi đó cá thể vi được tính như sau:

(1.13) vi = xr1 + F × (xr2 – xr3)

trong đó F là một hằng số thuộc đoạn [0,1] và được gọi là hằng số đột biến, cá

thể vi được gọi là cá thể đột biến của cá thể xi. Tham số F được sử dụng để điều

chỉnh độ lớn của vector định hướng và được gọi là độ dài bước nhảy định

hướng.

Bước 2: Tiếp theo, thuật toán DE sử dụng toán tử lai ghép để kết hợp thông

tin giữa cá thể cha xi và cá thể đột biến vi. Toán tử lai ghép được thực hiện bằng

cách chọn một số ngẫu nhiên CR  [0,1] làm xác suất lai ghép và các thành

(1.14)

𝑢𝑖,𝑗 = {

𝑣𝑖,𝑗 𝑛ế𝑢 𝑟𝑎𝑛𝑑𝑖,𝑗 ≤ 𝐶𝑅 ℎ𝑜ặ𝑐 𝑖 = 𝐼𝑟𝑎𝑛𝑑 𝑥𝑖,𝑗 𝑛ế𝑢 𝑟𝑎𝑛𝑑𝑖,𝑗 > 𝐶𝑅 ℎ𝑜ặ𝑐 𝑖 ≠ 𝐼𝑟𝑎𝑛𝑑

phần của cá thể sau lai ghép ui được tính như sau:

với i=1,2,…,N; j=1,2,..,D, trong đó:

randi,j là một số ngẫu nhiên trong đoạn [0,1],

Irand là số ngẫu nhiên trong đoạn [1,D], giá trị Irand đảm bảo vector xi luôn

luôn khác vector vi.

32

Bước 3: Sau cùng, phép chọn theo công thức (1.15) được áp dụng trên cá

(1.15)

𝑥𝑖(𝑡 + 1) = {

𝑢𝑖(𝑡) 𝑛ế𝑢 𝑓(𝑢𝑖(𝑡)) < 𝑓(𝑥𝑖(𝑡)) 𝑥𝑖(𝑡) 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖

thể cha xi và cá thể ui để chọn ra cá thể cho thế hệ tiếp theo.

Chi tiết thuật toán DE được trình bày như trong Algorithm 1.2 dưới đây.

Algorithm 1.2. DE

Input: N :kích thước quần thể, CR : xác suất lai ghép

Output: phương án tối ưu

for (int i = 0; i< N; i++)

xr1  xr2  xr3  xi = rand(1,N) vi(t) = xr1 + F (xr2- xr3) Irand = randi(1,D) for(j=0; j < D;j++) if (i = Irand OR rand(0,1) <= CR) ui,j= vi,j else ui,j= xi,j end if end for if(f(ui(t)) f(xi(t))) xi(t+1) = ui(t)

else

xi(t+1) = xi(t)

end if

end for gbest = fbest(P)

1. Begin 2. t = 0 3. P = initialize(N) 4. gbest = fbest(P) 5. while(t < tmax) 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. t = t+1 25. end while 26. return gbest 27. End Trong đó: f: hàm mục tiêu fbest: hàm tìm cá thể tốt nhất trong quần thể

33

Điểm khác biệt cơ bản của thuật toán DE với các thuật toán tiến hóa khác

là ở toán tử đột biến. R. Storn và K. Price[26] đã đề xuất nhiều chiến lược lược

đột biến khác nhau và tạo ra các phiên bản DE khác nhau. Sau đây là một số

- rand/1

vi = xr1 + F(xr2 – xr3)

- best/1

vi = xbest + F(xr1 – xr2)

- current to best /1

vi = xi + K(xbest – xi)+F(xr1 – xr2)

- best/2

vi = xbest + K(xr2 – xr3) + F(xr3 – xr4)

- rand/2

vi = xr1 + K(xr2 – xr3) + F(xr4 – xr5)

- current/2

vi = xi + K(xr3 – xi) + F(x1 – xr2)

- phương pháp bánh xe quay vòng dựa trên hạng cá thể [CT1]

phiên bản khác của DE:

trong đó F và K là các bước nhảy định hướng, xr1, xr2, xr3, xr4, xr5 là các cá thể

được chọn một cách ngẫu nhiên từ quần thể, xbest là cá thể tốt nhất trong quần

thể.

1.2.4. Thuật toán Cuckoo Search

1.2.4.1. Khái niệm bước dịch chuyển ngẫu nhiên

Thuật ngữ “random walk” được đưa ra lần đầu bởi Karl Pearson[27] vào

năm 1905. Bước dịch chuyển ngẫu nhiên, đôi khi còn gọi là bước đi ngẫu nhiên

hay quá trình ngẫu nhiên (Random walk)[30], được thể hiện bởi một chuỗi

những biến đổi không xác định trước, chẳng hạn như chuỗi biến đổi của các dữ

liệu tài chính như giá cổ phiếu chứng khoán, tỷ giá ngoại tệ, các dữ liệu y khoa

như huyết áp, các bước di chuyển để kiếm mồi của động vật... Năm 2020, hai

nhà khoa học Hillel Furstenberg (Mỹ) và Gregory Margulis (Nga) đã được trao

giải thưởng Abel - được đánh giá như giải Nobel toán học- cho một nghiên cứu

về bước dịch chuyển ngẫu nhiên.

34

Về mặt toán học, bước dịch chuyển ngẫu nhiên được đặc trưng bởi một biến

mô tả một quá trình biến đổi ngẫu nhiên trong miền giá trị nào đó. Một cách

tổng quát, random walk là một quá trình ngẫu nhiên bao gồm một chuỗi biến

đổi liên tiếp và được thể hiện như công thức 1.16 dưới đây.

𝑁 𝑖=1

(1.16) 𝑆𝑁 = ∑ 𝑋𝑖 = 𝑆𝑁−1 + 𝑋𝑁

trong đó bước dịch chuyển thứ i, Xi, có độ lớn và hướng tuân theo một phân

phối xác suất nào đó. Trạng thái hiện tại (SN) phụ thuộc vào trạng thái trước đó

(SN-1) và bước dịch chuyển XN.

Hình 1.8 là ví dụ đơn giản nhất về 5 lần dịch chuyển ngẫu nhiên trong tập

các số nguyên Z, trong đó độ lớn của mỗi bước theo 2 trục tọa độ là 1 hoặc 0.

Hình 1.8. Năm lần dịch chuyển ngẫu nhiên trong tập số nguyên Z2

Một ví dụ nổi tiếng hơn về bước dịch chuyển ngẫu nhiên là chuyển động

Brown[63]. Khi thả một hạt phấn hoa xuống nước, dùng kính hiển vi quan sát

ta thấy hạt phấn hoa chuyển động hỗn loạn không ngừng. Chuyển động đó của

các hạt rất nhỏ (cỡ micromet) trong chất lỏng hay chất khí được gọi là chuyển

động Brown, gây ra bởi sự va chạm với các phân tử nước hay không khí chuyển

động, động năng của các phân tử này được cung cấp bởi nhiệt độ môi trường.

Hình 1.9 [63] là mô phỏng quỹ đạo chuyển động Brown của 5 hạt phấn hoa

(hình vuông) được thúc đẩy bởi các va chạm với 800 phần tử chuyển động

35

khác. Vector chuyển động của một trong năm hạt phấn hoa được biểu thị bằng

mũi tên. Hình 1.9 cũng gợi ý cho một thuật toán tiến hóa nhằm tìm kiếm lời

giải gần đúng bằng cách sử dụng quần thể gồm nhiều cá thể (trong trường hợp

này là 5).

Hình 1.9. Chuyển động Brown của 5 hạt phấn hoa

Hình 1.10[63] mô tả quỹ đạo chuyển động của 3 hạt keo kích thước 0,53

µm trong môi trường nước được quan sát dưới kính hiển vi. Các vị trí liên tiếp

sau mỗi 30 giây được nối bằng các đoạn thẳng, kích thước mỗi mắt lưới là 3,2

µm.

Hình 1.10. Chuyển động Brown của 3 hạt keo

Về mặt toán học, chuyển động Brown được biểu diễn bởi quá trình Wiener

(X0, X1, X2,...) một quá trình ngẫu nhiên liên tục được đặt tên theo Norbert

36

Wiener và được sử dụng nhiều trong vật lý, toán học và kinh tế, trong đó:

 X0 = 0;

 Xt là một biến ngẫu nhiên liên tục theo thời gian, chẳng hạn như tọa độ

của hạt phấn hoa hay giá trị cổ phiếu (khác với những biến ngẫu nhiên

rời rạc như trong ví dụ gieo xúc sắc hay bắn bia);

 Xj - Xi  (0, j-i) trong đó N(,2) là phân phối chuẩn (còn gọi là phân

phối Gauss) với kỳ vọng  và phương sai 2.

Bước dịch chuyển ngẫu nhiên có nhiều loại phụ thuộc vào phân phối xác

suất nào sẽ chi phối độ lớn của các bước dịch chuyển. Ứng dụng của mỗi loại

khác nhau, không gian dịch chuyển có thể chỉ là tập số nguyên (Z) hay số thực

(R), không gian hình học 2 hay 3 chiều, các bề mặt cong trong không gian N

chiều.

Bước dịch chuyển ngẫu nhiên có nhiều ứng dụng thực tế. Trong lĩnh vực

tài chính, chuyển động Brown thường được dùng để mô phỏng sự dao động

phức tạp của những đại lượng trên thị trường chứng khoán như giá cổ phiếu,

quyết định đặt lệnh niêm yết, gọi vốn, mua, bán cổ phiếu.

Trong lĩnh vực sinh thái học, tâm lý học, khoa học máy tính, vật lý, hóa

học, sinh học, kinh tế học và xã hội học, bước dịch chuyển ngẫu nhiên được sử

dụng để mô hình hóa nhiều quá trình trong các lĩnh vực này và đóng vai trò như

một mô hình cơ bản cho các hoạt động mang tính không xác định. Trong toán

học, giá trị của π có thể được tính gần đúng bằng cách sử dụng bước dịch

chuyển ngẫu nhiên. Trong phạm vi luận án này, mục tiêu đặt ra là tìm các lời

giải gần đúng trong một không gian tìm kiếm rộng thì bước dịch chuyển ngẫu

nhiên chính là công cụ phù hợp để vừa lục soát kỹ vùng lân cận xung quanh vị

trí hiện thời (thao tác Exploitation) vừa thực hiện những bước nhảy vọt xa để

khám phá những khu vực mới (thao tác Exploration).

37

Một bước dịch chuyển ngẫu nhiên điển hình đồng thời cũng là cơ sở toán

học của thuật toán Cuckoo Search là bước dịch chuyển Lévy Flight.

1.2.4.2. Bước dịch chuyển Lévy Flight

Được đặt tên theo nhà toán học Pháp Paul Lévy, Lévy Flight là bước dịch

chuyển ngẫu nhiên trong đó độ lớn của bước dịch chuyển biến đổi theo phân

phối xác suất Lévy, hướng dịch chuyển là bình đẳng giữa các chiều của không

gian dịch chuyển (từ nay gọi là “không gian tìm kiếm” hay “không gian lời

giải” cho phù hợp với vấn đề đặt ra trong luận án).

Phân phối xác suất Lévy là phân phối xác suất liên tục của một biến ngẫu

nhiên không âm. Hàm mật độ xác suất của phân phối Lévy trong miền giá trị

𝑐 2(𝑥−𝜇)

𝑐

𝑒

(1.17)

𝑓(𝑥, 𝜇, 𝑐) = √

(𝑥−𝜇)3/2

2𝜋 Có thể nhận thấy:

1

𝑐

(1.18)

𝑓(𝑥, 𝜇, 𝑐)~√

2𝜋

𝑥3/2 𝑘ℎ𝑖 𝑥 → ∞

x  [, +) là:

Hàm mật độ này được thể hiện như trong hình 1.11.

Hình 1.11. Đồ thị hàm mật độ xác suất của phân phối Lévy

38

Hình 1.12 mô phỏng 1000 bước dịch chuyển Lévy flight trong không gian

hai chiều với tọa độ xuất phát là [0,0], hướng dịch chuyển được phân bố đều,

độ lớn các bước tuân theo phân phối Lévy.

Bước dịch chuyển ngẫu nhiên Lévy Flight đã được các nhà khoa học xác

nhận là phù hợp để mô tả quỹ đạo di chuyển của các động vật (chim, thú) khi

đi kiếm mồi. Vì thế trong thuật toán Cuckoo Search, Lévy Flight được sử dụng

để biến đổi các phương án (tức là các cá thể) từ vòng đời trước sang vòng đời

sau.

Trong hình 1.12, lưu ý rằng khi được cài đặt với những tham số phù hợp,

Lévy flight thực hiện thao tác Exploration tốt hơn nhờ có những bước nhảy tầm

xa, ngược lại chuyển động Brown thực hiện thao tác Exploitation kỹ càng hơn

để lục soát trong phạm vi lân cận.

Hình 1.12. 1000 bước dịch chuyển Lévy flight và chuyển động Brown

1.2.4.3. Thuật toán

Thuật toán Cuckoo Search(CS) [60],[61] được Yang và Deb đưa ra vào

năm 2009, đến nay CS đã được nhiều nhà khoa học nghiên cứu và áp dụng cho

các bài toán tối ưu khác nhau, trong đó có bài toán MS-RCPSP [CT5]. Thuật

39

toán này được phát triển dựa trên đặc tính sinh hoạt của loài chim Cuckoo và

hành vi bay của một số loài chim và ruồi giấm - gọi là Lévy flight. CS được

xây dựng dựa trên ba quy luật như sau:

- Mỗi lần, một con chim Cuckoo chỉ đẻ một quả trứng vào một tổ được chọn

ngẫu nhiên;

- Tổ tốt nhất với trứng chất lượng cao nhất sẽ được chuyển qua các thế hệ

tiếp theo;

- Số lượng tổ là không đổi và trứng bị chim chủ phát hiện với xác suất

pa ∈ [0, 1], khi đó chim chủ có thể vứt bỏ quả trứng hoặc bỏ cả tổ và xây

dựng một cái tổ hoàn toàn mới.

CS phù hợp với các bài toán tối ưu tính toán trên dữ liệu lớn bằng cách tạo

ra sự cân bằng trong các kỹ thuật tìm kiếm nghiệm toàn cục và tìm kiếm cục

bộ nhằm tạo ra các nghiệm tốt hơn ở thế hệ tiếp theo.

CS dạng đơn giản quy định tổ cũng đồng nghĩa với trứng. Mục tiêu của

thuật toán là sinh ra những tổ mới có tiềm năng tốt hơn thay thế các tổ (nghiệm)

có chất lượng kém. Việc tạo ra tổ mới áp dụng kỹ thuật Lévy Flight với các

phép Tìm kiếm toàn cục (Global Search) và Tìm kiếm cục bộ (Local Search).

Hai kỹ thuật tìm kiếm trên giúp CS mở rộng được không gian tìm kiếm, thoát

khỏi được cực trị địa phương.

Thế hệ tiếp theo tạo ra bằng phép tìm kiếm cục bộ, áp dụng công thức

t+1

t

t + αs

H(pa-e)

t)

(1.19)

= xi

(xj

- xk

xi

(1.19):

trong đó:

- xi: lịch biểu (các thể) ở thế hệ thứ i;

- t: vị trí của tác vụ trong một phương án (lịch biểu, cá thể);

40

t

-

- xk

t) là độ chênh 2 phương án;

j, k: là hai cá thể bất kỳ, khi đó (xj

- H(x): hàm bước = 0 (khi x<0) hoặc 1 (khi x>0);

- α: là hằng số, nhận giá trị {1, 0.1, 0.01};

- s: stepsize – bước di chuyển ngẫu nhiên  [0,1].

Thế hệ tiếp theo tạo ra bằng phép tìm kiếm toàn cục, áp dụng công thức

t+1

t + α L(s,λ)

(1.20)

= xi

𝜆 𝛤(𝜆)𝑠𝑖𝑛(𝜋𝜆/2)

1

(1.21)

𝜋

𝑠1+𝜆 , 𝑠 >> 𝑠0 > 0

xi với: 𝐿(𝑠, 𝜆) =

(1.20).

trong đó:

- λ: là một hằng số, 0 < λ ≤ 2

- Γ(λ): là hàm trả lại giá trị (λ-1)!

Chi tiết thuật toán CS được trình bày trong Algorithm 1.3.

Algorithm 1.3. Thuật toán CS

Input : dataset

tmax : số thế hệ tiến hóa

Output : cá thể tốt nhất và makespan

Pnew = {Tạo cá thể mới bằng Lévy Flight (1.20)}

Pi = {Lấy ngẫu nhiên một cá thể từ Pall } if f(Pnew) < f(Pi) { Pi = Pnew } Ppa = pa% tổ kém nhất từ Pall For j = 1 to size(Ppa)

Pnew = {Tạo cá thể mới bằng Lévy Flight (1.19)}

if f(Pnew) < f(Pjpa) { Pjpa = Pnew } End For

1. Begin 2. Load and Valid dataset 3. t = 0 4. Pall = {Initial population} 5. f = {Calculate the fitness, makespan, bestnest} 6. while(t

41

makespan = f(bestnest) t = t+1 End while

16. Pall = {Thay thế Ppa vào Pall} 17. f = {Calculate the fitness, bestnest} 18. 19. 20. 21. return {bestnest, makespan} 22. End Với:

- f: hàm tính makespan của một lịch biểu

Thuật toán CS thực hiện bằng cách tiến hóa quần thể qua nhiều thế hệ khác nhau.

Ở mỗi thế hệ, CS thực hiện tạo một cá thể mới bằng kỹ thuật tìm kiếm toàn cục

(Global Search). Sau khi tính toán, tiến hóa, thuật toán sẽ thay thế một số cá thể kém

nhất bằng các cá thể mới, các cá thể mới tạo ra bằng kỹ thuật tìm kiếm cục bộ (Local

Search). Kết quả của thuật toán là một cá thể (lịch biểu) với thời gian thực hiện tối

thiểu.

42

Kết luận chương 1

Bài toán MS-RCPSP là bài toán thuộc lớp NP-Khó và có nhiều ứng dụng

trong thực tế. Tuy nhiên, do không gian lời giải rất lớn, nên khó tìm ra được

nghiệm tối ưu. Do vậy, người ta thường dùng các thuật toán tiến hóa để tìm ra

các nghiệm tốt, chấp nhận được cho các bộ dữ liệu theo yêu cầu cụ thể.

Chương 1 của luận án đã trình bày phát biểu toán học của bài toán MS-

RCPSP, các ứng dụng trong thực tế của bài toán này. Để phục vụ cho việc giải

bài toán này trong Chương 2, chương này cũng giới thiệu một số thuật toán

metaheuristic hiệu quả, thường được áp dụng để tìm ra nghiệm gần đúng trong

thời gian chấp nhận được như PSO, DE, CS.

Kết quả nghiên cứu của chương này được công bố tại:

- Tạp chí HNUE Journal of Science, Vol. 62, No. 3, pp. 88-96, 2017 [CT1];

- Tạp chí Nghiên cứu khoa học và công nghệ quân sự, Tin học, điều khiển và

ứng dụng, Viện KHCNQS/11-2018, số đặc san, pp. 63-73, 2018 [CT3];

- Hội thảo Quốc gia: Ứng dụng công nghệ cao vào thực tiễn, 2019 [CT4].

43

CHƯƠNG 2

GIẢI BÀI TOÁN MS-RCPSP BẰNG PHƯƠNG PHÁP TỐI ƯU BẦY

ĐÀN VÀ PHƯƠNG PHÁP TIẾN HÓA VI PHÂN

Bài toán lập lịch thực hiện dự án với tài nguyên giới hạn và đa kỹ năng

(MS-RCPSP) [31],[42],[43] có nhiều ứng dụng trong thực tế do bổ sung thêm

yếu tố kỹ năng của tài nguyên thực hiện tác vụ. Theo đó, mỗi tài nguyên có thể

có nhiều loại kỹ năng, mỗi loại kỹ năng có một mức độ kỹ năng cụ thể. Trong

môi trường sản xuất, có thể hiểu kỹ năng chính là chuyên môn của nhân công

và chuyên môn sẽ được phân làm các mức độ (tay nghề) khác nhau. Để thực

hiện một tác vụ, tài nguyên cần đáp ứng về loại kỹ năng và mức kỹ năng phù

hợp với yêu cầu của tác vụ.

Chương 2 nghiên cứu sinh đề xuất một số giải thuật metaheuristic để giải

bài toán MS-RCPSP. Các nội dung chính của chương này gồm:

Phần 2.1: Trình bày phương pháp biểu diễn cá thể của bài toán MS-RCPSP.

Phần 2.2: Trình bày thang đo độ chênh giữa các cá thể, phục vụ trong việc

tính toán, lai ghép cá thể trong quá trình tiến hóa.

Phần 2.3: Trình bày thuật toán đề xuất M-PSO đề giải bài toán MS-RCPSP.

Thuật toán này được xây dựng trên cơ sở của thuật toán tối ưu bầy đàn PSO

với việc bổ sung kỹ thuật di cư nhằm thoát khỏi cực trị địa phương và mở rộng

khả năng tìm kiếm được các nghiệm tốt hơn.

Phần 2.4: Trình bày thuật toán đề xuất DEM đề giải bài toán MS-RCPSP.

Đây là thuật toán được xây dựng trên cơ sở của thuật toán tiến hóa vi phân với

cải tiến mới bằng việc bổ sung hàm tái thiết lập tài nguyên thực hiện tác vụ.

Với mỗi thuật toán, tác giả sẽ trình bày các thực nghiệm cụ thể trên bộ dữ

liệu iMOPSE - bộ dữ liệu chuẩn cho bài toán MS-RCPSP. Sau đó đưa ra các

phân tích, đánh giá cụ thể từ kết quả thực nghiệm.

44

2.1. Phương pháp biểu diễn cá thể

Trong giải thuật lập lịch, một lịch biểu được thể hiện như một vector có

chiều dài bằng số tác vụ cần thực hiện, mỗi phần tử của vector sẽ lưu giá trị là

chỉ số của tài nguyên thực hiện tác vụ đó.

Với bài toán MS-RCPSP, một cá thể hay một lịch biểu là một vector có số

phần tử bằng số tác vụ của dữ liệu đầu vào, giá trị mỗi phần tử của vector lịch

biểu là chỉ số của tài nguyên sử dụng để thực hiện tác vụ đó. Tài nguyên này

cần đáp ứng các yêu cầu ràng buộc theo điều kiện của bài toán, tức là có loại

kỹ năng giống với kỹ năng yêu cầu và mức kỹ năng (level) phải lớn hơn hoặc

bằng mức kỹ năng yêu cầu.

Ví dụ 2.1: Xét một dự án gồm 10 tác vụ, 2 tài nguyên thực hiện.

- Tập hợp tác vụ W={W1, W2, W3, W4, W5, W6, W7, W8, W9, W10}

- Tập hợp tài nguyên L = {L1, L2}.

W1

W3

W4

W5

W2

W6

W7

W8

W9

W10

Đồ thị ưu tiên của các tác vụ thể hiện như trong hình 2.1 dưới đây.

Hình 2.1. Đồ thị ưu tiên các tác vụ trong dự án

Thời gian thực hiện từng tác vụ (tính theo giờ) được thể hiện trong bảng 2.1.

Bảng 2.1: Thời gian thực hiện các tác vụ

Tác vụ W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 2 Thời gian 3 4 3 2 4 2 5 5 2

Hình 2.2 biểu diễn việc bố trí tài nguyên thực hiện các dự án theo thời gian.

45

Việc bố trí tài nguyên thực hiện tác vụ cần đáp ứng được thứ tự ưu tiên của bài

L1 W1

W4

W5

W6

W10

W7

W2

W3

W8

W9

L2

5

10

15

0

1 2

3 4

6

7 8

9

11 12 13 14

16 17

time

toán cũng như đáp ứng yêu cầu về kỹ năng, mức kỹ năng của tài nguyên.

Hình 2.2. Tài nguyên thực hiện tác vụ theo thời gian

Với phương án lịch biểu được thể hiện trong hình 2.2, ta có thể biểu diễn

Tác vụ Tài nguyên

W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 1 1

1

2

2

1

1

2

2

1

lịch biểu này dưới dạng một vector như sau:

Như vậy, tài nguyên L1 sẽ thực hiện các tác vụ: W1, W4, W5, W6, W7, W10;

tài nguyên L2 thực hiện các tác vụ: W2, W3, W8, W9.

2.2. Thang đo độ chênh của cá thể

Với bài toán MS-RCPSP, một tác vụ có thể được thực hiện bởi nhiều tài

nguyên khác nhau. Để phục vụ cho việc tính toán và hiệu chỉnh cá thể, chúng

ta định nghĩa một thang đo cas the như sau.

Các ký hiệu sử dụng trong thang đo độ chênh:

• p: thang đo độ chênh, pi: vector thang độ chênh của tác vụ i. pi,j: giá trị của

phần tử thứ j trên thang đo của tác vụ i;

• pS: thang đo của cá thể S;

• Si: chỉ số tài nguyên thực hiện tác vụ i trong cá thể S;

• ∆: khoảng cách giữa các phần tử trong thang đo, mỗi phần tử trong thang đo

thể hiện chỉ số của một tài nguyên thực hiện tác vụ ∆i: khoảng cách giữa các

tài nguyên trong thang đo của tác vụ i;

• d: vector độ chênh giữa 02 cá thể, có số phần tử bằng số tác vụ của cá thể.

Định nghĩa 2.1: thang đo cho một tác vụ là một vector thể hiện chỉ số của

46

các tài nguyên có thể thực hiện được tác vụ đó. Thang đo ký hiệu là p.

Ví dụ 2.2: cho bộ dữ liệu của bài toán MS-RCPSP với 10 tác vụ, 3 tài

nguyên và khả năng thực hiện của các tài nguyên như sau:

- L1 = {W1, W2, W3, W5, W7, W9, W10 }

- L2 = {W2, W3, W5, W6, W8, W10}

- L3 = { W1, W3, W4, W6, W7 }

Khi đó, thang đo có thể được biểu diễn như bảng 2.2 dưới đây.

Thang đo này sẽ được sử dụng để hiệu chỉnh cá thể mới tạo ra khi các chỉ

số tài nguyên sau khi tính toán không nằm trong tập tài nguyên thực hiện của

tác vụ.

Bảng 2.2: Thang đo tài nguyên thực hiện tác vụ

Thang đo của tác vụ Chỉ số tài nguyên thứ nhất Chỉ số tài nguyên thứ hai Chỉ số tài nguyên thứ ba

1 3

1 2

1 2 3

3

1 2

2 3

1 3

2

1

1 2 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10

Biểu diễn độ chênh giữa các cá thể

Định nghĩa 2.2: vector d gọi là vector độ chênh giữa 2 cá thể có số phần tử

bằng số tác vụ của cá thể, giá trị của mỗi phần tử được tính theo công thức 2.1.

di = mod(abs(pi,j - pi,k),100)

(2.1)

47

trong đó:

i: tác vụ i; -

- j: vị trí của tài nguyên thực hiện tác vụ i của cá thể 2 trên vector thang

đo pi;

- k: vị trí của tài nguyên thực hiện tác vụ i của cá thể 1 trên vector thang

đo pi.

Tính độ chênh giữa hai cá thể dựa trên thang đo

Trong bài toán MS-RCPSP, mỗi tác vụ có thời gian thực hiện cố định,

không phân biệt tài nguyên thực hiện. Do vậy, khoảng giữa các phần tử của

thang đo được tính như công thức 2.2 dưới đây.

(2.2) ∆ = 100/(k-1) với k > 1

k: số tài nguyên có thể thực hiện tác vụ. Trường hợp chỉ có 1 tài nguyên

(k=1) thì ∆=100.

Khi đó, giá trị của mỗi phần tử trong thang đo được tính như công thức

(2.3)

(2.3) pi,j = ∆* (j-1)

j: là vị trí của phần tử trên thang đo của tác vụ i.

Ví dụ 2.3: tác vụ W1 có 6 tài nguyên có thể thực hiện được, lần lượt là: L1,

L3, L4, L5, L9, L10.

W1 L1 L3 L4 L5 L9 L10

L1

L3

L4

L5

L9 L10

20

20

20

20

20 p1:0 20 40 60 80 100

Thang đo được biểu diễn như trong hình 2.3.

Hình 2.3. Biểu diễn giá trị trên thang đo

Phép trừ 02 cá thể - tính độ chênh

Phép trừ 02 cá thể tạo ra vector độ chênh được tính theo công thức 2.1.

48

Ví dụ 2.4: Có 2 tác vụ W1 và W2. Tài nguyên có thể thực hiện từng tác vụ được biểu

diễn trong bảng 2.3.

W1

L1

L3

L4

L5

L9

L10

W2

L3

L6

L7

L8

L10

Bảng 2.3: Tài nguyên có thể thực hiện tác vụ

Số tài nguyên thực hiện được W1 là 6, số tài nguyên thực hiện được W2 là

5. Khi đó:

- với tác vụ W1: ∆1 = 100/5 = 20

- với tác vụ W2: ∆2 = 100/4 = 25

Thang đo khoảng cách như trong bảng 2.4 dưới đây.

Bảng 2.4: Giá trị vector thang đo

0 20 40 60 80 100

0 25 50 75 100 p1 p2

xét 2 cá thể S1, S2 có tài nguyên thực hiện từng tác vụ được biểu diễn như

trong bảng 2.5.

Cá thể | Task

Bảng 2.5: Tài nguyên thực hiện tác vụ của cá thể S1, S2 W1 L3 L5 W2 L8 L10 S1 S2

Vector độ chênh d được tính như sau:

d1 =mod(abs(p2,8 – p1,3)) = mod(abs(75-20)) = 55

d2 = mod(abs(p2,10 – p1,5)) = mod(abs(100-60)) = 40

Kết quả thu được vector độ chênh d có giá trị được biểu diễn trong bảng

2.6.

Bảng 2.6: Giá trị của vector độ chênh d

W2 40 W1 55 Task d

49

Tính độ chênh giữa 2 cá thể được trình bày trong Algorithm 2.1.

Algorithm 2.1. Tính độ chênh giữa 2 cá thể

d = {} p = thang đo for i=1 to taskcount

j = vị trí tài nguyên thực hiện task i của S1 k = vị trí tài nguyên thực hiện task i của S2 di = mod(abs(pi,j - pi,k),100)

end for return d;

Input: - S1,S2: 2 cá thể đầu vào - taskcount: số lượng tác vụ Output: vector độ chênh Begin 1 2 3 4 5 6 7 8 9 10 End

Phép cộng 02 cá thể - tạo cá thể mới

Phép cộng 02 cá thể tạo ra một cá thể mới, được thực hiện qua các bước

như sau:

- Tính độ chênh giữa 02 cá thể

- Cộng thang đo của cá thể 1 với độ chênh

- Cá thể mới nhận được bằng việc tham chiếu kết quả vào thang đo để

tìm tài nguyên thực hiện, được thực hiện theo công thức 2.4

(2.4) Si = index (round(mod((di + pi,j),100)) )

Trong đó:

i: chỉ số của tác vụ -

- j: vị trí tài nguyên thực hiện tác vụ trong thang đo

- index: trả về chỉ số tài nguyên ở vị trí tương ứng trên thang đo

Trong ví dụ 2.4 ở trên, xét S = S1 + S2, ta có:

S1 = index (round(mod(d1 + p1,3))) = index(round(75)) = 9

50

S2 = index (round(mod(d2 + p2,8))) = index(round(115)) = 6

Như vậy, ta được phương án mới S với W1 được thực hiện bởi L9, W2 được

thực hiện bởi tài nguyên L6. Chi tiết được thể hiện trong bảng 2.7.

Bảng 2.7: Kết quả cộng hai cá thể

W2 40 75 115 6 W1 55 20 75 9 Task d p S1 + p S

Phép cộng 2 cá thể được trình bày trong Algorithm 2.2.

Algorithm 2.2. Cộng 2 cá thể để tạo cá thể mới

S = {} p = thang đo d = độ chênh giữa S1 và S2 for i=1 to taskcount

Si = index (round(mod((di + p1,i),100)) )

end for return S;

Input: - S1,S2: hai cá thể đầu vào - taskcount: số lượng tác vụ Output: cá thể mới Begin End

1 2 3 4 5 6 7 8 9

2.3. Đề xuất thuật toán M-PSO

Thuật toán tối ưu bầy đàn PSO là thuật toán tiến hóa trong đó mỗi cá thể

được tạo ra dựa trên thừa kế kinh nghiệm của cả quần thể và của chính cá thể

đó, do vậy nâng cao được khả năng hội tụ, nhanh tìm ra được nghiệm tốt.

Là thuật toán có tốc độ hội tụ nhanh nên PSO được giới nghiên cứu quan

tâm và đề xuất nhiều phiên bản cải tiến, trong đó một phương pháp thông dụng

là Tìm kiếm lân cận Local search PSO [CT2], [CT6]. Tuy nhiên phương pháp

51

Tìm kiếm lân cận đôi lúc khiến chương trình mắc kẹt tại bẫy cực trị địa phương.

Mục tiếp theo sẽ đề xuất một phương pháp hiệu quả khác, phương pháp Di cư,

cho phép thuật toán thoát khỏi vùng cực trị địa phương để tìm tới những vùng

nghiệm mới có thể có các nghiệm tốt hơn.

Thuật toán M-PSO (Migration PSO) là thuật toán áp dụng cho bài toán MS-

RCPSP nhằm cực tiểu hóa makespan, thuật toán được xây dựng dựa trên thuật

toán tối ưu bầy đàn PSO và được cải tiến ở các điểm sau:

(i) Tìm và phát hiện cực trị địa phương;

(ii) Áp dụng kỹ thuật di cư (Migration) để thoát khỏi cực trị địa phương.

2.3.1. Kỹ thuật Di cư

Khi thực hiện tiến hóa, thuật toán PSO có xu hướng rơi vào các vùng cực

trị địa phương nghĩa là sau nhiều thế hệ quần thể vẫn bị hút vào khu vực xung

quanh một cực trị địa phương. Để hướng dẫn quần thể đi tới giá trị tối ưu, cần

phải đưa chúng thoát ra khỏi vùng lân cận xung quanh cực trị địa phương để

chuyển tới một vùng không gian nghiệm khác, đó là mục đích của kỹ thuật di

cư trong luận án này. Ngoài việc giúp thuật toán thoát khỏi cực trị địa phương,

kỹ thuật di cư còn mở rộng không gian tìm kiếm, nâng cao kết quả của thuật

toán.

Định nghĩa 2.3: Quần thể được gọi là tiến hóa không thành công nếu giá

trị makespan của quần thể không thay đổi qua 2 thế hệ liên tiếp.

2.3.1.1. Ý tưởng của kỹ thuật di cư

Kỹ thuật Di cư áp dụng trong thuật toán M-PSO được thực hiện qua các

bước sau:

Bước 1: Tìm và phát hiện cực trị địa phương

Để phát hiện cực trị địa phương, ta dùng một biến nfail để đếm số lần quần

52

thể tiến hóa không thành công liên tiếp, nếu giá trị này lớn hơn một ngưỡng

quy định (nmax), thì quần thể đã rơi vào cực trị địa phương. Công thức 2.5 trình

bày cách tính nfail.

(2.5) 𝑛𝑓𝑎𝑖𝑙 = { 𝑛𝑓𝑎𝑖𝑙 + 1 𝑖𝑓 𝑛𝑒𝑤𝑚𝑎𝑘𝑒𝑠𝑝𝑎𝑛 = 𝑜𝑙𝑑𝑚𝑎𝑘𝑒𝑠𝑝𝑎𝑛 0 𝑖𝑓 𝑛𝑒𝑤𝑚𝑎𝑘𝑒𝑠𝑝𝑎𝑛 ≠ 𝑜𝑙𝑑𝑚𝑎𝑘𝑒𝑠𝑝𝑎𝑛

Bước 2: Di chuyển quần thể

Việc di chuyển quần thể sang vị trí khác được thực hiện như sau:

- Duyệt từng cá thể của quần thể;

- Với mỗi tác vụ i của cá thể, xem xét tập Li các tài nguyên có thể thực hiện được tác vụ i, sắp xếp các tài nguyên thứ tự tăng dần của chỉ số tài nguyên;

- Lấy tài nguyên ở vị trí đối xứng để thực hiện tác vụ i thay cho tài nguyên

hiện tại.

Hình 2.4 minh họa việc di cư của tác vụ bằng việc thay đổi tài nguyên thực

hiện. Cụ thể, tác vụ đang được thực hiện bởi tài nguyên L2 sẽ được bố trí tài

nguyên thực hiện mới là Lm-1 và tác vụ đang được thực hiện bởi tài nguyên Lm

L1

...

L2

Lm-1

Lm

L1

...

L2

Lm-1

Lm

sẽ được bố trí tài nguyên mới là L1 để thực hiện.

Hình 2.4. Thay đổi tài nguyên thực hiện tác vụ

Việc dịch chuyển tài nguyên thực hiện tác vụ cần đảm bảo ràng buộc của

bài toán. Sau khi thực hiện với toàn bộ quần thể, ta sẽ được một quần thể mới

được di chuyển bằng kỹ thuật Migration.

Ví dụ 2.2:

Xem xét một dự án với các thông tin như sau:

53

- Tập tác vụ W ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

- Năng lực của các tài nguyên được thể hiện như trong Bảng 2.8.

- Tập tài nguyên L={1, 2, 3, 4};

Bảng 2.8: Năng lực của các tài nguyên

W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 × × × × × ×

× × × × × × × ×

× × × × × × ×

L1 L2 L3 L4 × × × × × × ×

Xem xét một phương án lịch biểu với các thiết lập tài nguyên thực hiện tác

vụ như trong bảng 2.9.

Bảng 2.9: Lịch biểu khả thi của dự án trong ví dụ 2.2

Tác vụ 1 2 3 4 5 6 7 8 9 10

Tài nguyên 1 1 2 1 2 2 4 1 1 4

Xét tác vụ 1, tập tài nguyên thực hiện tác vụ 1, W1 = {L1, L2, L3, L4}

Áp dụng kỹ thuật di cư với tác vụ 1, ta thấy, tài nguyên thực hiện tác vụ 1

hiện tại là L1, dùng kỹ thuật di cư để thiết lập tài nguyên thực hiện tác vụ 1 bằng

cách lấy tài nguyên đối xứng trong tập tài nguyên W1, ta có tài nguyên mới để

thực hiện tác vụ 1 là L4.

Áp dụng tương tự với các tác vụ 2, 3, 4, 5, 6, 7, 8, 9, 10, ta sẽ được cá thể

sau khi di cư với thiết lập tài nguyên thực hiện được thể hiện trong bảng 2.10.

Bảng 2.10: Lịch biểu mới sau khi di cư

Tác vụ 1 2 3 4 5 6 7 8 9 10

Tài nguyên 4 3 4 4 3 2 2 4 4 2

Ta có thể thấy, trong lịch biểu mới, tại vị trí của tác vụ 6, tài nguyên thực

hiện không thay đổi do W6 = {L1,L2,L3}. Điều này hạn chế khả năng tạo ra các

54

bước di chuyển lớn của cá thể. Tuy nhiên, vấn đề này sẽ ít gặp phải trong bài

toán với số lượng tài nguyên thực hiện lớn hơn.

2.3.1.2. Hàm Migration

Algorithm 2.2. Migration

Input: Pall – quần thể hiện tại

Output: Pnew – quần thể sau khi di chuyển

Begin

1. Pnew = {}

2. For i=1 to size(P) // duyệt lần lượt từng cá thể

3. Pi = Pall[i]; // lấy cá thể thứ i từ quần thể

4. For j = 1 to y // duyệt lần lượt từng task

Wi = Danh sách tài nguyên thực hiện Wi

5.

Wi = Sort(Wi) // sắp xếp chỉ số tài nguyên trong Wi

6.

idx = Chỉ số tài nguyên thực hiện task i

7.

idx = size(Wi) – idx + 1

8.

Li = Wi[idx]

9.

10. End for // j

11. Pnew = Pnew + {Pi}

12. End for // i

13. Return Pnew;

End Function

2.3.2. Thuật toán M-PSO

M-PSO được trình bày trong Algorithm 2.3 với đầu vào của thuật toán là

số thế hệ thực hiện để tìm phương án tốt nhất (tmax) và ngưỡng phát hiện cực trị

địa phương (nmax). Các bước chạy chi tiết như sau:

Algorithm 2.3. M-PSO

Input: nmax: ngưỡng áp áp dụng migration, tmax: số thế hệ

Output phương án tốt nhất gbest

1 Begin

55

Pall = Load dữ liệu iMOPSE và khởi tạo quần thể ban đầu

2

t = 0

3

nfail = 0

4

5 while ( t < tmax )

6 t = t + 1

7 for i=1 to size(Pall) do

8 tính giá trị hàm mục tiêu f(Pi)

9 end for

10 for i = 1 to size(Pall) do

11 if f(Pi) < f(fitnessi) then

12 pbesti = Pi

13 f(pbesti) = f(Pi)

14 end if

15 end for

16 for i=1 to size(Pall) do

17 if(f(Pi) < f(gbest)) then

18 gbest = Pi

19 f(gbest) = f(Pi)

20 end if

21 if f(Pi)!= f(Pi-1) then

22 nfail = 0

23 else

24 nfail += 1

25 end if

26 end for

27 for i=1 to size(Pall) do

28 cập nhật vector dịch chuyển theo (1.1.a)

29 Cập nhật vector vị trí theo (1.1.b)

30 end for

31 if (nfail = nmax)

32 Pall = Migration(Pall)

33 nfail = 0

34 end if

35 end while

56

36 return gbest

37 end

f: objective function

Các dòng 21 đến 25 thể hiện biến đếm để phát hiện cực trị địa phương.

Các dòng 31 đến 34 xử lý việc áp dụng kỹ thuật di cư quần thể khi đã phát

hiện ra cực trị địa phương.

2.3.3. Thực nghiệm

2.3.3.1. Dữ liệu thực nghiệm

Để đánh giá, thuật toán đã được cài đặt, chạy thử nghiệm với bộ dữ liệu

iMOPSE [42],[45], đây là bộ dữ liệu chuẩn đã được chứng minh phù hợp với

bài toán MS-RCPSP và đã có nhiều nhóm nghiên cứu sử dụng.

Bộ dữ liệu được lưu trữ dưới dạng file def, mỗi file bao gồm các thông tin:

 Số tác vụ (Task) cần thực hiện;

 Số tài nguyên (Resource) sử dụng để thực hiện các tác vụ;

 Số lương ràng buộc giữa các tác vụ (Precedence Relation), chỉ ra thứ tự ưu

tiên trong việc thực hiện các tác vụ;

 Số lượng kỹ năng của các tài nguyên (Skill);

 Kỹ năng và mức kỹ năng của mỗi tài nguyên, một tài nguyên có thể bao

gồm nhiều kỹ năng.

Chi tiết bộ dữ liệu iMOPSE được trình bày trong bảng 2.11 dưới đây.

Bảng 2.11: Bộ dữ liệu iMOPSE cho bài toán MS-RCPSP

Dataset instance Tasks Resources Skills

100_5_20_15 100_5_48_9 100_5_48_15 100 100 100 Precedence Relations 22 48 46 15 9 15 5 5 5

57

Dataset instance Tasks Resources Skills

100_5_64_9 100_5_64_15 100_10_26_15 100_10_47_9 100_10_48_15 100_10_64_9 100_10_65_15 100_20_22_15 100_20_47_9 100_20_46_15 100_20_65_9 100_20_65_15 200_10_50_9 200_10_50_15 200_10_84_9 200_10_85_15 200_10_128_15 200_40_144_15 200_20_55_9 200_20_54_15 200_20_97_9 200_20_97_15 200_20_145_15 200_40_45_9 200_40_45_15 200_40_90_9 200_40_91_9 100 100 100 100 100 100 100 100 100 100 100 100 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 Precedence Relations 64 64 26 47 48 64 65 22 47 46 65 65 50 50 84 85 128 133 55 54 97 97 145 45 45 90 91 9 15 15 9 15 9 15 15 9 15 9 15 9 15 9 15 15 15 9 15 9 15 15 9 15 9 15 5 5 10 10 10 10 10 20 20 20 20 20 10 10 10 10 10 40 20 20 20 20 20 40 40 40 40

2.3.3.2. Cấu hình thực nghiệm

Các tham số thực nghiệm:

- Dữ liệu: 30 file dữ liệu trong bộ dữ liệu iMOPSE như trong bảng 2.11;

- Khởi tạo quần thể ban đầu với 100 cá thể;

- Số thế hệ tiến hóa: 100.000;

- Số lần chạy thực nghiệm trên mỗi bộ dữ liệu: 50;

58

- Hệ số phát hiện cực trị địa phương nmax: 30.

Môi trường thực nghiệm:

- Thực nghiệm được tiến hành trên môi trường Matlab 2014

- Máy tính thực nghiệm: CPU Intel Core i5, tốc độ 2.2 GHz, RAM 6GB,

hệ điều hành Windows 10 (64 bit).

2.3.3.3. Kết quả thực nghiệm

nghiệm của M-PSO được so sánh với:

Kết quả thực nghiệm được thể hiện trong bảng 2.12 dưới đây. Kết quả thực

- Thuật toán GA-M: là thuật toán di truyền cải tiến của nhóm

Myszkowski, thuật toán này được nhóm tác giả công bố cùng với bộ

công cụ GA Runner để chạy và kiểm chứng kết quả, nên kết quả của

GA-M là khách quan và tin cậy [42],[45].

- Một số thuật toán lai (hybrid) như: HAntCO, GRASP[44]. Đây là các

thuật toán tiến hóa được lai ghép tính ưu việt của hai hoặc nhiều thuật

toán hoặc kỹ thuật khác nhau.

59

Bảng 2.12: Kết quả thực nghiệm M-PSO

GA-M

HAntCO

GRASP

M-PSO

TT

Dataeset

Best Avg

Std

Best Avg

Best Avg

Std

Best Avg

Std

Std

100_5_22_15

517

524

5.3

0.8

505

503

504

0.5

485

486

1.7

504

1

100_5_46_15

584

587

4.7

0

604

552

556

2.6

530

531

0.5

604

2

100_5_48_9

528

535

9.7

1.6

523

510

510

0.8

490

492

1.6

521

3

100_5_64_15

527

530

2.5

2.9

523

501

502

0.8

478

479

1.3

516

4

100_5_64_9

508

521

9.9

3.9

515

494

494

0.6

471

474

2.5

507

5

100_10_26_15

292

292

0.0

2.2

270

251

258

3.2

233

233

0.4

266

6

100_10_47_9

296

296

0.0

4

302

263

264

0.7

257

261

3.7

297

7

100_10_48_15

279

282

2.9

4.4

286

256

257

1.2

244

245

0.6

278

8

100_10_64_9

296

305

6.6

5.1

296

255

257

1.9

240

246

5.9

287

9

100_10_65_15

286

290

5.0

3.5

287

256

260

1.9

244

245

1.3

281

10

100_20_22_15

163

169

5.8

3.6

170

134

137

1.6

128

131

3.1

161

11

100_20_46_15

197

207

6.9

2.6

199

170

174

3.1

162

165

2.9

194

12

100_20_47_9

185

186

0.5

3.7

187

133

140

2.2

124

128

3.6

180

13

100_20_65_15

240

240

0.5

2.7

220

213

213

0

228

230

1.8

218

14

100_20_65_9

181

187

4.5

3.1

185

135

135

1.4

125

125

0.3

180

15

200_10_128_15

577

583

4.9

3.1

528

491

496

4.2

461

464

2.7

522

16

60

GA-M

HAntCO

GRASP

M-PSO

TT

Dataeset

Best Avg

Best Avg

Std

Best Avg

Std

Best Avg

Std

Std

200_10_50_15

553

577

17.5

543

8

524

528

3.8

489

490

0.7

529

17

200_10_50_9

585

589

5.0

556

4.8

506

508

1.4

487

491

3.7

546

18

200_10_84_9

567

583

11.4

581

6.9

526

527

0.8

508

510

2.1

571

19

200_10_85_15

549

555

4.9

538

6.5

496

498

1.1

473

476

2.5

526

20

200_20_145_15

326

328

2.0

314

4.4

262

271

4.2

236

237

1.4

309

21

200_20_54_15

363

385

20.8

349

6.6

304

308

3.7

256

256

0.3

336

22

200_20_55_9

312

318

4.2

317

3.1

257

258

0.6

251

255

3.5

313

23

200_20_97_15

424

438

9.7

368

4.8

347

347

0

334

337

3.3

356

24

200_20_97_9

321

326

6.2

332

4.1

253

256

1.6

255

256

0.9

326

25

200_40_133_15

215

222

6.2

221

3.4

163

170

4.1

147

151

4.1

214

26

200_40_45_15

201

210

6.3

212

2.6

164

164

0

163

167

4

206

27

200_40_45_9

209

213

2.9

215

3.8

144

147

1.6

152

162

9.5

209

28

200_40_90_9

211

215

3.1

214

1.8

148

153

4.5

145

152

7.1

211

29

200_40_91_15

200

205

3.4

212

2.9

153

159

2.6

135

143

8.3

207

30

61

Bảng 2.13: So sánh kết quả thực nghiệm M-PSO với các thuật toán khác

BEST

AVG

Thuật toán

Tỉ lệ (%)

Tỉ lệ (%)

Tổng STD

Số lượng

Số lượng

Từ Đến

Từ

Đến

85.3

M-PSO

30/30

5.0

32.97 30/30

4.3

33.56 173.3

GA-M

29/30

-4.59 34.78 29/30

-4.55 32.55 110.9

HAntCO

27/30

-7.04 15.79 26/30

-10.2 16.88

56.7

GRASP

Trong bảng 2.13:

- Cột “Số lượng” thể hiện số bộ dữ liệu (trên tổng số 30 bộ) mà thuật toán

M-PSO có kết quả tốt hơn thuật toán ở hàng tương ứng.

- Tỉ lệ (%) cho biết kết quả của M-PSO tốt hơn/kém hơn kết quả của các

thuật toán. Giá trị âm thể hiện một vài trường hợp mà M-PSO cho kết

quả kém hơn.

2.3.4. Đánh giá chất lượng lời giải của thuật toán

Luận án đã tiến hành thực nghiệm thuật toán M-PSO áp dụng cho bài toán

MS-RCPSP. Thực nghiệm được chạy trên 30 bộ dữ liệu iMOPSE, với số lần

chạy thực nghiệm là 50 lần, số thế hệ tiến hóa là 100.000, thuật toán được cài

đặt trên môi trường thử nghiệm Matlab 2014. Kết quả thực nghiệm được trình

bày trong bảng 2.12. Kết quả thực nghiệm được tổng hợp và so sánh trong

bảng 2.13.

So sánh với GA-M cải tiến của nhóm Myszkowski, ta thấy:

- Về giá trị BEST và AVG: M-PSO tốt hơn GA-M trong tất cả các trường

hợp, trong đó giá trị BEST tốt hơn GA-M từ 5.0% đến 32.97%, giá trị

AVG tốt hơn GA-M từ 4.3% đến 33.56%.

- Về giá trị độ lệch chuẩn STD, tổng độ lệch chuẩn của GA-M là 173,3,

62

của M-PSO là 85,3. Từ kết quả này, có thể thấy, thuật toán M-PSO mang

lại hiệu quả cao hơn thuật toán GA-M và tính ổn định của M-PSO cũng

tốt hơn.

So sánh với các thuật toán lai (hybrid) khác

- Bảng 2.13 cho thấy, kết quả của M-PSO có kết quả tốt hơn các thuật

toán lai ở hầu hết các trường hợp, cụ thể: tốt hơn HAntCO 29/30 bộ dữ

liêu, tốt hơn GRASP 27/30 bộ dữ liệu với giá trị BEST, 26/30 bộ dữ liệu

với giá trị AVG. Một số trường hợp M-PSO kém hơn các thuật toán lai,

tuy nhiên, giá trị kém hơn không nhiều. Ví dụ, khi so sánh với thuật toán

GRASP, trường hợp kém nhất của M-PSO so với GRASP là -7.04%,

trong khi đó giá trị tốt nhất cao hơn GRASP là 15.79%.

Như vậy, trong thuật toán mới M-PSO với việc bổ sung phương pháp di cư

quần thể đã mang lại hiệu quả tốt cho thuật toán. Bản chất của việc di cư quần

thể là việc mở rộng không gian tìm kiếm, giúp thuật toán có khả năng quét và

duyệt được nhiều phương án hơn, do vậy có khả năng tìm được nghiệm tốt hơn.

Ngoài ra, phương pháp di cư giúp thuật toán mới dễ dàng thoát khỏi cực trị địa

phương.

63

2.3.5. Hình ảnh so sánh M-PSO và GA-M

Hình 2.5. So sánh giá trị BEST giữa M-PSO và GA-M

Hình 2.6. So sánh giá trị STD giữa M-PSO và GA-M

64

2.4. Đề xuất thuật toán DEM

Thuật toán DEM (Reallocate Differential Evolution for MS-RCPSP)

[CT7], [CT8] được xây dựng trên cơ sở là thuật toán DE để giải bài toán MS-

RCPSP. Mục tiêu của thuật toán này là tìm ra được lịch biểu với thời gian thực

hiện ngắn nhất. DEM áp dụng cho MS-RCPSP với cải tiến như sau:

Với cá thể tốt nhất sau mỗi thế hệ, áp dụng phương pháp tìm và thay thế

tài nguyên thực hiện các tác vụ của cá thể. Phương pháp này được gọi là

tái thiết lập tài nguyên thực hiện.

2.4.1. Phương pháp tái thiết lập tài nguyên thực hiện

2.4.1.1. Ý tưởng của phương pháp tái thiết lập

Trong bài toán MS-RCPSP, một lịch biểu là một cá thể biểu diễn tài nguyên

thực hiện tác vụ thỏa mãn các ràng buộc ban đầu. Sau mỗi thế hệ, thuật toán sẽ

tìm ra được lịch biểu tốt nhất (Cbest), dựa trên lịch biểu này, thực hiện tiếp thay

đổi các tài nguyên thực hiện từng tác vụ sao cho vẫn đảm bảo được ràng buộc

của bài toán. Việc thay đổi tài nguyên thực hiện tác vụ được gọi là phương pháp

tái thiết lập (Reallocate). Phương pháp này giúp mở rộng được không gian tìm

kiếm và có thể tránh được cực trị địa phương.

Phương pháp tái thiết lập được thực hiện qua các bước như sau:

- Bước 1: Tìm tài nguyên sử dụng nhiều nhất trong Cbest, gọi là Lb. Đây là tài

nguyên kết thúc công việc sau cùng trong các tài nguyên sử dụng để thực

hiện dự án.

- Bước 2: Duyệt lần lượt từng tác vụ được thực hiện bởi tài nguyên Lb theo

thứ tự ưu tiên thực hiện của các tác vụ trên lịch biểu.

b: tập tác vụ đang được thực hiện bởi Lb

WR

- Bước 3: Với mỗi tác vụ Wi ∈ WRb (i=1- sizeof(WRb)), thực hiện:

65

• Tìm tất cả các tài nguyên có khả năng thực hiện được tác vụ Wi khác với

tài nguyên hiện tại (Lb), ký hiệu là LW;

W ∈ LW, thực hiện:

• Duyệt lần lượt từng tài nguyên có thể thực hiện tác vụ Wi, với mỗi tài

W;

nguyên Lj

o (1) Thiết lập tài nguyên thực hiện Wi là Rj

o (2) Xóa Wi khỏi danh sách tác vụ mà là Lb đang thực hiện.

Sau (1) và (2) ta sẽ nhận được lịch biểu mới, tính makespan của lịch biểu

mới newbest, nếu tốt hơn makespan của Cbest, thay thế Cbest bằng lịch newbest và

dừng lại, nếu không, tiếp tục thực hiện vòng lặp để kiểm tra.

𝐶𝑏𝑒𝑠𝑡 { 𝑛𝑒𝑤𝑏𝑒𝑠𝑡 𝑖𝑓 𝑓(𝑛𝑒𝑤𝑏𝑒𝑠𝑡) < 𝑓(𝐶𝑏𝑒𝑠𝑡) 𝐶𝑏𝑒𝑠𝑡 𝑖𝑓 𝑓(𝑛𝑒𝑤𝑏𝑒𝑠𝑡) ≥ 𝑓(𝐶𝑏𝑒𝑠𝑡)

Phép dịch chuyển này giúp thuật toán mở rộng không gian tìm kiếm bằng

việc tạo ra các cá thể mới dựa trên cá thể tốt nhất. Do cá thể newbest được tạo ra

từ cá thể tốt nhất nên có khả năng sử dụng được kinh nghiệm của cả quần thể

và của cá thể tốt nhất qua các thế hệ, đây chính là đặc tính của thuật toán DE.

Do vậy, sau khi áp dụng Reallocate, chúng ta có thể nhận được các cá thể tốt

hơn.

2.4.1.2. Sơ đồ thuật toán

Các bước thực hiện của phương pháp tái thiết lập được thể hiện chi tiết

trong sơ đồ thuật toán hình 2.7.

2.4.1.3. Hàm Reallocate

Thuật toán tái thiết lập tài nguyên [CT7], [CT8] thực hiện tác vụ được thể

hiện chi tiết trong Algorithm 2.2 sau đây.

Algorithm 2.2. Reallocate

Input: currentBest (các thể tốt nhất sau mỗi thế hệ)

Output: lịch biểu sau khi được hiệu chỉnh

66

1. makespan = f(currentBest)

2. newbest = currentBest;

3. Lb = lastResource (newbest) //tài nguyên hoàn thành sau

cùng

4. Wb = {các tác vụ được thực hiện bởi Lb}

5. For i=1 to size(Wb) // duyệt lần lượt từng tác vụ

6. Wi = Wb[i]; // lấy tác vụ thứ i

7. Li = {các tài nguyên thực hiện được Wi # Lb}

8. For j = 1 to size(Li) // duyệt lần lượt từng tài nguyên

Li[j] = Li[j] + {Wi} // chuyển ti sang Li[j]

9.

Lb = Lb – {Wi} // loại Wi khỏi Lb

10.

newmakespan = f(newbest) // tính toán lại makespan

11.

If newmakespan < makespan

12.

makespan = newmakespan

13.

Return newbest; // dịch chuyển thành công, trả

14.

về kết quả và dừng hàm

End if

15.

newbest = currentBest; // dịch chuyển không thành

16.

công, lấy lại lịch biểu ban đầu (trước khi dịch

chuyển) để thực hiện vòng lặp tiếp theo

End for // j

17.

18. End for // i

19. Return newbest;

End Function

Với:

- f: hàm tính makespan của một lịch biểu

- size: hàm tính số phần tử của một tập/mảng

- lastResource: hàm trả về tài nguyên kết thúc thực hiện sau

cùng

Ví dụ 2.3:

Xem xét một dự án với các thông tin như sau:

67

- Tập tác vụ W ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Bắt đầu

newbest = Cbest; makespan = f(newbest)

WR

Lb = max(newbest); i=0 b = {các task trong Lb}

Sai

i++; i < size(WR

b)

Đúng

Wi ∈ WR b, i=1.. size(WR b); j=0 Lt = {tập tài nguyên thực hiện được Wi } # Lb

F

j++; j < size(Lt)

T

j Thêm Wi vào Lt Xóa Wi khỏi Lb

Sai

f(newbest) < makespan

Đúng

Cbest = newbest makespan = f(newbest)

Kết thúc

- Tập tài nguyên L={1, 2, 3}.

Hình 2.7. Sơ đồ khối thực hiện di chuyển tác vụ sang tài nguyên khác

Thời gian thực hiện tác vụ được thể hiện trong bảng 2.14.

68

Bảng 2.14: Thời gian thực hiện các tác vụ

Tác vụ 1 2 3 4 5 6 7 8 9 10

Thời gian 2 4 3 5 2 2 5 3 4 2

Hình 2.8 thể hiện mối quan hệ giữa các tác vụ. Cụ thể như sau:

- Task 2 thực hiện và hoàn thành trước khi task 6,8 bắt đầu;

- Task 3 thực hiện và hoàn thành trước khi task 7 bắt đầu;

- Task 4 thực hiện và hoàn thành trước khi task 5 bắt đầu;

- Task 8 thực hiện và hoàn thành trước khi task 9 bắt đầu;

- Task 5 thực hiện và hoàn thành trước khi task 10 bắt đầu.

Task 0 và task 11 là 2 tác vụ giả với thời gian thực hiện bằng 0, thể hiện là

W6

W2

W8

W9

W0

W1

W3

W11

W7

W10

W4

W5

thời điểm bắt đầu và kết thúc dự án.

Hình 2.8. Thứ tự ưu tiên của các tác vụ

Năng lực của các tài nguyên được cho như trong bảng 2.15.

Bảng 2.15: Năng lực các tài nguyên

Tác vụ W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 × × × × × × × L1

× × × × × × ×

× × × × × × L2 L3

Giả sử, sau một thế hệ, ta tìm được lịch biểu với tài nguyên thực hiện tác

vụ được thiết lập như trong bảng 2.16.

69

Bảng 2.16: Tài nguyên thực hiện tác vụ

Tác vụ 1 2 3 4 5 6 7 8 9 10

Tài nguyên 1 1 2 1 2 2 3 2 1 1

Ta có thể thấy, biểu đồ Gantt của lịch biểu 2.15 như trong hình 2.9 dưới

W2

W4

W1

W9

W8

W3

L1 L2 L3

W5 W6 W7

đây. Makespan của lịch biểu 2.15 là: 17

W10 Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Hình 2.9. Biểu đồ Gantt của lịch biểu 2.15

Áp dụng hàm Reallocate, ta thiết lập tài nguyên thực hiện tác vụ W9 là L2,

lịch biểu mới được biểu diễn như trong hình 2.10. Lịch biểu mới có makespan

W2

W10

W4

L1 L2 L3

W1

W9

W3

W8

W5 W6 W7

là 16, tốt hơn so với kết quả trước.

Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Hình 2.10. Biểu đồ Gantt của lịch biểu mới

Cụ thể các việc tái thiết lập tài nguyên thực hiện tác vụ được thể hiện trong

Resources

Before Reallocate

After Reallocate

Time

hình 2.11 dưới đây.

Hình 2.11. Minh họa phương pháp tái thiết lập tài nguyên

70

2.4.2. Thuật toán

Các cải tiến của DEM được trình bày trong Algorithm 2.6 dưới đây.

Algorithm 2.6. Thuật toán DEM

Input : tmax - số thế hệ tối đa, dataset

Output : cá thể tốt nhất và thời gian thực hiện dự án

for (int i = 0; i< Size; i++)

P1  P2  P3  Pi = Lấy ngẫu nhiên cá thể từ Pall F = rand(0,1) Vi = P1 + F (P2 - P3) // parameter of the mutation operator for(j=0; j

end if

end for {Pbest, makespan} = fbest(Pall) Pbest = Reallocate(Pbest) {Pbest, makespan} = fbest(Pall)

1. Begin 2. Load and Valid iMOPSE dataset 3. t = 0 4. Pall = Initial population 5. {Pbest, makespan} = fbest(Pall) 6. while( t< tmax) 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. t = t+1 27. end while 28. return {Pbest, makespan} 29. End

Trong đó: f: hàm mục tiêu fbest: hàm trả lại cá thể tốt nhất

2.4.3. Kết quả thực nghiệm

Để thực nghiệm thuật toán DEM, luận án sử dụng bộ dữ liệu iMOPSE trong

bảng 2.11, các thông số thực nghiệm được thiết lập tương tự như trong mục

2.3.3.2. Kết quả thực nghiệm được trình bày như trong bảng 2.17 sau đây.

71

Bảng 2.17: Kết quả thực nghiệm DEM với bộ dữ liệu iMOPSE

GA-M

HAntCO

GRASP

DEM

TT

Dataeset

BEST AVG STD BEST AVG STD BEST AVG STD BEST AVG STD

100_5_22_15

1

517

524

5.3

504

505

0.8

503

504

0.5

484

486

1.8

100_5_46_15

2

584

587

4.7

604

552

556

2.6

528

529

2.1

0

604

100_5_48_9

3

528

535

9.7

521

510

510

0.8

489

491.7 1.3

1.6

523

100_5_64_15

4

527

530

2.5

516

501

502

0.8

495

499

1.5

2.9

523

100_5_64_9

5

508

521

9.9

507

494

494

0.6

485

488.7 0.6

3.9

515

100_10_26_15

6

292

292

0.0

266

251

258

3.2

232

235

3.8

2.2

270

100_10_47_9

7

296

296

0.0

297

263

264

0.7

252

254.7

1

4

302

100_10_48_15

8

279

282

2.9

278

256

257

1.2

243

245.2 0.5

4.4

286

100_10_64_9

9

296

305

6.6

287

255

257

1.9

251

253

1.9

5.1

296

100_10_65_15

10

286

290

5.0

281

256

260

1.9

249

252.1 1.2

3.5

287

100_20_22_15

11

163

169

5.8

161

134

137

1.6

128

131.4 0.5

3.6

170

12

100_20_46_15

197

207

6.9

194

170

174

3.1

161

163.1 1.6

2.6

199

13

100_20_47_9

185

186

0.5

180

133

140

2.2

123

125.2 2.7

3.7

187

14

100_20_65_15

240

240

0.5

218

213

213

0

210

213.3 0.8

2.7

220

72

GA-M

HAntCO

GRASP

DEM

TT

Dataeset

BEST AVG STD BEST AVG STD BEST AVG STD BEST AVG STD

15

100_20_65_9

181

187

4.5

180

3.1

135

135

1.4

125

126.7 1.4

185

16 200_10_128_15 577

583

4.9

522

3.1

491

496

4.2

460

463.8 1.1

528

200_10_50_15

577

17.5

529

17

553

8

524

528

3.8

484

486.2 0.4

543

18

200_10_50_9

585

589

5.0

546

4.8

506

508

1.4

484

486.7 0.9

556

19

200_10_84_9

567

583

11.4

571

6.9

526

527

0.8

521

523

1.6

581

20

200_10_85_15

549

555

4.9

526

6.5

496

498

1.1

481

483.3 2.3

538

21 200_20_145_15

326

328

2.0

309

4.4

262

271

4.2

242

244.9 0.3

314

200_20_54_15

385

20.8

336

22

363

6.6

304

308

3.7

257

259.3 2.3

349

23

200_20_55_9

312

318

4.2

313

3.1

257

258

0.6

248

250

5.7

317

24

200_20_97_15

424

438

9.7

356

4.8

347

347

0

330

332.3 3.5

368

25

200_20_97_9

321

326

6.2

326

4.1

253

256

1.6

240

245.6 4.1

332

26 200_40_133_15

215

222

6.2

214

3.4

163

170

4.1

139

144.1 3.9

221

27

200_40_45_15

201

210

6.3

206

2.6

164

164

0

162

163.9 0.6

212

28

200_40_45_9

209

213

2.9

209

3.8

144

147

1.6

151

163

12.5

215

29

200_40_90_9

211

215

3.1

211

1.8

148

153

4.5

146

154

7.7

214

30

200_40_91_15

200

205

3.4

207

2.9

153

159

2.6

131

137

5.3

212

73

Bảng 2.18: So sánh kết quả thực nghiệm DEM với các thuật toán

BEST

AVG

Thuật toán

Tỉ lệ (%)

Tỉ lệ (%)

Tổng STD

Số lượng

Số lượng

Từ

Đến

Từ

Đến

74.9

DEM

30/30

4.53

33.51 30/30

5.79

32.71

173.3

GA-M

30/30

3.67

36.71 30/30

3.05

35.38

173.32

HAntCO

29/30

-4.86 15.46 27/30

-10.88 15.81

56.7

GRASP

Trong bảng 2.18:

- Cột “Số lượng” thể hiện số bộ dữ liệu (trên tổng số 30 bộ) mà thuật toán

- Tỉ lệ (%) cho biết kết quả của DEM tốt hơn/kém hơn các thuật toán còn

DEM có kết quả tốt hơn thuật toán ở hàng tương ứng.

lại. Giá trị âm thể hiện một vài trường hợp mà DEM cho kết quả kém

hơn.

Bảng 2.19: So sánh kết quả thực nghiệm DEM với M-PSO

DEM M-PSO Dataset

BEST AVG STD BEST AVG STD

100_5_22_15

484

486

1.8

485

486

1.7

100_5_46_15

528

529

2.1

530

531

0.5

100_5_48_9

489

491.7 1.3

490

492

1.6

100_5_64_15

495

499

1.5

478

479

1.3

100_5_64_9

485

488.7 0.6

471

474

2.5

100_10_26_15

232

235

3.8

233

233

0.4

100_10_47_9

252

254.7

1

257

261

3.7

100_10_48_15

243

245.2 0.5

244

245

0.6

100_10_64_9

251

253

1.9

240

246

5.9

100_10_65_15

249

252.1 1.2

244

245

1.3

100_20_22_15

128

131.4 0.5

128

131

3.1

100_20_46_15

161

163.1 1.6

162

165

2.9

74

DEM M-PSO Dataset

BEST AVG STD BEST AVG STD

100_20_47_9

123

125.2 2.7

124

128

3.6

100_20_65_15

210

213.3 0.8

228

230

1.8

100_20_65_9

125

126.7 1.4

125

125

0.3

200_10_128_15 460

463.8 1.1

461

464

2.7

200_10_50_15

484

486.2 0.4

489

490

0.7

200_10_50_9

484

486.7 0.9

487

491

3.7

200_10_84_9

521

523

1.6

508

510

2.1

200_10_85_15

481

483.3 2.3

473

476

2.5

200_20_145_15

242

244.9 0.3

236

237

1.4

200_20_54_15

257

259.3 2.3

256

256

0.3

200_20_55_9

248

250

5.7

251

255

3.5

200_20_97_15

330

332.3 3.5

334

337

3.3

200_20_97_9

240

245.6 4.1

255

256

0.9

200_40_133_15

139

144.1 3.9

147

151

4.1

200_40_45_15

162

163.9 0.6

163

167

4

200_40_45_9

151

163

12.5

152

162

9.5

200_40_90_9

146

154

7.7

145

152

7.1

200_40_91_15

131

137

5.3

135

143

8.3

2.4.4. Đánh giá chất lượng lời giải của thuật toán

Luận án đã tiến hành thực nghiệm thuật toán DEM áp dụng cho bài toán

MS-RCPSP. Thực nghiệm được chạy trên 30 bộ dữ liệu iMOPSE, với số lần

chạy thực nghiệm là 50 lần, số thế hệ tiến hóa là 100.000, thuật toán được cài

đặt trên môi trường thử nghiệm Matlab 2014. Kết quả thực nghiệm được trình

bày trong bảng 2.17. Kết quả thực nghiệm được tổng hợp và so sánh trong

bảng 2.18.

So sánh với GA-M cải tiến của nhóm Myszkowski, ta thấy:

- Về giá trị BEST và AVG: DEM tốt hơn GA-M trong tất cả các trường

75

hợp, trong đó giá trị BEST tốt hơn GA-M từ 4.53% đến 33.51% (chi tiết

trong hình 2.12)., giá trị AVG tốt hơn GA-M từ 5.79% đến 32.71% (chi

tiết trong hình 2.14).

- Về giá trị độ lệch chuẩn STD, tổng độ lệch chuẩn của GA-M là 173.3,

của DEM là 74.9 (chi tiết trong hình 2.13).. Từ kết quả này, có thể thấy,

thuật toán DEM mang lại hiệu quả cao hơn thuật toán GA-M và tính

ổn định của DEM cũng tốt hơn.

So sánh với các thuật toán lai (hybrid) khác

- Bảng 2.18 cho thấy, kết quả của DEM có kết quả tốt hơn các thuật toán

lai ở hầu hết các trường hợp, cụ thể: tốt hơn HAntCO với tất cả các bộ

dữ liệu (30/30), tốt hơn GRASP 26/30 bộ dữ liệu với giá trị BEST. Một

số trường hợp DEM kém hơn các thuật toán lai, tuy nhiên, giá trị kém

hơn không nhiều. Xét về tổng số các bộ dữ liệu, DEM tốt hơn các thuật

toán lai ở hầu hết các trường hợp.

Bảng 2.19 so sánh kết quả thực nghiệm của thuật toán M-PSO và thuật toán

DEM trên bộ dữ liệu iMOPSE. Các phương kết quả áp dụng với bài toán MS-

RCPSP của 2 thuật toán này cho thấy:

- Với giá trị BEST, DEM tốt hơn M-PSO ở 19/30 bộ dữ liệu, DEM có giá

trị bằng M-PSO ở 2 trường hợp và DEM có giá kém hơn M-PSO ở 9/30

bộ dữ liệu. Tuy nhiên, giá trị STD của DEM là 74.9, tốt hơn so với M-

PSO là 85.3, điều này cho thấy DEM có độ ổn định hơn M-PSO.

- Cũng qua kết quả trong bảng 2.19 cho thấy, DEM tốt hơn M-PSO trong

các trường hợp dự án có cùng số tác vụ nhưng số lượng tài nguyên lớn

hơn.

Các kết quả của DEM có được nhờ việc ứng dụng thuật toán tiến hóa vi

phân (DE) kết hợp với cải tiến quan trọng là việc áp dụng hàm Reallocate. DE

76

có đặc tính định hướng cao dựa trên kinh nghiệm của quần thể và cá thể qua

các thế hệ, hàm Reallocate sẽ giúp tính toán lại các thể tốt nhất tìm được sau

mỗi thế hệ bằng việc thay thế tài nguyên thực hiện các tác vụ, việc này giúp

thuật toán mở rộng được không gian tìm kiếm và nâng cao khả năng hội tụ.

77

2.4.5. Hình ảnh so sánh DEM với thuật toán GA-M

Hình 2.12. So sánh giá trị BEST giữa DEM với GA-M

Hình 2.13. So sánh giá trị STD giữa DEM với GA-M

78

Hình 2.14. So sánh giá trị AVG giữa DEM với GA-M

79

Kết luận chương 2

Bài toán MS-RCPSP là bài toán có nhiều ứng dụng trong thực tế và đã được

chứng minh là bài toán thuộc lớp NP-Khó, nên không thể tìm được nghiệm

chính xác trong thời gian chấp nhận được. Để giải bài toán này, cần có các thuật

toán cận tối ưu để tìm các các lời giản tốt trong thời gian ngắn.

Trong chương này, luận án đã trình bày về cách mã hóa cá thể và thang đo

độ chênh giữa hai cá thể, đây là cơ sở quan trọng cho các cải tiến tiếp theo. Để

giải bài toán, 2 thuật toán mới đã được đề xuất gồm:

Thuật toán 1: M-PSO, là thuật toán được xây dựng trên cơ sở của thuật toán

tối ưu bầy đàn với cải tiến mới là kỹ thuật di cư, kỹ thuật này giúp thoát khỏi

cực trị địa phương và mở rộng không gian tìm kiếm của bài toán.

Thuật toán 2: DEM, là thuật toán được phát triển từ thuật toán tiến hóa vi

phân (DE) để áp dụng cho bài toán MS-RCPSP. Cải tiến quan trọng của DEM

là áp dụng hàm Reallocate để tái thiết lập tài nguyên thực hiện các tác vụ trong

một lời giải, giúp bài toán mở rộng không gian tìm kiếm và hội tụ nhanh chóng.

Thuật toán này đã được công bố trong công trình [CT7], [CT8].

Để kiểm chứng tính hiệu quả của M-PSO và DEM, luận án đã triển khai

thực nghiệm với bộ dữ liệu iMOPSE và có đánh giá so sánh cụ thể sau mỗi

phần thực nghiệm.

Kết quả nghiên cứu của chương này được công bố tại:

- Hội thảo quốc tế 6th NAFOSTED Conference on Information and Computer

Science (NICS), Hanoi, Vietnam, pp. 73-76, 2019 [CT5].

- Tạp chí International Journal of Electrical and Computer Engineering

(IJECE), (Q3), Vol. 8, No. 5, pp. 3851-3858, October 2018 [CT2];

- Tạp chí Scientific Programming (IF:1.28, Q3), Volume 2020, Article ID

8860384, 12, 2020 [CT8].

80

CHƯƠNG 3

BÀI TOÁN REAL-RCPSP

Mô hình bài toán MS-RCPSP bổ sung yếu tố kỹ năng và mức kỹ năng của

tài nguyên, nên khi yêu cầu tài nguyên thực hiện tác vụ cũng cần chỉ ra loại kỹ

năng và mức kỹ năng tối thiểu cần thiết để thực hiện. Việc điều chỉnh này giúp

bài toán MS-RCPSP có thể áp dụng được vào một số lĩnh vực thực tế. Tuy

nhiên, trong các mô hình sản xuất, cần có những yêu cầu cụ thể và chính xác

hơn như với mỗi tác vụ, tài nguyên (công nhân) có mức kỹ năng (trình độ) cao

hơn có thể hoàn thành công việc sớm hơn hoặc với chất lượng tốt hơn. Đây

chính là nhược điểm của bài toán MS-RCPSP, bài toán này quy định thời gian

thực hiện một tác vụ là như nhau với bất kỳ tài nguyên thực hiện nào. Để khắc

phục hạn chế này của bài toán MS-RCPSP, luận án đã đưa ra mô hình bài toán

Real-RCPSP với ràng buộc về thời gian thực hiện tác vụ thay đổi theo mức kỹ

năng của tài nguyên thực hiện. Phần tiếp theo của chương 03, luận án sẽ trình

bày các vấn đề sau:

Phần 3.1: Phát biểu bài toán mới Real-RCPSP. Đây là bài toán có khả năng

ứng dụng cao trong thực tiễn do được bổ sung các ràng buộc về thời gian thực

hiện liên quan đến mức kỹ năng của các tài nguyên.

Phần 3.2: Xếp loại bài toán Real-RCPSP.

3.1. Bài toán Real-RCPSP

Trong thực tế sản xuất, thông thường, nhân công (tài nguyên) có trình độ

tay nghề (mức kỹ năng) cao hơn, thường hoàn thành công việc với thời gian ít

hơn hoặc chất lượng tốt hơn hoặc cả hai. Do vậy, để áp dụng tốt hơn việc lập

kế hoạch điều phối công việc, kế hoạch trong sản xuất kinh doanh. Luận án đề

xuất một bài toán mới là Real-RCPSP. Bài toán này được phát triển dựa trên

81

cơ sở của bài toán MS-RCPSP và bổ sung thêm ràng buộc về mức kỹ năng của

tài nguyên thực hiện. Tài nguyên thực hiện tác vụ có mức kỹ năng cao hơn mức

kỹ năng yêu cầu thì thời gian hoàn thành tác vụ có thể nhanh hơn.

3.1.1. Phát biểu bài toán

Các ký hiệu:

 Ci: tập tác vụ (task) cần thực hiện trước tác vụ i

 S: tập tất các các kỹ năng của các tài nguyên; Si: Tập các kỹ năng của tài

nguyên i, Si  S;

 Si: kỹ năng thứ i;

 tjk: thời gian thực hiện tác vụ j bởi tài nguyên k, thời gian thực hiện cùng

một tác vụ có thể khác nhau với tài nguyên thực hiện khác nhau.

 L: tập các tài nguyên;

 Lk: tập tài nguyên có thể thực hiện tác vụ k; Lk  L

 Li: tài nguyên thứ i

 W: tập các tác vụ của dự án;

 Wk: tập các tác vụ có thể thực hiện bởi tài nguyên k, Wk  W

 Wi: tác vụ thứ i

 ri: tập các kỹ năng được yêu cầu để thực hiện tác vụ i. Một tài nguyên có

thể thực hiện được tác vụ i nếu có kỹ năng giống với kỹ năng yêu cầu của

tác vụ i và có mức kỹ năng lớn hơn hoặc bằng mức kỹ năng yêu cầu.

i: biến xác định tài nguyên v có đang thực hiện tác vụ u tại thời điểm i

 Bk, Ek: thời gian bắt đầu và thời gian kết thúc thực hiện tác vụ k

 Au,v

hay không; 1: có, 0: không

 hi: mức kỹ năng của kỹ năng (skill) i; gi: loại kỹ năng i;

 m: makespan của lịch biểu

 P: một lịch biểu khả thi của bài toán; Pall: Tập tất cả các lịch biểu

82

 f(P): hàm mục tiêu, để tính makespan của P

 n: số tác vụ, z: số tài nguyên

Mục tiêu của bài toán Real-RCPSP là tìm lịch biểu P sao cho:

f(P)  min

lịch biểu tìm được cần thỏa mãn các ràng buộc sau:

(3.1)  Sk    Lk L

 (3.2) tjk  0  Wj W,  Lk L

(3.3)  Ej  0  WjW

(3.4)

(3.5)

𝑞  ∀ 𝐿𝑘 ∈ 𝐿, ∀𝑞 ∈ 𝑚 ∶ ∑ 𝐴𝑖,𝑘

(3.6) ≤ 1  Ei  Ej - tj WjW, j1, WiCj  ∀ W𝑖 ∈ 𝑊𝑘 ∃ 𝑆𝑞 ∈ 𝑆𝑘 ∶ 𝑔𝑆𝑞 = 𝑔𝑟𝑖 và ℎ𝑆𝑞 ≥ ℎ𝑟𝑖 𝑛 𝑖=1

𝑞 ∈ {0; 1}

𝑞 = 1; với 𝐴𝑗,𝑘

(3.7)  ∀ 𝑊𝑗 ∈ 𝑊 ∃! 𝑞 ∈ [0, 𝑚], ! 𝐿𝑘 ∈ 𝐿: 𝐴𝑗,𝑘

 (3.8) 𝑡𝑖𝑘 ≤ 𝑡𝑖𝑙 𝑣ớ𝑖 ℎ𝑘 ≤ ℎ𝑙 ∀ (𝑟𝑘, 𝑟𝑙) ∈ {𝑆𝑘 × 𝑆𝑙 }

Cụ thể:

 Các ràng buộc (3.1 đến 3.7) được phát biểu tương tự như bài toán MS-

RCPSP

 Ràng buộc (3.8): là ràng buộc riêng của bài toán Real-RCPSP, thể hiện tài

nguyên thực hiện có mức kỹ năng (trình độ) lớn hơn yêu cầu của tác vụ,

thì thời gian thực hiện có thể nhỏ hơn hơn thời gian chuẩn của tác vụ.

3.1.2. Những ứng dụng thực tế của bài toán Real-RCPSP

Cải tiến quan trọng của bài toán Real-RCPSP là sự điều chỉnh thời gian

thực hiện mỗi tác vụ theo mức kỹ năng. Nếu xem xét cụ thể trong các dự án

thực tế, thông thường với cùng một tác vụ, nhân công (tài nguyên) có trình độ

cao sẽ hoàn thành trong thời gian ngắn hơn nhân công có trình độ thấp. Do vậy,

bài toán Real-RCPSP có khả năng ứng dụng cao trong thực tiễn, một số lĩnh

83

vực cụ thể có thể áp dụng mô hình bài toán này là:

- Trong lĩnh vực sản xuất: thông thường các quy trình sản xuất thành phẩm

sẽ thực hiện theo dây chuyền gồm nhiều công đoạn, mỗi công đoạn yêu cầu

nhân công thực hiện với trình độ tay nghề khác nhau. Khi đó, bài toán Real-

RCPSP sẽ căn cứ trên các tài nguyên sẵn có, đưa ra một kế hoạch sản xuất

tốt, tiết kiệm tối đa thời gian thực hiện.

- Trong lĩnh vực logistic: bài toán này giúp lên kế hoạch, điều phối kho bãi,

thiết bị giao vận một cách phù hợp theo các nhu cầu lưu kho, vận chuyển cụ

thể, tránh lãng phí tài nguyên.

- Cấp phát tài nguyên trong các hệ thống công nghệ thông tin: tùy theo từng

công việc cụ thể, nhu cầu sử dụng tài nguyên có thể khác nhau, các tài

nguyên bao gồm: hệ thống máy chủ, hệ thống lưu trữ, lưu lượng mạng, khả

năng xử lý, ... Bài toán Real-RCPSP có thể áp dụng một cách hiệu quả trong

việc phân công, cấp phát tài nguyên theo từng yêu cầu cụ thể, trong các hệ

thống IoT và nhiều lĩnh vực ứng dụng khác.

3.2. Xếp loại bài toán Real-RCPSP thông qua phân loại Graham

Lập lịch (Scheduling) là tên gọi chung để chỉ họ bài toán bao gồm rất nhiều

nhánh với những đặc trưng đa dạng. Những trường hợp riêng, những bài toán

con mới trong họ bài toán lập lịch không ngừng được các nhóm nghiên cứu đề

xuất và nghiên cứu vì chúng xuất hiện trong mọi mặt của khoa học, công nghệ

và đời sống. Họ bài toán lập lịch có nhiều lớp, nhiều bài toán con và nhiều biến

thể khác nhau, nên cần được phân loại để thuận lợi trong việc so sánh, đối chiếu.

Năm 1979 Graham [51] đã đề xuất một cách phân loại cho các bài toán Lập

lịch. Cách phân loại Graham, sau khi được Veltman [9] bổ sung vào năm 1990,

được giới nghiên cứu công nhận và sử dụng một cách rộng rãi. Cách phân loại

Graham khá đơn giản và dễ thực hiện, đồng thời cho phép biểu diễn tất cả

84

những yếu tố - vốn rất đa dạng và phức tạp của các bài toán - chỉ bằng ba thành

phần ký hiệu là α|β|γ. Ngoài ra cách phân loại Graham (đôi khi còn được gọi là

Ký pháp Graham) có thể được mở rộng để biểu thị hầu hết các bài toán con

trong họ bài toán Lập lịch, nói cách khác gần như mọi bài toán Lập lịch đều có

thể biểu diễn được bằng ký pháp Graham, hơn nữa cách biểu diễn đó lại rất

ngắn gọn.

Để phân loại các bài toán lập lịch, Graham xem xét ba thành phần cơ bản

mà bài toán lập lịch nào cũng có, đó là:

 α: thành phần đặc trưng cho tác vụ, mô tả những tác vụ mà hệ thống cần

thực hiện.

 β: thành phần đặc trưng cho hệ thống đang cần lập lịch, mô tả những đặc

trưng của hệ thống.

 γ: thành phần đặc trưng cho mục tiêu của việc lập lịch, cho biết đại lượng

nào cần được tối ưu hóa.

Sau đó Veltman đề xuất và được giới nghiên cứu nhất trí sử dụng ba thành

phần đó theo một thứ tự logic hơn như sau:

 Thành phần thứ nhất (α) mô tả những đặc trưng của hệ thống như: số lượng

tài nguyên (trong trường hợp cụ thể, tài nguyên là các server, router, công

nhân, robot...), năng lực tính toán của tài nguyên, cơ chế đồng bộ hóa và

mạng kết nối giữa các tài nguyên.

 Thành phần thứ hai (β) mô tả các tính chất của tác vụ, công việc.

 Thành phần thứ ba (γ) chỉ ra mục tiêu của bài toán là gì, mô tả đại lượng

cần được tối ưu hóa. Chẳng hạn như việc giải bài toán hướng đến việc tối

thiểu hóa thời gian thực hiện, tối đa hóa lợi nhuận hay tối thiểu hóa chi phí.

Trong ký pháp Graham, mỗi thành phần là một hoặc một dãy ký hiệu ngăn

cách nhau bởi dấu phẩy, các ký hiệu đó cho biết bài toán thuộc lớp bài toán con

nào trong những trường hợp đã biết.

85

Thành phần thứ nhất (α)

Để biểu diễn những đặc trưng của hệ thống, thành phần thứ nhất bao gồm

hai trường là Kiểu tài nguyên và Số lượng tài nguyên. Mỗi trường bao gồm

những ký hiệu phản ánh những đặc trưng dưới đây.

Kiểu tài nguyên:

 1: hệ thống chỉ có một tài nguyên duy nhất

 P: hệ thống gồm nhiều tài nguyên giống hệt nhau về năng lực và chúng hoạt

động song song với nhau.

 𝑃̅: như trường hợp P song song bổ sung thêm giả thiết rằng số lượng tài

nguyên lớn hơn hoặc bằng số lượng tác vụ cần thực hiện.

 Q: hệ thống gồm những tài nguyên khác nhau về năng lực. Bài toán Real-

RCPSP có đặc trưng này.

 MPM: mỗi tài nguyên có thể thực hiện bất cứ tác vụ nào hay bất cứ công

đoạn nào của tác vụ trong trường hợp tác vụ bao gồm nhiều công đoạn.

 O: Bài toán Open Shop

 F: Bài toán Flow Shop

 J: Bài toán Job Shop

Số lượng tài nguyên:

 Để trống: số lượng tài nguyên thay đổi tùy theo giải pháp sử dụng. Bài toán

Real-RCPSP có đặc trưng này.

 Một số nguyên dương m: các giải pháp bắt buộc phải sử dụng đúng m tài

nguyên, m được quy định bởi giả thiết của bài toán.

 ∞: các giải pháp được sử dụng số lượng tài nguyên tùy ý, không giới hạn

Thành phần thứ hai (β):

Thành phần này mô tả các đặc trưng của tác vụ công việc phải thực hiện

thông qua một hoặc nhiều trường con ngăn cách nhau bởi dấu phẩy. Các trường

86

con bao gồm:

Thứ tự thực hiện hoặc quyền ưu tiên giữa các tác vụ:

 Để trống: các tác vụ được thực hiện độc lập với nhau, nói cách khác tập

cạnh E=∅

 prec: bài toán có quy định một thứ tự thực hiện nào đó giữa các tác vụ, khi

đó tác vụ cha phải được thực hiện trước tác vụ con. Thứ tự này được biểu

diễn thông qua đồ thị G thuộc dạng DAG (có hướng, không có chu trình).

Bài toán Real-RCPSP có đặc trưng này.

 {outtree, intree, tree, fork, join, chains}: đồ thị G hình cây có gốc, thuộc

một trong các dạng mô tả trong hình 3.1, trong đó Fork và Join là hai trường

Fork

Join

Outtree

Intree

Chains

hợp riêng của đồ thị dạng Outtree và Intree khi số nút nguồn =1.

Hình 3.1. Các kiểu thứ tự thực hiện tác vụ

Chi phí thực hiện hoặc thời gian thực hiện tác vụ:

 Để trống: thời gian truyền thông giữa các tác vụ bằng không, mỗi tác vụ chỉ

được thực hiện bởi duy nhất 1 tài nguyên, thời gian thực hiện tùy thuộc vào

tác vụ và tài nguyên thực hiện tác vụ đó. Bài toán Real-RCPSP có đặc trưng

này.

 ri: mỗi tác vụ phải hoàn thành trước một thời hạn cho trước nào đó.

 pi = 1: mọi tác vụ đều có chi phí/thời gian thực hiện bằng nhau và bằng 1

đơn vị

 pi = p: mọi tác vụ đều có chi phí/thời gian thực hiện bằng nhau và bằng p

87

đơn vị

 pmtn: quá trình thực hiện một tác vụ có thể bị dừng lại để tài nguyên chuyển

sang thực hiện một tác vụ khác có mức ưu tiên cao hơn, sau khi xong mới

quay lại tiếp tục thực hiện tác vụ ban đầu

Chi phí hoặc thời gian truyền thông:

 Để trống: chi phí/thời gian truyền được giả thiết là bằng không. Bài toán

Real-RCPSP có đặc trưng này.

 cij: mỗi tuyến liên kết (biểu diễn bởi 1 cạnh eijE) tương ứng với một chi

phí/thời gian truyền riêng được tính theo một công thức nào đó.

 c: chi phí/thời gian truyền của mọi tuyến liên kết là bằng nhau: c(eij) = c;

eij E

Thành phần thứ ba (γ):

Thành phần này mô tả mục tiêu của bài toán bằng các ký hiệu như sau:

 Cmax: mục tiêu của việc xếp lịch là nhằm tối thiểu hóa makespan. Bài toán

Real-RCPSP có đặc trưng này.

 Lmax: mục tiêu của việc xếp lịch là nhằm tối thiểu hóa thời gian trễ.

Theo các quy định về phân loại bài toán như trên, bài toán Real-RCPSP

được biểu diễn theo ký pháp Graham như sau:

Q|prec|Cmax

88

Kết luận chương 3

Bài toán Real-RCPSP là một nhánh của bài toán MS-RCPSP trong đó thời

gian thực hiện tác vụ sẽ thay đổi theo mức kỹ năng của tài nguyên thực hiện,

mức kỹ năng càng cao (so với yêu cầu) thì thời gian thực hiện càng ngắn. Bài

toán này có thể triển khai ứng dụng trong nhiều lĩnh vực, đặc biệt là trong việc

lập lịch điều phối quá trình sản xuất sản phẩm.

Trong chương này, luận án đã trình bày phát biểu toán học của bài toán, các

ứng dụng của bài toán Real-RCPSP và phân loại bài toán.

Kết quả nghiên cứu của chương này được công bố tại:

Tạp chí Journal of Advanced Transportation (IF: 1.67,

Q2), Volume 2020, Article ID 8897710, 11 pages, 2020 [CT9]

89

CHƯƠNG 4

GIẢI BÀI TOÁN REAL-RCPSP BẰNG PHƯƠNG PHÁP TIẾN HÓA

Bài toán Real-RCPSP bổ sung thêm ràng buộc về thời gian thay đổi theo

VI PHÂN VÀ PHƯƠNG PHÁP CUCKOO SEARCH

mức kỹ năng của tài nguyên thực hiện, do vậy có khả năng ứng dụng cao trong

thực tế đặc biệt trong việc lập kế hoạch sản xuất trong các dây chuyền công

nghiệp. Trong chương này, luận án sẽ tập trung vào các phương pháp để giải

bài toán mới, giúp tìm được các phương pháp lịch biểu tốt. Phần tiếp theo của

chương 04 sẽ trình bày các vấn đề sau:

Phần 4.1: Trình bày phương pháp biểu diễn cá thể của bài toán Real-

RCPSP.

Phần 4.2: Giới thiệu bộ dữ liệu thực nghiệm chuyền may của công ty TNG

[54], đây là bộ dữ liệu được số hóa từ các hợp đồng may mặc thực tế.

Phần 4.3: Trình bày thuật toán A-DEM đề giải bài toán Real-RCPSP. Đây

là thuật toán được xây dựng trên cơ sở của thuật toán tiến hóa vi phân (DE) với

cải tiến mới bằng việc bổ sung hàm thích nghi (Adaptive).

Phần 4.4: Trình bày thuật toán R-CSM để giải bài toán Real-RCPSP. Thuật

toán này được phát triển từ thuật toán Cuckoo Search (CS) [60],[61] với cải

tiến mới là áp dụng phương pháp Reallocate để tái thiết lập tài nguyên thực

hiện tác vụ đối với cá thể tốt nhất sau mỗi thế hệ.

Phần 4.5: Trình bày thuật toán RR-CSM, đây là thuật toán cải tiến từ thuật

toán R-CSM với cải tiến mới là áp dụng thêm kỹ thuật Rotate trên cá thể tốt

nhất đã được cải tiến trong R-CSM.

Các thuật toán được kiểm chứng bằng việc thực nghiệm trên 2 bộ dữ liệu

iMOPSE và bộ dữ liệu của TNG (bộ dữ liệu thực tế được thu thập từ hoạt động

sản xuất chuyền may công nghiệp, sau đó được số hóa để phù hợp với đầu vào

của bài toán Real-RCPSP).

90

4.1. Phương pháp biểu diễn cá thể

Trong bài toán Real-RCPSP, một cá thể hay một lịch biểu là một vector có

số phần tử bằng số tác vụ của dữ liệu đầu vào, mỗi phần tử của vector lịch biểu

có giá trị bằng chỉ số của tài nguyên sử dụng để thực hiện tác vụ đó. Ngoài vấn

đề đáp ứng các ràng buộc của bài toán (tương tự như bài toán MS-RCPSP như

trình bày trong phần 2.1), Real-RCPSP còn chứa các thông tin mô tả về thời

gian thực hiện tác vụ theo mức kỹ năng.

Định nghĩa 4.1: Thời gian chuẩn thực hiện một tác vụ là thời gian thực

hiện tác vụ đó với tài nguyên đáp ứng yêu cầu tối thiểu. Tài nguyên có mức kỹ

năng cao hơn yêu cầu tối thiểu sẽ thực hiện tác vụ với thời gian nhỏ hơn hoặc

bằng thời gian chuẩn.

Ví dụ 4.1: Xét một dự án gồm 10 tác vụ, 2 tài nguyên thực hiện.

- Tập hợp tác vụ W={W1, W2, W3, W4, W5, W6, W7, W8, W9, W10}

- Tập hợp tài nguyên L = {L1, L2}.

Thứ tự ưu tiên của các tác vụ được biểu diễn như trong hình 2.1

Thời gian chuẩn thực hiện từng tác vụ (tính theo giờ) được thể hiện trong

bảng 4.1.

Bảng 4.1: Thời gian chuẩn thực hiện các tác vụ

Tác vụ 1 2 3 4 5 6 7 8 9 10

Thời gian 4 6 3 5 3 7 4 5 6 4

Thông tin về năng lực của tài nguyên được thể hiện trong bảng 4.2.

Bảng 4.2: Năng lực tài nguyên của dự án

Kỹ năng 1 Kỹ năng 2 Kỹ năng 3

Tài nguyên g1 h1 h2 g3 h3 g2

× 1 3 × 4 ×

× 2 × 5 L1 L2

91

Bảng 4.2 cho thấy, các tài nguyên gồm có ba loại kỹ năng, kỹ năng g1 có

mức kỹ năng 1 hoặc 2, kỹ năng g2 có mức kỹ là 3 và kỹ năng g3 có mức kỹ

năng là 4 hoặc 5.

Thông tin về yêu cầu tài nguyên thực hiện của tác vụ và thời gian thực hiện

tương ứng với các mức kỹ năng được thể hiện như trong bảng 4.3 dưới đây.

Bảng 4.3: Yêu cầu tài nguyên thực hiện tác vụ và thời gian thực hiện

Tác vụ Thời gian thực hiện theo mức kỹ năng

Kỹ năng h3 h4 h5 h1 h2

4 3 2 2 3

5 4 4 g1 g2 W1 W2

3 2 2 3 g1 W3

4 3

3 3 2 g3 g2 W4 W5

7 6 5

4 3 2 2 3 g2 g1 W6 W7

5 4 3 3 4 g1 W8

6 5

4 3 3 g3 g2 W9 W10

Trong bảng 4.3, cột kỹ năng thể hiện loại kỹ năng yêu cầu để thực hiện tác

vụ, các cột h1 đến h5 thể hiện yêu cầu về mức kỹ năng của tài nguyên thực hiện,

mức kỹ năng càng cao thì thời gian thực hiện tác vụ càng thấp.

Căn cứ trên yêu cầu như trong bảng 4.3, một lịch biểu có thể được biểu diễn

như một vector dưới dạng như sau:

Tác vụ Tài nguyên 1 1 2 2 2 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 1 2 2 2 1

Như vậy, tài nguyên L1 sẽ thực hiện các tác vụ: W2, W5, W6, W10; tài nguyên

L2 thực hiện các tác vụ: W1, W3, W4, W7, W8, W9. Với lịch biểu này, thời gian

thực hiện từng tác vụ được thể hiện trong bảng 4.4.

92

Trong bảng 4.4, các tác vụ W2, W3, W5, W6, W10 được thực hiện bởi tài

nguyên đáp ứng yêu cầu tối thiểu, do vậy thời gian thực hiện bằng thời gian

chuẩn. Các tác vụ còn lại được thực hiện với tài nguyên có mức kỹ năng cao

hơn nên có thời gian thực hiện thấp hơn thời gian chuẩn.

Bảng 4.4: Thời gian thực hiện các tác vụ

Tác vụ 1 2 3 4 5 6 7 8 9 10

Thời gian 3 5 3 3 3 7 3 4 5 4

Lịch biểu này có thể được biểu diễn dạng biểu đồ Gantt như trong hình 4.1

Time

dưới đây.

Hình 4.1. Biểu đồ Gantt của lịch biểu trong ví dụ 4.1

4.2. Đề xuất thuật toán A-DEM

Thuật toán tiến hóa vi phân (DE: Differential Evolution) được áp dụng để

giải các bài toán NH-Khó. Trong DE, mỗi cá thể tiến hóa qua các thế hệ bằng

cách sử dụng 02 tham số chính là bước nhảy F và hệ số lai ghép CR, đây là các

hằng số sử dụng cho toàn bộ quá trình tiến hóa của thuật toán. Việc sử dụng

các hằng số làm DE có khả năng hội tụ nhanh, tuy nhiên dễ rơi vào cực trị địa

phương.

Thuật toán A-DEM (Adaptive DE for Real-RCPSP) được xây dựng trên cơ

sở thuật toán DE với các cải tiến quan trọng như sau:

(i) Tìm một cá thể lân cận tốt nhất với cá thể đang xem xét bằng cấu trúc hình

sao, cá thể này sử dụng trong quá trình đột biến.

(ii) Thay đổi hệ số lai ghép (CR) một cách linh động (Adaptive) theo từng thế

93

hệ dựa trên việc ghi nhận số cá thể đột biến thành công.

4.2.1. Phương pháp thích nghi

Trong thuật toán DE gốc, một toán tử quan trọng quyết định đến quá trình

đột biến của cá thể là hệ số lai ghép CR, là một hằng số. Thuật toán A-DEM sử

dụng cách tiếp cận thích nghi (Adaptive) để thay đổi tham số CR theo từng thế

hệ tiến hóa. Điều này giúp thuật toán mở rộng không gian tìm kiếm, hạn chế

rơi vào cực trị địa phương đồng thời sử dụng được kinh nghiệm tốt của thế hệ

trước để tạo ra các thế hệ sau tốt hơn, giúp thuật toán hội tụ nhanh hơn.

4.2.1.1. Kiến trúc Star

Kiến trúc hình sao (Star topology) [10],[35],[58] là một kiến trúc quần thể

trong đó các cá thể kết nối đến một cá thể ở trung tâm. Hình 4.2 là một ví dụ

về kiến trúc hình sao, trong đó, trong đó các cá thể bên ngoài sẽ đều có kết nối

đến cá thể trung tâm.

Hình 4.2. Kiến trúc hình sao

Kiến trúc hình sao có thể áp dụng trong việc tìm các cá thể lân cận dựa trên

một hoặc nhiều tiêu chí đo khác nhau như khoảng cách, thời gian truyền thông

tin, tính chất tương tự... Trong bài toán tiến hóa, chúng ta có thể áp dụng cấu

trúc hình sao để tìm các cá thể gần nhau phục vụ cho việc lai ghép, đột biến

trong các thế hệ. Áp dụng trong bài toán Real-RCPSP, việc tìm các cá thể lân

cận dựa trên khoảng cách chênh lệch (tính theo giờ) giữa một cá thể với các cá

thể khác.

94

Ví dụ 4.2:

Xem xét quần thể gồm 10 cá thể, với thời gian thực hiện của từng cá thể

được thể hiện trong hình 4.3.a.

Mục tiêu: tìm 03 các thể khác là lân cận với cá thể thứ 5 theo cấu trúc hình

sao. Ta thực hiện qua các bước sau:

Bước 1: sắp xếp quần thể theo thứ tự tăng dần của thời gian thực hiện, ta

có kết quả như trong hình 4.3.b.

Bước 2: duyệt danh sách Pall đã sắp xếp để tính khoảng cách với với cá thể

P5, ta có d5 = 13.

Bước 3: duyệt Pall để lấy 3 cá thể lân cận với P5. Các cá thể lân cận lấy được

S = {P2, P4, P6}.

gồm: P5

Thời gian Thời gian Pall Pall sorted d5

123 123 14 P1 P1

130 127 10 P2 P4

175 130 7 P3 P2

127 137 0 P4 P5

137 150 13 P5 P6

150 162 25 P6 P9

201 173 36 P7 P10

185 175 38 P8 P3

162 185 48 P9 P8

(a) Quần thể ban đầu

173 64 201 P10

P7 (b) Quần thể sau khi sắp xếp

Hình 4.3. Tìm các cá thể lân cận

4.2.1.2. Ý tưởng của phương pháp thích nghi

Mục tiêu của phương pháp thích nghi (Adaptive) là điều chỉnh hệ số lai

ghép µCR qua mỗi thế hệ nhằm tăng hiệu quả của thuật toán, việc điều chỉnh

95

phụ thuộc vào kết quả thực hiện tiến hóa của quần thể. Để ứng dụng tốt trong

bài toán Real-RCPSP, kỹ thuật thích nghi kết hợp với cấu trúc hình sao được

sử dụng để tìm kiếm các lân cận. Các bước cụ thể như sau:

- Hệ số lai ghép của cá thể thứ i, ký hiệu là CRi được tính hàm ngẫu nhiên

Cauchy của tham số lai ghép µCR, trong đo µCR được tính dựa trên số lượng

cá thể đột biến thành công trong thế hệ trước đó.

- Khi thực hiện thuật toán DE, tại thời điểm xem xét đột biến cá thể, thay vì

lựa chọn ngẫu nhiên 03 cá thể từ quần thể ban đầu, chúng ta sẽ sử dụng một

cá thể là localbest được tính toán dựa trên kiến trúc hình sao.

- Số lượng cá thể lân cận trong kiến trúc hình sao được thay đổi theo mỗi thế

hệ.

Ví dụ 4.3:

Xem xét ví dụ 4.2, tìm cá thể tốt nhất theo cấu trúc hình sao của cá thể thứ

5, biết rằng tại thời điểm thực hiện, số lượng cá thể lân cận để tìm cá thể tốt

nhất là w = 4.

S = {P5, P2, P4, P6}.

Sau bước 3 của ví dụ 4.2, ta có P5

S để tìm ra cá thể tốt nhất, tức là cá thể có thời gian thực hiện tối

Duyệt P5

thiểu. Căn cứ vào kết quả trong hình 4.3.b, ta dễ dàng tìm được cá thể tốt nhất

là P4 với thời gian thực hiện là 127.

Với ý tưởng điều chỉnh trong quá trình tiến hóa, khi áp dụng phương pháp

thích nghi vào thuật toán DE, sẽ mang lại các thay đổi như sau:

- Hệ số lai ghép thay đổi (thích nghi) theo kết quả thực hiện qua từng thế hệ

giúp việc tính toán linh động hơn, đa dạng hơn về cách lai ghép, đột biến,

lựa chọn.

- Sử dụng một cá thể localbest sẽ giúp việc đột biến thực hiện tốt hơn do tận

dụng được kinh nghiệm của cá thể tốt trước đó, điều này giúp thuật toán

96

nhanh hội tụ

- Sử dụng cấu trúc hình sao, giúp mở rộng không gian tìm kiếm, sẽ hạn chế

việc rơi vào cực trị địa phương.

Phương pháp thích nghi này được thể hiện thành hàm StarAdaptive dưới

đây.

4.2.1.3. Hàm StarAdaptive

Các bước thực hiện tìm kiếm cá thể lân cận tốt nhất, được chi tiết trong

Algorithm 4.1 StarAdaptive dưới đây. Đầu vào gồm: quần thể ban đầu,

vị trí của cá thể hiện tại và số cá thể lân cận để duyệt tìm cá thể tốt nhất.

Algorithm 4.1. StarAdaptive

Input: Pall: quần thể i: vị trí của cá thể hiện tại w: số cá thể lân cận Output: Pibest: cá thể tốt nhất trong

Begin

1. PR = {} 2. fitness ← f(Pall) // tính thời gian thực hiện của các cá

thể

3. mp = fitness(i) 4. Psortall ← sort(Pall, fitness) // sắp xếp quần thể theo fitness 5. Di = findDistance(i) 6. For j=1 to size(Pall) // duyệt lần lượt từng cá thể 7. If abs( fitness(j) – mp) ≤ Di 8. PS= PS + {Pj} 9. End if 10. End for 11. Pibest = fbest(PS) 12. Return Pibest

End Function

Trong đó:

findDistance: hàm tìm khoảng cách tối đa tính từ vị trí

i để có thể lấy đủ số cá thể lân cận với Pi

97

Hàm StarAdaptive sẽ được dùng trong thuật toán A-DEM để tìm kiếm cá

thể tốt nhất trong các cá thể lân cận với cá thể hiện tại.

4.2.2. Thuật toán A-DEM

Thuật toán A-DEM sử dụng kỹ thuật thích nghi trên cơ sở thay đổi hệ số

lai ghép và tìm cá thể tốt nhất dựa trên kiến trúc Star được thực hiện qua các

bước như sau:

- Bước 1: Khởi tạo quần thể với N cá thể: Pall

- Bước 2: Khởi tạo các giá trị ban đầu

- Bước 3: Thực hiện các tiến hóa qua các thế hệ

- Bước 4: Với mỗi thế hệ, duyệt từng cá thể Pi và thực hiện

best theo kiến trúc Star

- Bước 4.1: Tính toán Pi

- Bước 4.2: Tính toán hệ số lai ghép CR dựa trên tham số lai ghép µCR

- Bước 4.3: Lấy ngẫu nhiên 02 cá thể P1, P2 từ quần thể (khác với cá thể hiện

tại)

- Bước 4.4: Tạo ra cá thể vi bằng phép đột biến theo công thức:

Vi  Pi + F  (Pbest – Pi) + F  (P1 - P2)

𝑈𝑖,𝑗 = {

𝑉𝑖,𝑗 𝑛ế𝑢 rand(0,1) ≤ 𝐶𝑅𝑖 ℎ𝑜ặ𝑐 𝑖 = 𝐼𝑟𝑎𝑛𝑑 𝑃𝑖,𝑗 𝑛ế𝑢 rand(0,1) > 𝐶𝑅𝑖 ℎ𝑜ặ𝑐 𝑖 ≠ 𝐼𝑟𝑎𝑛𝑑

j ∈ (1,taskcount)

- Bước 4.5: Tạo ra cá thể mới Ui theo công thức

𝑈𝑖 𝑛ế𝑢 f(Ui) < 𝑓(𝑃𝑖) 𝑃𝑖 ngược lại

𝑃𝑖 = { - Bước 4.7: Ghi nhận hệ số đột biến thành công vào tập SCR

- Bước 4.6: Thay thế Pi theo công thức

µCR = (1 - c) × µCR + c × mean(SCR)

- Bước 5: Tính toán lại tham số lai ghép µCR theo công thức

w = wmax – i/N × (wmax – wmin)

- Bước 6: Hiệu chỉnh lại số cá thể lân cận theo công thức

98

- Bước 7: Tìm Pbest

Cải tiến chính của thuật toán A-DEM nằm trong các bước: 4.1, 4.2, 4.4, 4.7, 5,

6.

A-DEM được trình bày trong Algorithm 4.2 dưới đây.

Algorithm 4.2. A-DEM Input: tmax: số thế hệ, dataset, N số cá thể ban đầu

Output phương án tốt nhất Pbest và makespan

Begin t = 0 Load and valid Dataset Pall  initialize(N) // khởi tạo quần thể gồm N cá thể {Pbest, makespan}  fbest(Pall) // tìm cá thể tốt nhất µCR = 0.5; wmin = 4; wmax = 10; w = 3 while(t

for (int i = 0; i< N; i++) Pi

best = StarAdaptive(Pall,i, w)

1 2 3 4 5 6 7 8 9 10 CRi = randci (µCR, 0.1) 11 Pi  P1  P2  Random from Pall 12 Vi  Pi + F  (Pbest – Pi) + F  (P1 - P2) 13 Irand = randi(1,N) 14 for(j=0; j

16 𝑈𝑖,𝑗 = {

𝑈𝑖,𝑗 𝑛ế𝑢 randi,j ≤ 𝐶𝑅𝑖 ℎ𝑜ặ𝑐 𝑖 = 𝐼𝑟𝑎𝑛𝑑 𝑃𝑖,𝑗 𝑛ế𝑢 randi,j > 𝐶𝑅𝑖 ℎ𝑜ặ𝑐 𝑖 ≠ 𝐼𝑟𝑎𝑛𝑑

end while

17 end for 18 if(f(Ui)  f(Pi)) 19 Pi = Ui 20 SCR = SCR + {µCR} 21 end if 22 end for // end duyệt quần thể 23 c = rand(0,1) 24 µCR = (1 - c) × µCR + c × mean(SCR) //Adaptive factor 25 w = wmax – i/N × (wmax – wmin) 26 t  t+1 27 {Pbest, makespan}  fbest(Pbest) 28 29 return {Pbest, makespan} 30 end Trong đó:

f: hàm mục tiêu

99

fbest: hàm trả lại cá thể tốt nhất

F: bước nhảy

µCR: tham số lai ghép

w: số cá thể lân cận

randci: hàm phân phối Cauchy

mean: hàm tính giá trị trung bình

4.2.3. Thực nghiệm

4.2.3.1. Dữ liệu thực nghiệm

Để kiểm chứng khả năng ứng dụng vào thực tế của thuật toán đề xuất cho

bài toán Real-RCPSP, ngoài bộ dữ liệu iMOPSE [42][45], luận án còn sử dụng

bộ dữ liệu TNG được số hóa từ dữ liệu dây chuyền sản xuất may công nghiệp.

a) Chỉnh sửa bộ dữ liệu iMOPSE cho phù hợp với bài toán Real-RCPSP

Bộ dữ liệu iMOPSE chuẩn không phù hợp để kiểm chứng các thuật toán

cho bài toán Real-RCPSP vì mỗi tác vụ có thời gian thực hiện như nhau với bất

kỳ tài nguyên thực hiện nào, không phân biệt mức kỹ năng. Vì thế luận án đã

tiến hành điều chỉnh lại bộ iMOPSE, những số liệu chi tiết của việc điều chỉnh

này theo 3 mức dựa trên mức kỹ năng (bậc thợ), cụ thể như sau:

Mức 1: với tài nguyên có mức kỹ năng bằng hoặc cao yêu cầu 1 bậc, thời

gian thực hiện không thay đổi.

Mức 2: với tài nguyên có mức kỹ cao hơn yêu cầu từ 2 đến 3 bậc, thời gian

thực hiện tác vụ được điều chỉnh giảm xuống 5% so với thời gian chuẩn.

Mức 3: với tài nguyên có mức kỹ cao hơn yêu cầu từ 4 đến 7 bậc, thời gian

thực hiện tác vụ được điều chỉnh giảm xuống 7% so với thời gian chuẩn.

Việc điều chỉnh giảm thời gian thực hiện được đề xuất căn cứ trên dữ liệu

thực tế của chuyền may công nghiệp được trình bày dưới đây.

100

Ví dụ 4.4:

Một tác vụ có thời gian thực hiện trong bộ dữ liệu iMOPSE là 200 giờ, sẽ

được điều chỉnh như sau:

Mức 1: với tài nguyên có mức kỹ năng bằng hoặc cao hơn so với yêu cầu 1

bậc, thời gian thực hiện của tác vụ này không thay đổi, là: 200 giờ

Mức 2: với tài nguyên có mức kỹ năng cao hơn yêu cầu từ 2 đến 3 bậc, thời

gian thực hiện tác vụ được điều chỉnh giảm xuống 5%, còn: 190 giờ.

Mức 3: với tài nguyên có mức kỹ năng cao hơn yêu cầu từ 4 đến 7 bậc, thời

gian thực hiện tác vụ được điều chỉnh giảm xuống 7%, còn: 186 giờ.

b) Phương pháp số hóa dữ liệu chuyền may công nghiệp

Trong lĩnh vực sản xuất may công nghiệp, để hoàn thành một hợp đồng với

nhiều sản phẩm cùng loại, công ty may sẽ tổ chức các chuyền may để thực hiện

những công đoạn của sản phẩm. Mỗi chuyền may có nhiều công nhân với các

mức tay nghề khác nhau; các công đoạn may trong một chuyền may được bố

trí theo thứ tự ưu tiên của quy trình sản xuất thành phẩm. Dữ liệu chuyền may

gồm các đặc trưng sau:

- Để hoàn thành một sản phẩm, cần thực hiện qua nhiều công đoạn.

- Các công đoạn có thời gian thực hiện khác nhau và có yêu cầu công nhân

thực hiện cần có trình độ (bậc thợ) nhất định để thực hiện.

- Công nhân bậc cao có thể thực hiện được các công đoạn yêu cầu bậc thợ

thấp hơn.

- Công nhân có trình độ cao hơn trình độ yêu cầu, có thể hoàn thành công

việc sớm hơn.

- Các công đoạn có quan hệ ưu tiên chặt chẽ với nhau, không hoàn thành công

đoạn trước sẽ không thực hiện được công đoạn sau, do vậy số lượng ràng

buộc ưu tiên là rất nhiều.

- Các công nhân thực hiện trong một hợp đồng được tổ chức thành một tổ

may

101

Các đặc trưng của dữ liệu chuyền may công nghiệp rất phù hợp với dữ liệu

đầu vào của bài toán Real-RCPSP. Tuy nhiên, để có thể áp dụng dữ liệu chuyền

may, ta cần chuyển đổi các thông tin này về định dạng mà Real-RCPSP có thể

đọc và sử dụng được. Để số hóa dữ liệu chuyền may, ta thực hiện các quy tắc

như sau:

- Mỗi hợp đồng may mặc là một dự án và có thể tạo thành nhiều file dữ liệu

dựa vào cách bố trí tài nguyên thực hiện.

- Mỗi công đoạn trong chuyền may là một tác vụ

- Thời gian thực hiện một công đoạn là thời gian thực hiện một tác vụ

- Công nhân may có nhiều mức tay nghề hay bậc thợ khác nhau (từ 1 đến 7),

bậc thợ sẽ tương ứng với mức kỹ năng trong mô hình bài toán MS-RCPSP.

- Mỗi công nhân là một tài nguyên, tài nguyên sẽ có mức kỹ năng (skill level)

cụ thể

- Thứ tự thực hiện các công đoạn may thành phẩm chính là thứ tự ưu tiên thực

hiện các tác vụ.

Kết quả của việc số hóa dữ liệu chuyền may công nghiệp sẽ đưa ra các bộ

dữ liệu phù hợp với yêu cầu đầu vào của bài toán Real-RCPSP.

c) Bộ dữ liệu chuyền may TNG

Để phục vụ cho thực nghiệm các thuật toán, dữ liệu chuyền may công

nghiệp của công ty TNG [54] được nghiên cứu và số hóa thành bộ dữ liệu chuẩn

phù hợp với bài toán Real-RCPSP. Việc số hóa được thực hiện với hai hợp

đồng may mặc như trong bảng 4.5.

Các hợp đồng này có thể bố trí thực hiện bởi 04 tổ may với số lượng công

nhân tương ứng của mỗi tổ là 37,39,47,41.

Áp dụng quy tắc số hóa dữ liệu chuyền may với dữ liệu hợp đồng trong

bảng 4.5, ta được bảng dữ liệu chuẩn, phù hợp với đầu vào của bài toán Real-

RCPSP như trong bảng 4.6 dưới đây.

102

Bảng 4.5: Các hợp đồng may công nghiệp

STT Mã hợp đồng Loại sản phẩm Số sản phẩm Số công đoạn

1 Áo nỷ 33,693 71 WE1190/1698402 Liner Buy Mar 14-F19

2 Quần bơi 83,340 137 FM4013/ 1536181 buy Nov 08- F19

Bảng 4.6: Dữ liệu chuyền may của TNG

Bộ dữ liệu Số tác vụ Số ràng buộc ưu tiên

Số công nhân 37 39 41 45 37 39 41 45 71 71 71 71 137 137 137 137 Số mức kỹ năng 6 6 6 6 6 6 6 6 Thời gian thực hiện (PT) 409 325 296 392 1174 1052 871 996 1026 1026 1026 1026 1894 1894 1894 1894 TNG1 TNG2 TNG3 TNG4 TNG5 TNG6 TNG7 TNG8

Trong bảng 4.6, cột “Thời gian thực hiện (PT)” là tổng thời gian thực hiện

hợp đồng thực tế tương ứng với từng tổ may, tính theo giờ.

4.2.3.2. Kết quả thực nghiệm

Thuật toán A-DEM thực nghiệm với 2 bộ dữ liệu, bộ dữ liệu iMOPSE (bảng

2.11) hiệu chỉnh và bộ dữ liệu TNG (bảng 4.6). Các tham số thực nghiệm và

cài đặt được thiết lập tương tự như mục 2.3.3.2.

Kết quả thực nghiệm thuật toán A-DEM với mô hình bài toán Real-RCPSP

chạy trên bộ dữ liệu iMOPSE được trình bày trong bảng 4.7; với bộ dữ liệu

TNG trong bảng 4.8.

Bảng 4.7: Kết quả thực nghiệm A-DEM trên bộ dữ liệu iMOPSE

A-DEM Dataset

Std 1.1 0.2 GA-M Best Avg 469 465 529 523 Std Best Avg 3.1 454 452 5.4 506 505 100_5_22_15 100_5_46_15

103

A-DEM Dataset

Std 3.7 4.7 0.7 3.8 1.2 2.7 5.8 2.7 3.8 3.2 1.9 1.8 0.3 0.6 2.3 4.3 4.8 2.7 4.1 2.2 0.8 4.8 3.9 3.6 0.3 3.4 4.9 2.0 GA-M Best Avg 481 476 487 478 457 453 224 221 253 247 246 238 249 239 244 240 115 109 150 145 125 121 200 193 131 124 446 440 471 468 484 481 498 487 469 465 229 222 255 249 254 248 321 317 241 234 134 126 164 160 146 133 133 130 139 133 Std Best Avg 4.5 471 467 8.2 461 456 3.2 430 429 2.1 208 204 5.9 238 236 7.6 237 234 9.4 222 216 3.2 230 227 5.2 95 91 4.1 147 143 3.3 119 117 6.8 185 183 6.5 101 100 5.7 422 421 2.9 466 463 2.6 459 454 10.9 484 479 4.0 456 453 6.1 175 170 5.1 237 234 5.7 228 227 3.3 288 283 6.2 232 228 7.4 110 106 3.8 123 122 12.1 121 117 3.0 112 107 5.8 117 114 100_5_48_9 100_5_64_15 100_5_64_9 100_10_26_15 100_10_47_9 100_10_48_15 100_10_64_9 100_10_65_15 100_20_22_15 100_20_46_15 100_20_47_9 100_20_65_15 100_20_65_9 200_10_128_15 200_10_50_15 200_10_50_9 200_10_84_9 200_10_85_15 200_20_145_15 200_20_54_15 200_20_55_9 200_20_97_15 200_20_97_9 200_40_133_15 200_40_45_15 200_40_45_9 200_40_90_9 200_40_91_15

Bảng 4.8: Kết quả thực nghiệm A-DEM với bộ dữ liệu TNG

A-DEM Dataset

Avg Best 135 138 137 141 134 138 129 138 570 580 Std 2.7 3.8 3.4 8.3 9.5 Std 3.5 8.3 7.1 11.3 6.2 TNG1 TNG2 TNG3 TNG4 TNG5 GA-M Avg Best 201 203 198 205 212 218 176 187 751 757

104

A-DEM Dataset

Avg Best 621 629 571 577 557 564 Std 7.3 5.2 6.6 Std 5.5 10.7 9.4 TNG6 TNG7 TNG8 GA-M Avg Best 791 796 810 820 720 728

4.2.4. Đánh giá chất lượng lời giải của thuật toán

Các thực nghiệm được triển khai trên 02 thuật toán GA-M và A-DEM,

mỗi thuật toán thực hiện trên bộ dữ liệu iMOPSE và bộ dữ liệu TNG. Luận án

đã tiến hành thực nghiệm các thuật toán một cách độc lập với 50 lần chạy, cài

đặt trên môi trường thử nghiệm là Matlab 2014. Kết quả thực nghiệm được

trình bày trong bảng 4.7 và bảng 4.8 chỉ ra thuật toán A-DEM có chất lượng lời

giải tốt hơn thuật toán GA-M trong mọi trường hợp.

Với bộ dữ liệu iMOPSE, giá trị tốt nhất của A-DEM tốt hơn GA-M từ

0,52% đến 18,80. So sánh chi tiết được thể hiện trong hình 4.4. Tổng độ lệch

chuẩn của GA-M là 163,1, của A-DEM là 84,2, điều này cho thấy độ ổn định

của thuật toán A-DEM tốt hơn, hình 4.5 cho so sánh độ lệch chuẩn giữa A-

DEM và GA-M.

Với bộ dữ liệu TNG, giá trị tốt nhất của A-DEM tốt hơn GA-M từ 5,2%

đến 21,7%, so sánh chi tiết được thể hiện trong hình 4.6. Tổng độ lệch chuẩn

của GA-M là 62, của DEM là 46,8, điều này cho thấy độ ổn định của thuật toán

A-DEM tốt hơn, hình 4.7 so sánh độ lệch chuẩn giữa A-DEM và GA-M. Từ

kết quả thực nghiệm với bộ dữ liệu TNG cho thấy, nếu tài nguyên có số mức

kỹ năng càng lớn, khả năng chênh lệch giữa mức kỹ năng yêu cầu và mức kỹ

năng của tài nguyên thực hiện càng cao, do vậy tổng thời gian thực hiện dự án

sẽ giảm nhiều hơn.

105

4.2.5. Hình ảnh so sánh A-DEM và GA-M

Hình 4.4. So sánh giá trị BEST giữa A-DEM với GA-M trên iMOPSE

Hình 4.5. So sánh giá trị STD giữa A-DEM với GA-M trên iMOPSE

106

Hình 4.6. So sánh giá trị BEST giữa A-DEM và GA-M và TNG

Hình 4.7. So sánh giá trị STD giữa A-DEM với GA-M trên bộ dữ liệu TNG

4.3. Đề xuất thuật toán R-CSM

Thuật toán R-CSM (Reallocate Cuckoo Search for MS-RCPSP) được cải

tiến dựa trên thuật toán CS [CT5] để giải bài toán Real-RCPSP [CT9] với mục

tiêu là tìm ra lịch biểu có thời gian thực hiện ngắn nhất để điều phối quá trình

sản xuất trong thực tế. R-CSM có cải tiến quan trọng là sử dụng hàm

Reallocate() [CT9] để tái thiết lập tài nguyên thực hiện tác vụ cho cá thể tốt

nhất sau mỗi thế hệ.

107

4.3.1. Thuật toán

R-CSM sử dụng phương pháp tái thiết lập tài nguyên (đã trình bày chi tiết

trong mục 2.4.1) để cải thiện chất lượng lời giải. R-CSM dịch chuyển quần thể

bằng bước dịch chuyển Lévy Flight với kỹ thuật Tìm kiếm cục bộ (Local

Search) và Tìm kiếm toàn cục (Global Search) giúp mở rộng không gian tìm

kiếm đồng thời thoát khỏi bẫy cực trị địa phương.

R-CSM thực hiện qua các bước như sau:

- Bước 1: Khởi tạo quần thể với n cá thể: Pall

- Bước 2: Tính toán các giá trị trong quần thể: cá thể tốt nhất bestnest, giá

trị tốt nhất của mỗi cá thể trong quần thể qua các thế hệ (fitness), …

- Bước 3: Thực hiện các tiến hóa qua các thế hệ

- Bước 4: Với mỗi thế hệ, thực hiện

- Bước 4.1: Tạo ra 01 cá thể mới bằng kỹ thuật GS, cá thể mới là: Pnew

- Bước 4.2: Chọn Pi ngẫu nhiên từ quần thể

𝑃𝑖 = { 𝑃𝑛𝑒𝑤 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) < 𝑓(𝑃𝑖) 𝑃𝑖 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) ≥ 𝑓(𝑃𝑖)

- Bước 4.3: Tính toán các giá trị trong quần thể: bestnest, fitness, …

- Bước 4.4: Thay thế pa% cá thể kém nhất bằng các cá thể mới được tạo

ra bởi kỹ thuật Local Search.

- Bước 4.5: Áp dụng hàm Reallocate() (trình bày ở mục 2.4.1) đối với cá

thể tốt nhất (bestnest)

- Bước 5: Lặp lại từ bước 2 cho đến khi kết thúc

Cải tiến chính của thuật R-CSM toán nằm trong bước 4.5 khi áp dụng các

phương pháp Reallocate với cá thể tốt nhất.

108

Thuật toán R-CSM được trình bày trong Algorithm 4.3 dưới đây.

Algorithm 4.3. Thuật toán R-CSM

Input : dataset

tmax : số thế hệ tiến hóa

Output : cá thể tốt nhất và makespan

1. Begin 2. Load and Valid dataset

3. t  0

4. Pall  Initial population

5. f  Calculate the fitness, makespan, bestnest 6. while(t

7.

Pnew  Tạo cá thể mới bằng Lévy Flight (GS)

8.

Pi  Lấy ngẫu nhiên một cá thể từ Pall

9.

𝑃𝑖 = {

𝑃𝑛𝑒𝑤 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) < 𝑓(𝑃𝑖) 𝑃𝑖 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) ≥ 𝑓(𝑃𝑖) Ppa  pa% tổ kém nhất từ Pall For j = 1 to size(Ppa)

10. 11.

12.

Pnew  Tạo cá thể mới bằng Lévy Flight (LS)

𝑝𝑎 = {

13.

𝑃𝑗

𝑝𝑎) 𝑝𝑎)

𝑃𝑛𝑒𝑤 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) < 𝑓(𝑃𝑗 𝑝𝑎 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) ≥ 𝑓(𝑃𝑗 𝑃𝑗

End For

14.

15.

Pall  Thay thế Ppa vào Pall

bestnest = Reallocate(bestnest) makespan = f(bestnest) t = t+1 End while

16. f  Calculate the fitness, makespan, bestnest 17. 18. 19. 20.

21. return {bestnest, makespan} 22. End

Với:

- f: hàm tính makespan của một lịch biểu

Các dòng 17 là các lời gọi đến hàm Reallocate để cải tiến kết quả của cá

thể tốt nhất bestnest, sau đó sẽ tính toán lại makespan của cả quần thể bằng lời

gọi ở dòng 18.

109

4.3.2. Kết quả thực nghiệm

Để kiểm chứng thuật toán R-CSM, luận án tiến hành thực nghiệm trên 02

bộ dữ liệu: iMOPSE (bảng 2.11) hiệu chỉnh và bộ dữ liệu của TNG[54] (bảng

4.6). Các thông số cấu hình thực nghiệm tương tự như trong mục 2.3.3.2. Kết

quả thực nghiệm được trình bày trong bảng 4.9 và bảng 4.10 dưới đây.

R-CSM

Dataset

100_5_22_15 100_5_46_15 100_5_48_9 100_5_64_15 100_5_64_9 100_10_26_15 100_10_47_9 100_10_48_15 100_10_64_9 100_10_65_15 100_20_22_15 100_20_46_15 100_20_47_9 100_20_65_15 100_20_65_9 200_10_128_15 200_10_50_15 200_10_50_9 200_10_84_9 200_10_85_15 200_20_145_15 200_20_54_15 200_20_55_9 200_20_97_15 200_20_97_9 200_40_133_15 200_40_45_15 200_40_45_9

Best 465 523 476 478 453 221 247 238 239 240 109 145 121 193 124 440 468 481 487 465 222 249 248 317 234 126 160 133

Std 3.1 5.4 4.5 8.2 3.2 2.1 5.9 7.6 9.4 3.2 5.2 4.1 3.3 6.8 6.5 5.7 2.9 2.6 10.9 4.0 6.1 5.1 5.7 3.3 6.2 7.4 3.8 12.1

Best Avg 455 454 509 506 473 471 464 461 432 430 210 208 240 238 238 237 225 222 232 230 101 95 152 144 126 119 189 185 110 101 428 422 467 466 461 459 485 484 457 456 185 175 240 237 232 228 293 288 234 232 119 110 129 123 132 121

Std 1.0 2.1 1.5 2.3 1.4 1.3 1.6 0.1 2.1 1.8 5.2 7.8 6.1 3.6 8.9 5.1 0.9 1.2 0.4 0.3 9.2 2.7 3.1 4.9 1.5 8.1 5.7 10.3

GA-M Avg 469 529 481 487 457 224 253 246 249 244 115 150 125 200 131 446 471 484 498 469 229 255 254 321 241 134 164 146

Bảng 4.9: Kết quả thực nghiệm R-CSM với bộ dữ liệu iMOPSE

110

R-CSM

Dataset

200_40_90_9 200_40_91_15

GA-M Avg 133 139

Best 130 133

Std 3.0 5.8

Best Avg 125 112 127 117

Std 12.6 9.1

GA

R-CSM

Dataset

Best

Avg

Best

Avg

Std

Std

TNG1

201

203

131

136

4.5

3.5

TNG2 TNG3

198 212

205 218

133 132

138 135

5.2 1.6

8.3 7.1

TNG4

176

187

127

134

7.6

11.3

TNG5

751

757

572

577

4.1

6.2

TNG6

791

796

626

636

8.5

5.5

TNG7

810

820

569

573

5.7

10.7

TNG8

720

728

560

564

3.6

9.4

Bảng 4.10: Kết quả thực nghiệm R-CSM với bộ dữ liệu TNG

4.3.3. Đánh giá chất lượng lời giải của thuật toán

Các thực nghiệm được triển khai trên 02 thuật toán GA-M và R-CSM, mỗi

thuật toán thực hiện trên bộ dữ liệu iMOPSE và bộ dữ liệu TNG. Kết quả thực

nghiệm được trình bày trong bảng 4.9 và bảng 4.10 chỉ ra thuật toán R-CSM

có chất lượng lời giải luôn tốt hơn thuật toán GA-M.

Với bộ dữ liệu iMOPSE, giá trị tốt nhất của R-CSM tốt hơn GA-M từ 0,04%

đến 23,1 %, so sánh chi tiết được thể hiện trong hình 4.8. Tổng độ lệch chuẩn

của GA-M là 163,1, của R-CSM là 122,1, điều này cho thấy độ ổn định của

thuật toán R-CSM tốt hơn, hình 4.9 cho so sánh độ lệch chuẩn giữa R-CSM và

GA-M.

Với bộ dữ liệu TNG (thông số thực nghiệm trong bảng 4.10), giá trị tốt nhất

của R-CSM tốt hơn GA-M từ 20,86% đến 37,74%, so sánh chi tiết được thể

hiện trong hình 4.10. Tổng độ lệch chuẩn của GA-M là 62, của R-CSM là 40,8,

điều này cho thấy độ ổn định của thuật toán R-CSM tốt hơn, hình 4.11 cho so

sánh độ lệch chuẩn giữa R-CSM và GA-M.

111

4.3.4. Hình ảnh so sánh R-CSM với thuật toán GA-M

Hình 4.8. So sánh giá trị BEST giữa R-CSM với GA-M trên iMOPSE

Hình 4.9. So sánh giá trị STD giữa R-CSM với GA-M trên iMOPSE

112

Hình 4.10. So sánh giá trị BEST giữa R-CSM, GA-M và TNG trên

Hình 4.11. So sánh giá trị STD giữa R-CSM với GA-M

4.4. Đề xuất thuật toán RR-CSM

Trong thực tế, khi thực hiện xong một tác vụ, tài nguyên có thể ở vào trạng

thái trống (rảnh rỗi), tác vụ kế tiếp chưa thực hiện được ngay vì phải chờ tác vụ

khác thực hiện xong, có thể bởi các tài nguyên khác. Do vậy, để tận dụng tài

nguyên, thuật toán đề xuất sẽ áp dụng hàm Rotate() để tìm các khoảng thời gian

mà tài nguyên rảnh rỗi để bố trí thực hiện tác vụ. Hàm Rotate() chính là cải tiến

mới của thuật toán RR-CSM (Rotate and Reallocate Cuckoo Search for MS-

RCPSP) so với thuật toán R-CSM ở mục trước.

113

4.4.1. Phương pháp Rotate

Các tác vụ trong dự án được thực hiện theo một thứ tự ưu tiên cho trước,

đây là một ràng buộc của bài toán MS-RCPSP và Real-RCPSP. Khi xây dựng

lịch biểu, các tác vụ sẽ được thiết lập tài nguyên thực hiện, số lượng tài nguyên

thực hiện các tác vụ là hạn chế. Nói cách khác, để hoàn thành dự án, một tài

nguyên sẽ phải thực hiện nhiều tác vụ theo thứ tự ưu tiên nhất định. Có 02

trường hợp có thể xảy ra:

- Các tác vụ ràng buộc thứ tự ưu tiên được thực hiện bởi cùng 01 tài nguyên,

ví dụ như trong hình 4.14.a. Khi đó tài nguyên sẽ được sử dụng liên tục

không có thời gian trống.

- Các tác vụ ràng buộc thứ tự ưu tiên được thực hiện bởi các tài nguyên khác

nhau, ví dụ hình 4.14.b Trong trường hợp này, có thể xảy ra tình trạng tài

nguyên rỗi do phải chờ tác vụ trước hoàn thành trên tài nguyên khác.

Ví dụ 4.5:

Xét 02 dự án, mỗi dự án có 10 tác vụ, với đồ thị ưu tiên của các tác vụ được

1

1

2

3

4

2

3

4

5

5

9

6

6

7

8

7

8

9

10

10

thể hiện lần lượng trong hình 4.12 và hình 4.13.

Hình 4.12. Đồ thị ưu tiên của dự án 1 Hình 4.13. Đồ thị ưu tiên của dự án 2

Thời gian thực hiện của các tác vụ được thể hiện trong bảng 3.11 dưới đây.

Bảng 4.11: Thời gian thực hiện các tác vụ

Tác vụ 1 2 3 4 5 6 7 8 9 10

Thời gian 2 3 5 2 4 3 6 2 4 2

Để thực hiện mỗi dự án, sử dụng tập tài nguyên L = {L1, L2}, với năng lực

114

của các tài nguyên như sau:

L1 = {W1,W2,W4,W5,W7,W8,W9,W10}

L2 = {W1,W3,W6,W7,W8,W9}

Căn cứ trên đồ thị ưu tiên của 02 dự án, ta có thể xây dựng 02 lịch biểu cho

mỗi dự án với biểu đồ Gantt của lịch biểu lần lượt trong hình 4.14.a và hình

Time

(a). Các tài nguyên sử dụng liên tục

Time

(b). Các tài nguyên có khoản thời gian trống

4.14.b.

Hình 4.14. Các tài nguyên sử dụng liên tục (a) và có thời gian trống (b)

Theo thứ tự ưu tiên như trong hình 4.13, tác vụ W6 chỉ được thực hiện sau

khi tác vụ W5 hoàn thành trên tài nguyên L1. Do W6 được thực hiện bởi L2, nên

thời gian bắt đầu thực hiện W6 cần lùi lại đến giờ thứ 12 (sau khi W5 kết thúc

trên L1), điều này tạo ra khoảng thời gian rỗi của L2 từ giờ thứ 8 đến hết giờ thứ

11.

4.4.1.1. Ý tưởng của phương pháp Rotate

Phương pháp Rotate nhằm hạn chế tối đa khoảng thời gian rỗi của tài

nguyên, dẫn đến giảm tổng thời gian thực hiện dự án. Các bước thực hiện cụ

thể như sau:

- Bước 1: Tìm tài nguyên sử dụng nhiều nhất trong Cbest, gọi là Lb. Đây là tài

nguyên kết thúc công việc sau cùng trong các tài nguyên sử dụng để thực

hiện dự án.

115

- Bước 2: Duyệt các tác vụ được thực hiện bởi Lb theo thứ tự ngược với thứ

tự thực hiện từ phải qua trái trên tài nguyên, tức là tác vụ nào thực hiện sau

sẽ xem xét trước.

b: tập tác vụ vụ đang được thực hiện bởi Lb

WR

- Bước 3: Với mỗi tác vụ Wi ∈ WRb (i= sizeof(WRb) downto 1), thực hiện:

• Bước 3.1: Tìm khoảng thời gian rỗi trên tài nguyên

• Bước 3.2: Chuyển thứ tự thực hiện của tác vụ hiện tại về vị trí của tài

nguyên rỗi nếu không vi phạm ràng buộc về thứ tự ưu tiên.

• Bước 3.3: Điều chỉnh thời gian bắt đầu và kết thúc thực hiện của các tác

vụ có vị trí thực hiện sau vị trí mới của tác vụ hiện tại

• Bước 3.4: Tính toán lại makespan của dự án, nếu tạo ra cá thể tốt hơn thì

dừng thuật toán.

Về bản chất, phương pháp Rotate là cách tái sắp xếp thứ tự thực hiện các

tác vụ trên tài nguyên hoàn thành công việc sau cùng mà không vi phạm các

ràng buộc về thứ tự ưu tiên giữa các tác vụ, đồng thời hạn chế tối đa thời gian

tài nguyên rỗi. Việc này giúp giảm tổng thời gian thực hiện dự án đáng kể.

Ví dụ 4.6:

Xem xét lịch biểu được biểu diễn trong hình 4.14.b, lịch biểu này có

makespan là 20. Trong lịch biểu thể hiện:

Lb: là tài nguyên L2

2 = {W3, W6, W8, W9}

WR

Áp dụng phương pháp Rotate, ta có thể chuyển thứ tự thực hiện của W9 từ

vị trí thực hiện cuối cùng, thời gian bắt đầu ở vị trí giờ thứ 16 chuyển lên vị trí

thực hiện mới sau W3 với thời gian thực hiện bắt đầu ở vị trí giờ thứ 7. Phép

dịch chuyển vị trí này vẫn đảm bảo được ràng buộc ưu tiên như trong hình 4.12.

116

Sau phép dịch chuyển, makespan của lịch biểu giảm từ 20 còn 19. Chi tiết quá

Trước Rotate

Sau Rotate

Time

trình này được thể hiện trong hình 4.15.

Hình 4.15. Biểu đồ Gantt khi áp dụng phương pháp Rotate

4.4.1.2. Hàm Rotate

Phương pháp Rotate áp dụng cho các cá thể trong bài toán Real-RCPSP

được trình bày chi tiết trong Algorithm 4.4 sau đây.

Algorithm 4.4. Rotate

Input: currentBest (các thể tốt nhất sau mỗi thế hệ)

Output: lịch biểu sau khi được hiệu chỉnh

1. makespan = f(currentBest)

2. newbest = currentBest;

3. Lb ← lastResource (newbest) //tài nguyên hoàn thành sau cùng

4. Wb ← {các task vụ được thực hiện bởi Lb}

5. For i = size(WRb) downto 1// duyệt lần lượt từng task

6. freepos ← Vị trí tài nguyên rỗi

7. If (freepos >0)

8. Begin

9. newbest = {

10. Wi thực hiện tại vị trí freepos

Tính toán lại vị trí thực hiện của các task khác

11.

12. }

newmakespan = f(newbest) // tính toán lại makespan

13.

If newmakespan < makespan

14.

makespan = newmakespan

15.

Return newbest; // dịch chuyển thành công, trả

16.

về kết quả và dừng hàm

117

End if

17.

18. End

19. End for // i

20. Return newbest;

End Function

Với:

- f: hàm tính makespan của một lịch biểu

- size: hàm tính số phần tử của một tập/mảng

- lastResource: hàm trả về tài nguyên kết thúc thực hiện sau cùng

4.4.2. Thuật toán

Cuckoo Search [60],[61] là thuật toán tiến hóa áp dụng cho việc giải các

bài toán thuộc lớp NP-Khó và mang lại hiệu quả tốt. CS dịch chuyển quần thể

bằng phép nhảy Lévy Flight với 02 kỹ thuật tìm kiếm: tìm kiếm cục bộ (Local

Search) và tìm kiếm toàn cục (Global Search), hai phép tìm kiếm này giúp CS

mở rộng được không gian tìm kiếm, thoát khỏi được cực trị địa phương.

Thuật toán RR-CSM xây dựng trên nền tảng của CS và áp dụng trong việc

giải bài toán Real-RCPCP. RR-CSM thực hiện qua các bước như sau:

- Bước 1: Khởi tạo quần thể với n cá thể: Pall

- Bước 2: Tính toán các giá trị trong quần thể: cá thể tốt nhất bestnest, giá

trị tốt nhất của mỗi cá thể trong quần thể qua các thế hệ (fitness), …

- Bước 3: Thực hiện các tiến hóa qua các thế hệ

- Bước 4: Với mỗi thế hệ, thực hiện

- Bước 4.1: Tạo ra 01 cá thể mới bằng kỹ thuật GS, cá thể mới là: Pnew

- Bước 4.2: Chọn Pi ngẫu nhiên từ quần thể

𝑃𝑖 = { 𝑃𝑛𝑒𝑤 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) < 𝑓(𝑃𝑖) 𝑃𝑖 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) ≥ 𝑓(𝑃𝑖)

- Bước 4.3: Tính toán các giá trị trong quần thể: bestnest, fitness, …

118

- Bước 4.4: Thay thế pa% cá thể kém nhất bằng các cá thể mới được tạo

ra bởi kỹ thuật Local Search.

- Bước 4.5: Áp dụng hàm Rotate đối với cá thể tốt nhất (bestnest)

- Bước 5: Lặp lại từ bước 2 cho đến khi kết thúc

Cải tiến chính của thuật RR-CSM toán nằm trong bước 4.5 khi áp dụng các

phương pháp Reallocate và Rotate với cá thể tốt nhất.

Thuật toán RR-CSM được trình bày trong Algorithm 4.5 dưới đây.

Algorithm 4.5. Thuật toán RR-CSM

Input : dataset

tmax : số thế hệ tiến hóa

Output : cá thể tốt nhất và makespan

1. Begin

2. Load and Valid dataset 3. t  0 4. Pall  Initial population 5. f  Calculate the fitness, makespan, bestnest 6. while(t

Pnew  Tạo cá thể mới bằng Lévy Flight (GS) Pi  Lấy ngẫu nhiên một cá thể từ Pall

9.

𝑃𝑖 = {

𝑃𝑛𝑒𝑤 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) < 𝑓(𝑃𝑖) 𝑃𝑖 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) ≥ 𝑓(𝑃𝑖) Ppa  pa% tổ kém nhất từ Pall For j = 1 to size(Ppa)

10. 11. 12.

Pnew  Tạo cá thể mới bằng Lévy Flight (LS)

𝑝𝑎 = {

13.

𝑃𝑗

𝑝𝑎) 𝑝𝑎)

𝑃𝑛𝑒𝑤 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) < 𝑓(𝑃𝑗 𝑝𝑎 𝑖𝑓 𝑓(𝑃𝑛𝑒𝑤) ≥ 𝑓(𝑃𝑗 𝑃𝑗

End For Pall  Thay thế Ppa vào Pall

bestnest = Reallocate(bestnest) bestnest = Rotate(bestnest) makespan = f(bestnest) t = t+1 End while

14. 15. 16. f  Calculate the fitness, makespan, bestnest 17. 18. 19. 20. 21.

119

22. return {bestnest, makespan} 23. End Với:

- f: hàm tính makespan của một lịch biểu

Các dòng 18 là các lời gọi đến hàm hàm Rotate để cải tiến kết quả của cá

thể tốt nhất bestnest, sau đó sẽ tính toán lại makespan của cả quần thể bằng lời

gọi ở dòng 19.

4.4.3. Kết quả thực nghiệm

Để kiểm chứng thuật toán RR-CSM, luận án tiến hành thực nghiệm trên 02

bộ dữ liệu: iMOPSE hiệu chỉnh và bộ dữ liệu của TNG[54]. Các thông số cấu

hình thực nghiệm tương tự như trong mục 2.4.3.2. Kết quả thực nghiệm được

trình bày trong bảng 4.12 và bảng 4.13 dưới đây.

R-CSM

RR-CSM

Dataset

101 5.2

91

100_5_22_15 100_5_46_15 100_5_48_9 100_5_64_15 100_5_64_9 100_10_26_15 100_10_47_9 100_10_48_15 100_10_64_9 100_10_65_15 100_20_22_15 100_20_46_15 100_20_47_9 100_20_65_15 100_20_65_9 200_10_128_15 200_10_50_15

Best 465 523 476 478 453 221 247 238 239 240 109 145 121 193 124 440 468

GA-M Avg 469 529 481 487 457 224 253 246 249 244 115 150 125 200 131 446 471

Std Best Avg Std Best Avg 454 455 1.0 452 454 3.1 506 509 2.1 505 506 5.4 471 473 1.5 467 471 4.5 461 464 2.3 456 461 8.2 430 432 1.4 429 430 3.2 208 210 1.3 204 208 2.1 238 240 1.6 236 238 5.9 237 238 0.1 234 237 7.6 222 225 2.1 216 222 9.4 230 232 1.8 227 230 3.2 95 95 5.2 144 152 7.8 143 147 4.1 119 126 6.1 117 119 3.3 185 189 3.6 183 185 6.8 101 110 8.9 100 101 6.5 422 428 5.1 421 422 5.7 466 467 0.9 463 466 2.9

Std 1.1 0.2 3.7 4.7 0.7 3.8 1.2 2.7 5.8 2.7 3.8 3.2 1.9 1.8 0.3 0.6 2.3

Bảng 4.12: Kết quả thực nghiệm RR-CSM với bộ dữ liệu iMOPSE

120

R-CSM

RR-CSM

Dataset

GA-M Avg 484 498 469 229 255 254 321 241 134 164 146 133 139

Std Best Avg Std Best Avg 459 461 1.2 454 459 2.6 484 485 0.4 479 484 10.9 456 457 0.3 453 456 4.0 175 185 9.2 170 175 6.1 237 240 2.7 234 237 5.1 228 232 3.1 227 228 5.7 288 293 4.9 283 288 3.3 232 234 1.5 228 232 6.2 110 119 8.1 106 110 7.4 123 129 5.7 122 123 3.8 121 132 10.3 117 121 12.1 112 125 12.6 107 112 3.0 117 127 9.1 114 117 5.8

Std 4.3 4.8 2.7 4.1 2.2 0.8 4.8 3.9 3.6 0.3 3.4 4.9 2.0

200_10_50_9 200_10_84_9 200_10_85_15 200_20_145_15 200_20_54_15 200_20_55_9 200_20_97_15 200_20_97_9 200_40_133_15 200_40_45_15 200_40_45_9 200_40_90_9 200_40_91_15

Best 481 487 465 222 249 248 317 234 126 160 133 130 133

GA-M

R-CSM

RR-CSM

Dataset

Best

Avg

Best Avg

Std

Best

Avg

Std

Std

TNG1

201

203

3.5

131

136

4.5

129

133

3.3

TNG2

198

205

8.3

133

138

5.2

132

137

4.5

TNG3

212

218

7.1

132

135

1.6

130

132

1.7

TNG4

176

187

11.3

127

134

7.6

126

133

6.9

TNG5

751

757

6.2

572

577

4.1

563

568

4.3

TNG6

791

796

5.5

626

636

8.5

607

613

6.2

TNG7

810

820

10.7

569

573

5.7

556

560

3.8

TNG8

720

728

9.4

560

564

3.6

543

545

1.6

Bảng 4.13: Kết quả thực nghiệm RR-CSM với bộ dữ liệu TNG

4.4.4. Đánh giá chất lượng lời giải của thuật toán

Các thực nghiệm được triển khai trên RR-CSM sử dụng bộ dữ liệu iMOPSE

và bộ dữ liệu TNG. Kết quả thực nghiệm được trình bày trong bảng 4.12 và

bảng 4.13 chỉ ra thuật toán RR-CSM có chất lượng lời giải luôn tốt hơn thuật

toán GA-M.

121

Với bộ dữ liệu iMOPSE, giá trị tốt nhất của RR-CSM tốt hơn R-CSM từ

0.2% đến 4,67 %, so sánh chi tiết được thể hiện trong hình 4.16. Tổng độ lệch

chuẩn của R-CSM là 122,1, của RR-CSM là 82,3, điều này cho thấy độ ổn định

của thuật toán RR-CSM tốt hơn, hình 4.17 cho so sánh độ lệch chuẩn giữa RR-

CSM, R-CSM và GA-M.

Với bộ dữ liệu TNG, giá trị tốt nhất của RR-CSM tốt hơn R-CSM từ 0,75%

đến 3,12%, so sánh chi tiết được thể hiện trong hình 4.18. Tổng độ lệch chuẩn

của R-CSM là 40,8, của RR-CSM là 32,2, điều này cho thấy độ ổn định của

thuật toán RR-CSM tốt hơn, hình 4.19 cho so sánh độ lệch chuẩn giữa RR-

CSM và R-CSM.

122

4.4.5. Hình ảnh so sánh RR-CSM với thuật toán GA-M

Hình 4.16. So sánh giá trị BEST giữa R-CSM, RR-CSM, GA-M

Hình 4.17. So sánh giá trị STD giữa R-CSM, RR-CSM, GA-M trên iMOPSE

123

Hình 4.18. So sánh giá trị BEST giữa R-CSM, RR-CSM và TNG

Hình 4.19. So sánh giá trị STD giữa RR-CSM với R-CSM

124

Kết luận chương 4

Trong chương này, luận án đã trình bày về cách mã hóa cá thể của bài toán

Real-RCPSP. Để phục vụ cho việc thực nghiệm theo mô hình sản xuất thực tế,

luận án sử dụng bộ dữ liệu thực tế của công ty may TNG sau khi số hóa. Để

giải bài toán Real-RCPSP, 03 giải thuật metaheuristic đã được đề xuất.

Thuật toán 1: A-DEM, là thuật toán được phát triển từ thuật toán DE. Cải

tiến mới, quan trọng của A-DEM là việc thay thế giá trị lai ghép thích nghi theo

từng thế hệ. Giá trị này được tính toán dựa trên các cá thể lân cận, số cá thể lân

cận cũng thay đổi theo quá trình tính toán dựa trên các cá thể tiến hóa thành

công.

Thuật toán 2: R-CSM, là thuật toán được phát triển từ thuật toán Cuckoo

Search. R-CSM áp dụng bổ sung thêm hai phương pháp nhằm nâng cao chất

lượng lời giải: phương pháp tái thiết lập (Reallocate). Thuật toán này đã được

công bố trong công trình [CT9].

Thuật toán 3: RR-CSM, là thuật toán được phát triển từ thuật toán R-CSM

bằng cách áp dụng bổ sung thêm hai phương pháp Rotate, kết quả cho thấy RR-

CSM hiệu quả tốt hơn so với R-CSM trước đó.

Để kiểm chứng tính hiệu quả của R-CSM, RR-CSM và A-DEM, luận án đã

triển khai thực nghiệm với bộ dữ liệu iMOPSE và TNG, có đánh giá so sánh

cụ thể sau mỗi phần thực nghiệm.

Kết quả nghiên cứu của chương này được công bố tại:

- Hội thảo quốc tế ICCC lần thứ 2 Nagoya, Japan, 2020. DOI:

10.1109/ICCCI49374.2020.9145982 [CT7]

- Tạp chí Thông tin và Truyền thông, tập 2, pp. 93-101, 12-2019, DOI:

10.32913/mic-ict-research-vn.v2019.n2.865 [CT6];

- Tạp chí Journal of Advanced Transportation (IF: 1.67,

Q2), Volume 2020, Article ID 8897710, 11 pages, 2020 [CT9].

125

KẾT LUẬN

Bài toán lập lịch với tài nguyên giới hạn và đa kỹ năng MS-RCPSP có nhiều

ứng dụng trong thực tế. Luận án đã phát biểu tường minh bài toán MS-RCPSP

(mục 1.1.1), chỉ ra các ứng dụng của bài toán này (mục 1.1.2) và các phương

pháp giải (mục 1.2). Để xác định nội dung nghiên cứu, các công trình nghiên

cứu liên quan đến bài toán đã được tổng hợp, phân tích, từ đó chỉ ra các hướng

mở sẽ làm trong luận án (mục 1.1.3).

Trong chương 2 của luận án đề đề xuất 2 thuật toán mới để giải bài toán

MS-RCPSP phát triển từ các thuật toán mới, hiệu quả hơn. Các thuật toán gồm:

M-PSO dựa trên cơ sở là thuật toán PSO và DEM phát triển từ thuật toán DE.

Chương 3 luận án phát biểu tường minh bài toán mới Real-RCPSP (mục

3.1.1.) và xếp loại bằng ký pháp Graham (3.1.3). Đây là bài toán mở rộng từ

bài toán MS-RCPSP và có khả năng ứng dụng cao trong thực tế sản xuất. Đề

giải bài toán này, luận án đề xuất 3 thuật toán mới là A-DEM mở rộng từ DE,

R-CSM cải tiến từ thuật toán CS và RR-CSM cải tiến thêm từ thuật toán R-

CSM. Các thực nghiệm được chạy trên bộ dữ liệu iMOPSE và bộ dữ liệu thực

tế TNG.

Các kết quả nghiên cứu của luận án được công bố trong 9 công trình, trong

đó 06 bài báo trên tạp chí, trong đó có 02 bài báo SCIE, 01 bài scopus, 03 bài

tạp chí trong nước; 02 hội thảo kỷ yếu hội thảo quốc tế, kỷ yếu được đăng trên

IEEE và 01 hội thảo quốc gia.

Đóng góp mới của luận án bao gồm:

- Đề xuất 02 thuật toán mới để giải bài toán MS-RCPSP là: M-PSO và DEM

[CT7], [CT8].

- Đề xuất 03 thuật toán để giải bài toán Real-RCPSP là: A-DEM, R-CSM

[CT9] và RR-CSM.

126

Các kết quả thực nghiệm đã chỉ ra chất lượng của các thuật toán đề xuất M-

PSO, DEM, A-DEM, RR-CSM tốt hơn các thuật toán đối sánh.

Hướng nghiên cứu tiếp theo của luận án

Trong luận án, việc nghiên cứu bài toán MS-RCPSP và phát biểu bài toán

mới Real-RCPSP đã được thực hiện. Bốn thuật toán mới đã được đề xuất để

giải hai bài toán trên. Tuy nhiên, nhằm nâng cao khả năng ứng dụng trong một

số lĩnh vực thực tế của bài toán, đặc biệt là bài toán Real-RCPSP, một số hướng

cần được nghiên cứu tiếp theo là:

- Nghiên cứu mở rộng, bổ sung thêm các ràng buộc mới cho một số lĩnh vực

cụ thể để tăng khả năng áp dụng của bài toán. Đề xuất các phương pháp

đánh giá đa mục tiêu cho bài toán như thời gian, chi phí.

- Nghiên cứu một số phương pháp giải gần đúng khác dựa trên các xác suất

Gauss, Cauchy,... nhằm nâng cao chất lượng lời giải.

127

DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ

[CT1]. Đặng Quốc Hữu, Phan Thanh Toàn, Nguyễn Thế Lộc, Nguyễn Doãn

Cường, “Áp dụng chiến lược tiến hóa vi phân để nâng cao hiệu suất

của điện toán đám mây”, HNUE Journal of Science, Vol. 62, No. 3,

pp. 88-96, 2017

[CT2]. Toan Phan Thanh, Loc Nguyen The, Said Elnaffar, Huu Dang Quoc,

Cuong Nguyen Doan, “An Effective PSO-inspired Algorithm for

Workflow Scheduling”, International Journal of Electrical and

Computer Engineering (IJECE), (Q3), Vol. 8, No. 5, pp. 3851-3858,

October 2018. DOI: 10.11591/ijece.v8i5.

[CT3]. Đặng Quốc Hữu, Phan Thanh Toàn, Nguyễn Thế Lộc, Nguyễn Doãn

Cường, “Phương pháp nhánh cận cho bài toán lập lịch luồng công

việc”, Tạp chí Nghiên cứu khoa học và công nghệ quân sự, Tin học,

điều khiển và ứng dụng, Viện KHCNQS/11-2018, số đặc san, pp. 63-

73, 2018.

[CT4]. Đặng Quốc Hữu, Nguyễn Thế Lộc, Nguyễn Doãn Cường, Phan Thanh

Toàn, “Tổng quan về bài toán lập lịch với tài nguyên giới hạn ”, Hội

thảo Quốc gia: Ứng dụng công nghệ cao vào thực tiễn, 2019.

[CT5]. Huu Dang Quoc, Loc Nguyen The, Cuong Nguyen Doan, Toan Phan

Thanh, “Solving Resource Constrained Project Scheduling Problem

by a Discrete Version of Cuckoo Search Algorithm”, 6th NAFOSTED

Conference on Information and Computer Science (NICS), Hanoi,

Vietnam, pp. 73-76, 2019, DOI: 10.1109/NICS48868.2019.9023867.

[CT6]. Phan Thanh Toàn, Đặng Quốc Hữu, Nguyễn Thế Lộc, “Toán tử lân

cận mới cho thuật toán Tabu search và PSO giải bài toán lập lịch luồng

công việc trong môi trường điện toán đám mây”, Tạp chí Thông tin và

Truyền thông, Tập 2, pp. 93-101, 12-2019, DOI: 10.32913/mic-ict-

128

research-vn.v2019.n2.865.

[CT7]. Huu Dang Quoc, Loc Nguyen The, Cuong Nguyen Doan, Toan Phan

Thanh, “New Effective Differential Evolution Algorithm for the

Multi-Skill Resource Constrained Project Scheduling Problem”, 2nd

International Conference on Computer Communication and the

Internet, Nagoya, Japan, 2020. DOI:

10.1109/ICCCI49374.2020.9145982

[CT8]. Huu Dang Quoc, Loc Nguyen The, Cuong Nguyen Doan, Toan Phan

Thanh, Naixue Xiong, “Intelligent Differential Evolution Scheme for

Network Resources in IoT”, Scientific Programming (IF:1.28, Q3),

Volume 2020, Article ID 8860384 | 12, 2020. DOI:

10.1155/2020/8860384

[CT9]. Huu Dang Quoc, Loc Nguyen The, Cuong Nguyen Doan, Naixue

Xiong, "Effective Evolutionary Algorithm for Solving the Real-

Resource-Constrained Scheduling Problem", Journal of Advanced

Transportation (IF: 1.67, Q2), Volume 2020, Article

ID 8897710, 11 pages, 2020. DOI: 10.1155/2020/8897710

129

TÀI LIỆU THAM KHẢO

[1]. A. Barrios, F. Ballestín, V. Valls, "A double genetic algorithm for the

MRCPSP/max.", Computers & Operations Research, 38.1, pp. 33-43,

2011.

[2]. A. Christian, S. Demassey, E. Néron, “Resource Constrained Project

Scheduling: Models, Algorithms, Extensions and Applications”, ISBN

978-1-84821-034-9, 2008.

[3]. A. E. M. Zavala, “EVOLVE - A Bridge between Probability, Set Oriented

Numerics, and Evolutionary Computation IIA Comparison, A

Comparison Study of PSO Neighborhoods”, Springer Verlag Berlin

Heideberg, pages 251-295, ISBN 978-3-642-32725-4, 2013.

[4]. A.H. Hosseinian, V. Baradaran, "An Evolutionary Algorithm Based on a

Hybrid Multi-Attribute Decision Making Method for the Multi-Mode

Multi-Skilled Resource-Constrained Project Scheduling

Problem.", Journal of Optimization in Industrial Engineering, 12.2, pp.

155-178,2019.

[5]. A.H. Hosseinian, V. Baradaran, "Detecting communities of workforces

for the multi-skill resource-constrained project scheduling problem: A

dandelion solution approach.", Journal of Industrial and Systems

Engineering, pp. 72-99, 12.2019.

[6]. A.H. Hosseinian, V. Baradaran, "P-GWO and MOFA: two new

algorithms for the MSRCPSP with the deterioration effect and financial

constraints (case study of a gas treating company).", Applied Intelligence,

50, pp. 2151-2176, 2020.

[7]. A.H. Hosseinian, V. Baradaran, M. Bashiri, "Modeling of the time-

dependent multi-skilled RCPSP considering learning effect.", Journal of

Modelling in Management, 10, 2019.

130

[8]. Alswaitti Mohammed, M. Albughdadi, N.A.M Isa, "Variance-based

differential evolution algorithm with an optional crossover for data

clustering.", Applied Soft Computing, 80, pp. 1-17, 2019.

[9]. B. Veltman, B. J. Lageweg, and J. K. Lenstra, “Multiprocessor scheduling

with communication delays”, Parallel Computing, Vol. 16, No. 2-3, pp.

173-182, 1990.

[10]. D. Gnad, J. Hoffmann, "Star-topology decoupled state space

search.", Artificial Intelligence, 257, pp. 24-60,2018.

[11]. F. Black, and M. Scholes, “The pricing of options and corporate

liabilities”, Journal of Political Economy, 81, pp. 637-654, 1973

[12]. G. Che, L. Liu, Z. Yu, "An improved ant colony optimization algorithm

based on particle swarm optimization algorithm for path planning of

autonomous underwater vehicle.", Journal of Ambient Intelligence and

Humanized Computing, 11.8,pp. 3349-3354,2020

[13]. G. Parlier, “Transforming U.S.Army logistics: A strategic “supply chain”

approach for inventory management”, The Land Warfare Papers, The

Institute of Land Warfare, 2005.

[14]. H. Cheng, N. Xiong, A.V. Vasilakos, L.T. Yang, G. Chen, X. Zhuang,

“Nodes organization for channel assignment with topology preservation

in multi-radio wireless mesh networks”, Ad Hoc Networks, vol. 10(5), pp.

760-773, 2012.

[15]. H. Dai, W. Cheng, “A Memetic Algorithm for Multiskill Resource-

Constrained Project Scheduling Problem under Linear

Deterioration”, Mathematical Problems in Engineering, 6. 2019.

[16]. H. H. Hoos, T. Stutzle, Stochastic Local Search: Foundations and

Applications, Morgan Kaufmann, 2005

[17]. H. Li, K. Womer, “Stochastic Resource-Constrained Project Scheduling

and Its Military Applications”, IEEE Trans Computer, 65(12), pp. 3702–

131

3712, 2016.

[18]. H. Li, K. Womer, "A Decomposition Approach for Shipboard Manpower

Scheduling", Military Operations Research, 14, no. 3, pp. 1-24,2009.

[19]. H. Liu, A. Abraham, C. Grosan, “A Novel Variable Neighborhood

Particle Swarm Optimization for Multi-objective Flexible Job-Shop

Scheduling Problems”, Proc. of 2nd International Conference on Digital

Information Management (ICDIM '07), Volume 1, pages 138 - 145, 2007.

[20]. H. Maghsoudlou, B. Afshar-Nadjafi, S.T.A Niaki, "Multi-skilled project

scheduling with level-dependent rework risk; three multi-objective

mechanisms based on cuckoo search.", Applied Soft Computing, 54,pp.

46-61, 2017.

[21]. H. Najafzad, H. Davari-Ardakani, R. Nemati-Lafmejani, "Multi-skill

project scheduling problem under time-of-use electricity tariffs and shift

differential payments.", Energy Journal, vol. 168, pp. 619-636,

Elsevier,2019.

[22]. J. Błazewicz, J.K.Lenstra, A.H.G.Rinnooy Kan, “Scheduling subject to

resource constraints: classification and complexity”, Discrete Appl.Math,

5, pp. 11-24, 1983.

[23]. J. Kennedy, R. Eberhart, "Particle Swarm Optimization", IEEE

International Conference on Neural Networks, 1995.

[24]. J. Lin, L. Zhu, K. Gao, "A genetic programming hyper-heuristic approach

for the multi-skill resource constrained project scheduling

problem.", Expert Systems with Applications, 140, 112915, 2020.

[25]. K. Bibiks, Y.F. Hu, J.P. Li, P. Pillai, A. Smit, "Improved discrete cuckoo

search for the resource-constrained project scheduling problem.", Applied

Soft Computing 69, pp. 493-503, 2018

[26]. K. Price, R. Storn, J. Lampinen, "Differential Evolution - A Practical

Approach to Global Optimization,", Springer, Berlin, Germany, 2005.

132

[27]. Karl Pearson, "The problem of the random walk.", Nature 72.1867, pp.

342-342, 1905.

[28]. L. Sahawneh, R.W. Beard, S. Avadhanam, H. Bai, "Chain-based Collision

Avoidance for UAS Sense-and-Avoid Systems", AIAA Guidance,

Navigation, and Control Conference, Boston, 8.2013.

[29]. L. Zhu, J. Lin, Z.J Wang, "A discrete oppositional multi-verse

optimization algorithm for multi-skill resource constrained project

scheduling problem.", Applied Soft Computing, 85, 105805, 2019.

[30]. L.M. Verburgt, "The First Random Walk: A Note on John Venn’s

Graph.", The Mathematical Intelligencer, 1-5, 2020.

[31]. M. Skowroński, P.B. Myszkowski, P. Kwiatek, M. Adamski, "Tabu

Search approach for Multi–Skill Resource–Constrained Project

Scheduling Problem", Annals of Computer Science and Information

Systems, Volume 1, Proceedings of the 2013 Federated Conference on

Computer Science and Information Systems, pp. 153-158, 2013.

[32]. M. Verma, N. Bhardwaj, A.K.Yadav, “Real Time Efficient Scheduling

Algorithm for Load Balancing in Fog Computing Environment”,

Information Technology and Computer Science, 4, pp. 1-10, 2016

[33]. M.A. Adnan, M.A. Razzaque, “A comparative study of particle swarm

optimization and Cuckoo search techniques through problem-specific

distance function”, International Conference on Information and

Communication Technology (ICoICT), Indonesia, 2013

[34]. M.A. Mujtaba, H.H. Masjuki, M.A. Kalam, H.C. Ong, M. Gul, M. Farooq,

M.E. Soudagar, W. Ahmed, M.H. Harith, M.N. Yusoff, "Ultrasound-

assisted process optimization and tribological characteristics of biodiesel

from palm-sesame oil via response surface methodology and extreme

learning machine-Cuckoo search.", Renewable Energy, 158, pp. 202-214,

2020.

133

[35]. M.E. Haque, M.F.M. Zain, M.A. Hannan, M. Jamil, H. Johari, "Loss

monitoring of star topology sensor network based on scheduling algorithm

for assessing structural health information.", American Journal of Applied

Sciences, 10.12, pp. 1484-1491, 2013.

[36]. M.I. Solihin, M.F. Zanil, “Performance comparison of Cuckoo search and

differential evolution algorithm for constrained optimization”,

International Engineering Research and Innovation Symposium (IRIS),

vol. 160(1), pp. 1-7, 2016.

[37]. M.L. Pinedo, “Scheduling Theory, Algorithms, and Systems”, Springer,

2012.

[38]. M.T. Younis, S. Yang. "Hybrid meta-heuristic algorithms for independent

job scheduling in grid computing", Applied soft computing, 72, pp. 498-

517, 2018.

[39]. O. Sinnen, “Task scheduling for parallel systems”, Published by

JohnWiley & Sons, Inc., Hoboken, New Jersey, Vol 60, 2007.

[40]. O.P. Mejia, M.C. Anselmet, C. Artigues, P. Lopez, "A new RCPSP variant

to schedule research activities in a nuclear laboratory.", 47th International

Conference on Computers and Industrial Engineering (CIE47), 2017.

[41]. P. Stodola, "Hybrid ant colony optimization algorithm applied to the

multi-depot vehicle routing problem.", Natural Computing, 19, no. 2, pp.

463-475, 2020.

[42]. P.B. Myszkowski, M. Laszczyk, I. Nikulin, M. Skowro, “iMOPSE: a

library for bicriteria optimization in Multi-Skill Resource-Constrained

Project Scheduling Problem”, Soft Computing Journal, 23: 32397, 2019.

[43]. P.B. Myszkowski, M. Skowroński, "Specialized genetic operators for

Multi–Skill Resource–Constrained Project Scheduling Problem", 19th

International Conference on Soft Computing – Mendel 2013, pp. 57-62,

2013.

134

[44]. P.B. Myszkowski, M. Skowroński, L. Olech, K. Oślizło, "Hybrid Ant

Colony Optimization in solving Multi–Skill Resource–Constrained

Project Scheduling Problem", Soft Computing Journal, Volume 19, Issue

12, pp.3599–3619, 2015.

[45]. P.B. Myszkowski, M.E. Skowronski, K.Sikora, “A new benchmark

dataset for Multi-Skill Resource-Constrained Project Scheduling

Problem”, Computer Science and Information Systems, ACSIS, Vol. 5,

pp. 129–138, 2015. DOI: 10.15439/2015F273.

[46]. R. Klein: “Scheduling of Resource-Constrained Projects”, Springer

Science & Business Media, Vol. 10, 2012.

[47]. R. Kolisch, A. Sprecher, “PSPLIB-a project scheduling problem library:

OR software-ORSEP operations research software exchange

program.”, European journal of operational research, 96(1), pp.205-216,

1997.

[48]. R. Nemati-Lafmejani, H. Davari-Ardakani, H. Najafzad. "Multi-mode

resource constrained project scheduling and contractor selection:

Mathematical formulation and metaheuristic algorithms", Applied Soft

Computing, 81,105533,2019.

[49]. R. Wan, N. Xiong, N.T. Loc, “An energy-efficient sleep scheduling

mechanism with similarity measure for wireless sensor networks”,

Human-centric Computing and Information Sciences, vol. 8, 18 2018

[50]. R.L. Graham, E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan.

“Optimization and approximation in deterministic sequencing and

scheduling : a survey”, Annals of Discrete Mathematics, Vol. 5, pp. 287-

326, 1979.

[51]. S. Javanmard, B. Afshar-Nadjafi, S.T. Niaki, "Preemptive multi-skilled

resource investment project scheduling problem: Mathematical modeling

and solution approaches.", Computers & Chemical Engineering, 96, pp.

135

55-68, 2017.

[52]. S. Kavitha, P. Venkumar, "A vibrant crossbreed social spider optimization

with genetic algorithm tactic for flexible job shop scheduling

problem.", Measurement and Control, Vol 53, Issue 1-2, 2020.

[53]. S. Li, S. Han, L. Zhao, C. Gong, X. Liu, "New dandelion algorithm

optimizes extreme learning machine for biomedical classification

problems", Computational intelligence and neuroscience, vol. 2017, Sep.

2017.

[54]. TNG Investment and Trading Joint Stock Company, 434/1 Bac Kan street

- Thai Nguyen city, Viet Nam; Website http://www.tng.vn

[55]. W. Deng, J. Xu, H. Zhao. "An improved ant colony optimization

algorithm based on hybrid strategies for scheduling problem.", IEEE

Access, 7, pp. 20281-20292, 2019.

[56]. W. Guo, J.H. Park, L.T. Yang, A.V. Vasilakos, N. Xiong, G. Chen,

"Design and Analysis of a MST-Based Topology Control Scheme with

PSO for Wireless Sensor Networks,", 2011 IEEE Asia-Pacific Services

Computing Conference, Jeju Island, pp. 360-367, 2011. doi:

10.1109/APSCC.2011.20.

[57]. W.Guo, N. Xiong, A. Vasilakos, “Distributed k-connected fault-tolerant

topology control algorithms with PSO in future autonomic sensor

systems”, International Journal of Sensor Networks, 12(1), pp. 53-62,

2012.

[58]. X. Chen, “American option pricing formula for uncertain financial

market”, International Journal of Operations Research, Vol. 8, No. 2, pp.

32–37, 2011

[59]. X. Zhuang, H. Cheng, N. Xiong, L.T. Yang, "Channel Assignment in

Multi-Radio Wireless Networks Based on PSO Algorithm,", 2010 5th

International Conference on Future Information Technology, Busan, pp.

136

1-6, 2010. doi: 10.1109/FUTURETECH.2010.5482773.

[60]. X.S. Yang, “Nature-Inspired Metaheuristic Algorithms”, Luniver Press,

ISBN-13: 978-1-905986-28-6, 2010.

[61]. X.S. Yang, S. Deb, “Cuckoo search via Lévy flights”, Proc. of World

Congress on Nature & Biologically Inspired Computing (NaBIC 2009),

India. IEEE Publications, USA, pp. 210-214, 2009.

[62]. Y. Gao, “Uncertain models for single facility location problems on

networks”, Applied Mathematical Modelling, Vol. 36, No. 6, pp. 2592–

2599, 2012.

[63]. Website: https://en.wikipedia.org/wiki/Brownian_motion