giải bài toán xếp lịch trên nhiều nhóm đa mục tiêu bằng tiếp cận giải thuật di truyền

85 0 0
Tài liệu đã được kiểm tra trùng lặp
giải bài toán xếp lịch trên nhiều nhóm đa mục tiêu bằng tiếp cận giải thuật di truyền

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

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

Thông tin tài liệu

1.2 Mô tả về bài toán xếp lịch Hình 1.2: Các hướng nghiên cứu bài toán xếp lịch PSP: personal scheduling problem TWSP: Team work scheduling problem Bài toán xếp lịch hiện có rất nhiều hư

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

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

-

NGUYỄN HẢI DƯƠNG

Giải bài toán xếp lịch trên nhiều nhóm đa mục tiêu bằng tiếp cận giải thuật di truyền

Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 8480101

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 1 năm 2024

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG-HCM Cán bộ hướng dẫn khoa học:

TS Nguyễn Tiến Thịnh PGS.TS Quản Thành Thơ Cán bộ chấm nhận xét 1: TS Huỳnh Lương Huy Thông

Cán bộ chấm nhận xét 2: TS Ngô Đức Thành

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 23 tháng 01 năm 2024

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1 Chủ tịch: TS Nguyễn Đức Dũng

2 Thư ký: TS Trần Tuấn Anh

3 Phản biện 1: TS Huỳnh Lương Huy Thông 4 Phản biện 2: TS Ngô Đức Thành

5 Ủy viên: TS Nguyễn Tiến Thịnh

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: NGUYỄN HẢI DƯƠNG MSHV: 2170066 Ngày, tháng, năm sinh: 12/11/1997 Nơi sinh: Bà Rịa – Vũng Tàu Chuyên ngành: Khoa học máy tính Mã số : 8480101

I TÊN ĐỀ TÀI: GIẢI BÀI TOÁN XẾP LỊCH TRÊN NHIỀU NHÓM ĐA MỤC TIÊU BẰNG TIẾP CẬN GIẢI THUẬT DI TRUYỀN

(SOLVING THE MULTI-TEAM MULTI-OBJECTIVE JOB SHOP

SCHEDULING PROBLEM USING GENETIC ALGORITHM APPROACH)

1 Nghiên cứu và phân tích bài toán xếp lịch trên nhiều nhóm đa mục tiêu

2 Áp dụng các giải thuật thuộc hướng tiếp cận giải thuật di truyền để giải quyết bài toán xếp lịch trên nhiều nhóm đa mục tiêu

3 Đánh giá và so sánh hiệu quả của các phương pháp được đề xuất

Trang 4

Lời cảm ơn

Em đã nhận được sự giúp đỡ nhiệt tình từ nhiều bên để có thể hoàn thành luận văn tốt nghiệp này Trước hết và quan trọng nhất, em xin gửi lời cảm ơn sâu sắc đến Thầy

PGS.TS Quản Thành Thơ, giảng viên hướng dẫn trực tiếp của em Thầy đã đảm

nhận vai trò then chốt trong việc hướng dẫn, cấp tài liệu và giám sát quá trình làm đề tài, cũng như hỗ trợ em khi gặp vấn đề Ngoài ra, Thầy cũng đã khơi dậy cho em niềm say mê với học máy, xử lý ngôn ngữ tự nhiên và nhiều vấn đề khác trong lĩnh vực Khoa học Máy tính

Em cũng xin bày tỏ lòng biết ơn đến anh Phạm Công Thiện, người đã hướng dẫn

và hỗ trợ em từ giai đoạn Đề cương luận văn, cũng như đưa ra những nhận xét quý giá để em cải thiện Luận văn tốt nghiệp này

Em xin cảm ơn sự dạy bảo và giúp đỡ của quý thầy cô trong khoa Khoa học và Kỹ thuật Máy tính, cũng như trường Đại học Bách khoa TP Hồ Chí Minh Những kiến thức mà em đã học được từ quý thầy cô là rất quan trọng và có ích, đã góp phần lớn để em có thể hoàn thành luận văn tốt nghiệp này

Cuối cùng, em xin cảm ơn gia đình, người thân và bạn bè, những người đã quan tâm, động viên và giúp đỡ em về mọi mặt để em có đủ sức mạnh và sức khỏe để hoàn thành tốt luận văn tốt nghiệp này

Với lòng biết ơn chân thành, em xin gửi lời chúc sức khỏe và những lời chúc tốt đẹp nhất đến các quý thầy cô trong Khoa Khoa học và Kỹ thuật Máy tính - Trường Đại Học Bách Khoa Đại Học Quốc Gia Thành phố Hồ Chí Minh

Trang 5

Tóm tắt luận văn

Luận văn này tập trung vào việc giải quyết bài toán xếp lịch trên nhiều nhóm đa mục tiêu bằng cách sử dụng giải thuật di truyền Bài toán xếp lịch đa mục tiêu xuất phát từ thực tế trong nhiều lĩnh vực, như công nghiệp, giáo dục và tổ chức sự kiện, trong đó cần xếp lịch cho nhiều nhóm công việc hoặc sự kiện khác nhau với nhiều mục tiêu cần đạt được Trong luận văn, tác giả nhận thấy rằng giải thuật di truyền có thể áp dụng hiệu quả cho bài toán này Giải thuật di truyền là một phương pháp tối ưu hóa dựa trên nguyên tắc của quá trình tiến hóa trong tự nhiên, bao gồm các khái niệm như cá thể, quần thể, lai ghép và đột biến Người viết luận văn đã đề xuất một giải thuật di truyền đặc biệt để giải quyết bài toán xếp lịch trên nhiều nhóm đa mục tiêu Giải thuật này xây dựng một hàm mục tiêu được tối ưu hóa bằng cách kết hợp các yếu tố quan trọng như sự phù hợp về thời gian, sự phân bố công việc cân đối và sự ưu tiên giữa các nhóm Qua quá trình thực nghiệm và so sánh với các phương pháp khác, tác giả đã chứng minh rằng giải thuật di truyền có khả năng tạo ra các lịch trình tối ưu với hiệu suất cao và đáp ứng được các yêu cầu đa mục tiêu của bài toán Ngoài ra, giải thuật di truyền còn cho phép linh hoạt điều chỉnh các tham số để tối ưu hóa kết quả Kết quả của luận văn đã đóng góp vào việc giải quyết bài toán xếp lịch trên nhiều nhóm đa mục tiêu thông qua sử dụng giải thuật di truyền Công trình này có thể áp dụng trong nhiều lĩnh vực thực tế và mang lại lợi ích cho việc tối ưu hóa việc xếp lịch cho các nhóm công việc hoặc sự kiện khác nhau

Trang 6

ABSTRACT OF DISSERTATION

This thesis focuses on addressing the multi-group scheduling problem with multiple objectives using a genetic algorithm approach The multi-group scheduling problem arises in various domains, such as industry, education, and event organization, where the task involves scheduling multiple groups of tasks or events with multiple objectives to be achieved In this thesis, the author recognizes the effectiveness of applying a genetic algorithm to tackle this problem A genetic algorithm is an optimization method based on the principles of natural evolution, encompassing concepts such as individuals, populations, crossover, and mutation The author proposes a specialized genetic algorithm to solve the multi-group scheduling problem with multiple objectives This algorithm constructs an objective function to be optimized by incorporating essential factors such as time feasibility, balanced task distribution, and prioritization among groups Through experimentation and comparison with other methods, the author demonstrates that the genetic algorithm is capable of generating optimal schedules with high performance and meeting the multiple objective requirements of the problem Additionally, the genetic algorithm allows for flexible parameter adjustments to optimize the results The outcomes of this thesis contribute to addressing the multi-group scheduling problem with multiple objectives through the utilization of a genetic algorithm This work can be applied in various practical domains and provides benefits for optimizing the scheduling of different groups of tasks or events

Trang 7

Lời cam đoan

Tôi cam đoan rằng đề tài luận văn tốt nghiệp có tựa đề "Giải bài toán xếp lịch công việc đa mục tiêu trên nhiều nhóm bằng tiếp cận giải thuật di truyền" là công trình nghiên cứu của riêng tôi Các tài liệu tham khảo được sử dụng trong luận văn đã được trình bày rõ ràng trong phần Tài liệu tham khảo Các số liệu và kết quả được trình bày trong luận văn là hoàn toàn trung thực, và tôi chịu trách nhiệm hoàn toàn cho bất kỳ sai sót nào, chịu sự kỷ luật từ bộ môn và nhà trường nếu có

Học viên

Nguyễn Hải Dương

Trang 8

Mục lục

Chương 1: Giới thiệu đề tài 1

1.1 Giới thiệu chung 1

1.2 Mô tả về bài toán xếp lịch 3

1.2.1 Bài toán xếp lịch cá nhân PSP 5

1.2.2 Bài toán xếp lịch cá nhân PSP có ràng buộc về thời gian (setup time) 7 1.2.3 Bài toán xếp lịch cá nhân PSP có ràng buộc về deadline 7

1.2.4 Bài toán xếp lịch trên một nhóm 8

1.2.5 Bài toán xếp lịch trên nhiều nhóm 9

1.3 Mục tiêu đề tài 11

1.4 Giới hạn đề tài 12

1.5 Đóng góp của luận văn 12

1.6 Tóm tắt nội dung 13

Chương 2: Cơ sở lý thuyết 14

2.1 Giải thuật di truyền 14

2.2 Giải thuật NSGA-II 23

2.3 Giải thuật NSGA-III 29

Chương 3: Các công trình nghiên cứu liên quan 35

3.1 Phương pháp tối ưu hóa đơn mục tiêu truyền thống (single-objective optimization) 37

3.2 Phương pháp tối ưu hóa đa mục tiêu truyền thống (multi-objective optimization) 40

3.3 Hướng tiếp cận tiến hóa đa mục tiêu (Evolutionary Algorithm) 43

3.4 Phương pháp học máy 46

ận 49

Trang 9

Chương 4: Mô hình đề xuất 51

4.1 Mô hình tham khảo 51

4.2 Phương pháp đánh giá 52

4.3 Tập dữ liệu và phương pháp xử lý 52

4.4 Đề xuất 1: Sử dụng cơ chế lựa chọn của NSGA-II 56

4.5 Đề xuất 2: Sử dụng cơ chế lựa chọn của NSGA-III 59

4.6 Đánh giá 61

Chương 5: Kết luận 65

Tài liệu tham khảo 66

Trang 10

Danh mục hình ảnh

Hình 1.1: Công cụ lập lịch Google calendar 2

Hình 1.2: Các hướng nghiên cứu bài toán xếp lịch 3

Hình 1.3: Hình minh họa lịch làm việc của một cá nhân 6

Hình 1.4: Minh họa xếp lịch trên một nhóm nhiều máy 9

Hình 1.5: xếp lịch trên nhiều nhóm nhiều máy 11

Hình 2.1: Sơ đồ giải thuật di truyền 15

Hình 2.2: Cá thể sau khi được mã hóa ở dạng nhị phân 16

Hình 2.3: Single point crossover 17

Hình 2.4: Multi-point crossover 17

Hình 2.5: Đột biến bằng cách tráo đổi vị trí 20

Hình 2.6: Sơ đồ giả thuật NSGA-II 24

Hình 2.7: Minh họa đường con pareto 25

Hình 2.8: Giá trị hàm mục tiêu của 4 cá thể A, B, C, D 25

Hình 2.9: Minh họa vị trí của A, B, C, D trên 2 trục mục tiêu 25

Hình 2.10: Sơ đồ giải thuật đánh giá trội trong NSGA-II [16] 26

Hình 2.11: Giá trị hàm muc tiêu của các cá thể 27

Hình 2.12: Minh họa đường pareto (màu đỏ) trong bài toán có 3 hàm mục tiêu 27

Hình 2.13: Mật độ của các lời giải xung quanh một phương án 27

Hình 2.14: Giải thuật tính crowding-distance [16] 28

Hình 2.15: Sơ đồ giải thuật NSGA-III 30

Hình 2.16: 15 điểm reference points với M=3, P=4 [15] 31

Hình 2.17: Điểm cắt giữa mặt phẳng extreme points và các trục mục tiêu [15] 33

Hình 2.18: Quá trình phân loại cá thể về đường reference line [15] 33

Hình 3.1: Các mốc phát triển phương pháp giải bài toán xếp lịch công việc 35

Hình 4.1: Mô hình giải thuật NSGA-II 57

Hình 4.2: Minh họa kết quả xếp lịch đối với tập dữ liệu data_T3_1 58

Hình 4.3: Giải thuật NSGA-III 60

Hình 4.4: Minh họa kết quả xếp lịch đối với tập dữ liệu data_T3_2 61

Trang 11

Hình 4.5: Diễn biến thay đổi hàm F1 62

Hình 4.6: Diễn biến thay đổi hàm F2 62

Hình 4.7: Diễn biến thay đổi hàm F3 62

Hình 4.8: Diễn biến thay đổi hàm F1 63

Hình 4.9: Diễn biến thay đổi hàm F2 63

Hình 4.10: Diễn biến thay đổi hàm F3 63

Hình 4.11: Diễn biến thay đổi hàm F1 63

Hình 4.12: Diễn biến thay đổi hàm F2 63

Hình 4.13: Diễn biến thay đổi hàm F3 63

Trang 12

Danh sách bảng

Bảng 1.1: Bảng thông tin công việc 9

Bảng 1.2: Bảng thông tin thời gian hoàn thành công việc của các máy 10

Bảng 1.3: Bảng khung thời gian trống của các máy 10

Bảng 4.1: bảng thông tin công việc POC Biển Đông 53

Bảng 4.2: Bảng thông tin nguồn lực POC Biển Đông 53

Bảng 4.3: Số lượng công việc của tập dữ liệu 54

Bảng 4.4: Kết quả của hàm mục tiêu F3 58

Bảng 4.5: Mốc thời gian hội tụ của các hàm mục tiêu 58

Bảng 4.6: Kết quả của hàm mục tiêu F3 61

Bảng 4.7: Mốc thời gian hội tụ của các hàm mục tiêu 61

Trang 13

Chương 1

1.1 Giới thiệu chung

Hiện nay, rất nhiều công việc hằng ngày yêu cầu phải sắp xếp lịch Từ sắp xếp lịch làm việc cho công nhân, lập kế hoạch sản xuất kinh doanh, đến lập thời khóa biểu cho sinh viên Vì vậy nhu cầu có một lịch công việc khoa học là rất cần thiết Bài toán này yêu cầu tìm cách phân bổ các tài nguyên, sự kiện, hoạt động hay công việc sao cho thỏa mãn các ràng buộc và tối ưu hóa một mục tiêu nào đó Ví dụ, bài toán xếp lịch học cho các lớp học, bài toán xếp lịch làm việc cho các nhân viên, bài toán xếp lịch thi đấu cho các đội bóng, v.v

Bài toán xếp lịch có nhiều ứng dụng thực tế và có thể giải quyết được nhiều vấn đề phức tạp Tuy nhiên, bài toán xếp lịch cũng gặp nhiều khó khăn và thách thức khi số lượng các biến số và ràng buộc tăng lên Bài toán xếp lịch thuộc vào lớp bài toán NP-Hard [1], nghĩa là không có thuật toán nào có thể giải được bài toán này trong thời gian đa thức Do đó, các nhà nghiên cứu đã đề xuất nhiều phương pháp heuristics và metaheuristics để tìm kiếm các lời giải gần đúng cho bài toán xếp lịch Các phương pháp này bao gồm: thuật toán di truyền, thuật toán tìm kiếm cục bộ, thuật toán tìm kiếm nhánh cận, thuật toán tìm kiếm tabu, thuật toán tìm kiếm ràng buộc, v.v

Một số công cụ giúp sắp xếp lịch làm việc đã ra đời dựa trên nhu cầu đó, tuy nhiên vẫn dựa vào con người là chính, mang nặng tính thủ công Không những thế, với những lịch công việc có khối lượng nhiệm vụ lớn, việc này sẽ tốn rất nhiều thời gian cho người lập lịch

Trang 14

Hình 1.1: Công cụ lập lịch Google calendar

Tuy nhiên, lập lịch cho một người vẫn là chưa đủ Trong cuộc sống hiện nay đã xuất hiện nhu cầu về việc lập lịch cho nhiều người trên nhiều nhóm Bài toán xếp lịch cho nhiều người thuộc nhiều nhóm là một bài toán phức tạp và thú vị trong lĩnh vực khoa học máy tính và quản lý dự án Bài toán này đòi hỏi việc xác định một lịch trình công việc cho một số lượng lớn người, mỗi người có thể thuộc về một hoặc nhiều nhóm khác nhau Ví dụ trong nhà máy, một công việc ngoài nhóm chính phụ trách ra thì còn có một số nhóm khác dự phòng có thể thay thế Việc tìm ra một lịch trình hiệu quả có thể giúp tiết kiệm thời gian và nguồn lực, đồng thời cải thiện hiệu suất và năng suất của tổ chức Rõ ràng việc giải quyết bài toán không hề đơn giản, nhất là nếu có nhiều mục tiêu cần thỏa mãn ngoài việc tổng thời gian xử lý là ngắn nhất của bài toán xếp lịch cho một nhóm truyền thống Đó là lý do tôi thực hiện đề tài “Giải bài toán xếp lịch trên nhiều nhóm đa mục tiêu bằng cận giải thuật di truyền”

Trang 15

1.2 Mô tả về bài toán xếp lịch

Hình 1.2: Các hướng nghiên cứu bài toán xếp lịch

PSP: personal scheduling problem TWSP: Team work scheduling problem

Bài toán xếp lịch hiện có rất nhiều hướng nghiên cứu (xem hình 1.2), có thể liệt kê một số hướng như sau:

• Xếp lịch cấp phát tác vụ (task allocation scheduling) là bài toán cấp phát tài nguyên cho các máy thực thực thi với chi phí tối thiểu, thường được áp dụng trong hệ thống phân tán, các hoạt động trong nhà máy sản xuất • Xếp lịch ràng buộc nguồn lực (resource constrained scheduling), có thể kể

đến lập lịch điều phối nguồn lực cho dự án, sắp xếp thời khóa biểu giảng dạy phù hợp với số lượng giáo viên hiện có, …

• Xếp lịch công việc (Job shop scheduling), là sắp xếp các thứ tự công việc được tiến hành, có thể kể đến như sắp xếp lịch trình làm việc một ngày đối với 1 cá nhân

Task allocation scheduling, hay còn gọi là lập lịch phân công nhiệm vụ, là một quá trình quan trọng trong nhiều lĩnh vực, bao gồm hệ thống nhúng, điện toán đám mây và quản lý dự án Trong hệ thống nhúng, lập lịch nhiệm vụ là quyết định thứ tự

Trang 16

mà các nhiệm vụ được thực hiện [2] Scheduler, hay bộ lập lịch, là phần mềm quyết định nhiệm vụ nào nên được chạy tiếp theo Trong điện toán đám mây, lập lịch nhiệm vụ và phân bổ tài nguyên là hai khía cạnh quan trọng [3] Một số nghiên cứu đã được tiến hành để tìm ra các chiến lược phân bổ nhiệm vụ hợp lý trong môi trường đám mây Ví dụ, một phương pháp kết hợp giữa quy trình phân tích phân cấp sửa đổi (MAHP), lập lịch chia sẻ băng thông (BATS) và tối ưu hóa BAR, thời gian xử lý dự kiến dài nhất (LEPT), và phương pháp chia để trị đã được đề xuất để thực hiện lập lịch nhiệm vụ và phân bổ tài nguyên

Lập lịch phân bổ tài nguyên (Resource-Constrained Scheduling - RCS), còn được gọi là cân bằng tài nguyên, là một thuật ngữ được sử dụng trong quản lý dự án để mô tả quá trình tối ưu hóa lịch trình tập trung vào khả năng sẵn có của tài nguyên [4][5] Mục tiêu chính là nhận biết bất kỳ hạn chế nào về tài nguyên của bạn, để bạn có thể tạo ra một lịch trình thực tế và thực tế cho các hoạt động của dự án RCS được sử dụng khi tài nguyên bị giới hạn Trái ngược với lập lịch dựa trên thời gian, RCS không liên quan đến việc thuê nhà thầu để tăng tốc độ [3] Hầu hết các dự án có ràng buộc tài nguyên, và do đó, kỹ thuật này có tiềm năng để giúp hầu hết các quản lý dự án¹ Bằng cách nhận biết sớm về các ràng buộc tài nguyên hoặc xung đột tiềm năng, người quản lý dự án có cơ hội điều chỉnh lịch trình hoặc tạo ra các giải pháp khác, thay vì giả định rằng dự án sẽ tiếp tục như thể không có giới hạn [4] Trong bài toán này, mỗi công việc có một thời gian thực hiện cố định và yêu cầu sử dụng một số lượng nguồn lực nhất định Nguồn lực có thể có giới hạn hoặc không đủ để đáp ứng tất cả các yêu cầu từ các công việc Do đó, việc xếp lịch phải đảm bảo rằng các công việc không xung đột với nhau trong việc sử dụng nguồn lực và tuân thủ các ràng buộc nguồn lực Lập lịch công việc job shop scheduling là một bài toán tối ưu hóa trong khoa học máy tính và nghiên cứu hoạt động, trong đó mục tiêu là sắp xếp các công việc trên các máy sao cho thời gian hoàn thành tất cả các công việc là nhỏ nhất Mỗi công việc bao gồm một tập hợp các thao tác cần được thực hiện theo một thứ tự nhất định trên các máy khác nhau Mỗi thao tác chỉ có thể được xử lý trên một máy nhất định và chỉ có một thao tác trong một công việc có thể được xử lý tại một thời điểm Bài toán này

Trang 17

có nhiều biến thể và ứng dụng trong các lĩnh vực như sản xuất, dịch vụ, y tế, giáo dục, v.v Trong nghiên cứu của Chengbin Chu và Hu Ding (2015) [6]đã đề xuất một phương pháp lập lịch thông minh dựa trên thuật toán di truyền để giải quyết vấn đề Job Shop Scheduling Phương pháp này đã được áp dụng thành công trong một nhà máy sản xuất gạch bê tông và cho thấy hiệu quả cao trong việc tối ưu hóa thời gian sản xuất và tăng năng suất Trong Nghiên cứu của Morteza Mahjoubi và Saeed Gholami (2019) [7] đã sử dụng thuật toán di truyền để giải quyết vấn đề Job Shop Scheduling trong một nhà máy sản xuất ô tô Kết quả nghiên cứu cho thấy việc sử dụng thuật toán di truyền giúp cải thiện năng suất và giảm thời gian chờ đợi trong quá trình sản xuất

Đề tài tập trung nghiên cứu về việc xếp lịch trên nhiều nhóm đa mục tiêu, một vấn đề thuộc hướng nghiên cứu xếp lịch công việc (Job shop scheduling) Trước khi đi đến mô tả bài toán xếp lịch công việc trên nhiều nhóm, tác giả sẽ trình bày các dạng bài toán lập lịch công việc cơ bản

1.2.1 Bài toán xếp lịch cá nhân PSP

Đây là bài toán lập lịch cá nhân có thể cắt nhỏ bị chặn dưới vào những khung thời gian trống sao cho thời điểm hoàn thành tất cả các công việc là nhỏ nhất (gọi là bài toán PSP), trong đấy:

• Cá nhân (Machine) là một đối tượng cần xếp lịch

• Các công việc (Job) đều có thời gian thực thi, thời gian bắt buộc phải hoàn thành

• Những khung thời gian trống có thể sắp xếp công việc vào đó và những khung thời gian bận hoặc không được xếp lịch

Các ký hiệu trong bài toán lập lịch cá nhân PSP được mô tả như sau:

• Có n công việc Ji(i = 1, ,n) và m khung thời trống Wj (j = 1, , m) Trong mỗi công việc Jicòn có các thông tin liên quan như sau:

• pi: thời gian xử lý của công việc Ji

• r: Thời điểm bắt đầu thực thi của công việc J

Trang 18

• Các ràng buộc của bài toán

• Các công việc có thể chia nhỏ piđể thực hiện trên các máy khác nhau tuy nhiên không thể nhỏ hơn một khoảng splitminđịnh trước

• Các phần được chia nhỏ của công việc chỉ được xếp vào những khoảng thời gian trống của máy (available – windows)

• Mục tiêu của bài toán:

• Cmax = max (Ci): là thời điểm hoàn thành lớn nhất của tập hợp công việc, với Cilà thời gian hoàn thành công việc Ji Mục tiêu này càng nhỏ càng tốt • ∑Ci: Tổng thời gian thực hiện các công việc Ji Mục tiêu này càng nhỏ càng

tốt

Hình 1.3: Hình minh họa lịch làm việc của một cá nhân

Trong [8] của nhóm tác giả J.Wesley Barnes và John B Chambers, đã trình bày một cách tiếp cận tìm kiếm tabu hiệu quả cho vấn đề lập kế hoạch của một cửa hàng Quy trình bắt đầu từ phương án tốt nhất được tìm bởi một bộ 14 giải pháp heuristic Sau đó, họ sử dụng biểu diễn mạng phân tách truyền thống của vấn đề và lặp đi lặp lại việc chuyển sang giải pháp khả thi khác bằng cách đảo ngược thứ tự của hai thao tác quan trọng liền kề được thực hiện bởi cùng một máy

Trong [9], nhóm tác giả đã đề cập đến hai vấn đề tối ưu hóa NP-hard: các vấn đề lập lịch cửa hàng công việc linh hoạt (FJSP) bao gồm các vấn đề phụ về định tuyến và sắp xếp thứ tự, và các FJSP với tính linh hoạt của kế hoạch quy trình (FJSP-PPF) bao gồm thêm việc lựa chọn kế hoạch quy trình phụ vấn đề Nghiên cứu được thực hiện theo hai bước Trong bước đầu tiên, một mô hình lập trình tuyến tính hỗn hợp số nguyên (MILP-1) được phát triển cho FJSP và được so sánh với một mô hình thay thế trng tài liệu (Mô hình F) về hiệu quả tính toán Trong bước thứ hai, một mô hình

Trang 19

lập trình tuyến tính hỗn hợp số nguyên khác, một sửa đổi của MILP-1, dành cho FJSP-PPF được trình bày cùng với các kết quả tính toán của nó đối với các bài toán kiểm tra được tạo ra theo giả thuyết

1.2.2 Bài toán xếp lịch cá nhân PSP có ràng buộc về thời gian (setup time)

Bài toán được phát triển từ bài toán PSP mà ở đó mỗi công việc đều có thời gian chuẩn bị khác nhau

Các ký hiệu bài toán giống với bài toán PSP, ngoài ra còn có thêm 1 thông số cho mỗi công việc Ji như sau:

• sti: Thời gian chuẩn bị trước khi thực hiện công việc Ji

Trong [10], nhóm tác giả đã mô tả, đồng thời sử dụng giải thuật tiến hóa nhằm giải quyết bài toán xếp lịch cá nhân cho rằng buộc về thời gian setup-time

1.2.3 Bài toán xếp lịch cá nhân PSP có ràng buộc về deadline

Bài toán được phát triển từ bài toán PSP mà ở đó mỗi công việc đều có một thời điểm hoàn thành bắt buộc khác nhau

Các ký hiệu bài toán giống với bài toán PSP, ngoài ra còn có thêm 1 thông số cho mỗi công việc Ji như sau:

• di là thời điểm bắt buộc phải hoàn thành job Ji, nếu không thì đây sẽ là một phương án không khả thi

Trong [11], nhóm tác giả bổ sung ngày phát hành và thời hạn để được đáp ứng bởi tất cả các công việc Mục tiêu là giảm thiểu makepan nếu không có công việc đi trễ và ngược lại giảm thiểu sự chậm trễ Vấn đề được tiếp cận bằng cách sử dụng Chiến lược cổ chai

Trong bài [12], công việc có thời hạn hoàn thành, có thể chia nhỏ nhưng không quá nhỏ và sẽ được lên lịch vào một số khoảng thời gian có sẵn Mục tiêu của bài toán là tìm ra lời giải sao cho mọi công việc được hoàn thành trong thời gian sớm nhất Nhóm tác giả đã triển khai mô hình MILP được đề xuất bằng bộ giải CPLEX nhằm xác định giải pháp tối ưu cho tập dữ liệu kích thước nhỏ Đối với tập dữ liệu

Trang 20

kích thước lớn, các thuật toán heuristic được khuyến nghị như First Come First Served (FCFS), Earlyiest Deadline (EDL) và tìm kiếm vùng lân cận bao gồm Stochastic Hill Climbing (SHC), Random Restart Hill Climbing (RRHC), Simulated Annealing (SA) để xác định một giải pháp tốt trong một thời gian chấp nhận được

1.2.4 Bài toán xếp lịch trên một nhóm

Bài toán lập lịch theo nhóm (team work scheduling problem) là bài toán PSP áp dụng phân chia công việc cho một nhóm nhiều người có có các khung thời gian làm việc khác nhau (single team), trong đó:

• Mọi người đều có thể xử lý tất cả mọi việc

• Một công việc có thể được xử lý bởi nhiều người tại một thời điểm • Một công việc có thể được cắt nhỏ làm nhiều phần sub-jobs

• Kích thước các jobs/sub-jobs bị giới hạn Các ký hiệu trong bài toán:

• J = {J1, J2, Jn} là tập hợp n công việc • pilà thời gian xử lý của Ji

• ri: Thời điểm bắt đầu thực thi của công việc Ji

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

• Cmax = max(Ci) là thời điểm hoàn thành của tất cả các công việc • M = {M1, M2,… Mk} là tập hợp k máy

• Wj = {Wj

1,… , Wj

mj }là tập hợp mjkhung thời gian trống trên máyMj

• Wj là khung thời gian thứ tth trên máy Mj

Tương tự như bài toán lập lịch cá nhân, mục tiêu của bài toán lập lịch theo nhóm cũng là thời điểm hoàn thành tất cả các công việc Cmaxlà nhỏ nhất

Trang 21

Hình 1.4: Minh họa xếp lịch trên một nhóm nhiều máy

Hình 1.4 thể hiện sự phân chia các công việc vào các khung thời gian trống trên một nhóm nhiều máy (machine), hay còn gọi là nhân sự thực hiện Trong đó job 1 được phân chia thành 3 công đoạn và chia cho cả 3 machine cùng thực hiện bắt đầu từ các khung giờ khác nhau Cmax hay thời điểm hoàn thành tất cả các đầu việc của bản kế hoạch này là 11

Trong [13], nhóm tác giả Trang Hồng Sơn, Trần Văn Lăng, Nguyên Huỳnh-Tường đã đề xuất một mô hình toán học được giải bởi các solvers để tìm ra lời giải tối ưu và một số phương pháp thuộc nhóm heuristic để tìm ra các lời giải tốt như Assignment approach, Shortest Processing Time, và Longest Processing Time rules Trong [14], nhóm tác giả đã lập lịch làm việc linh động cho một hệ thống gồm nhiều máy bằng Meta-Heuristic

1.2.5 Bài toán xếp lịch trên nhiều nhóm

Đối với bài toán lập lịch trên nhiều nhóm (multi-teams), điểm khác biệt so với lập lịch cho một nhóm ở chỗ một công việc lúc này được chia trên nhiều nhóm và mỗi nhóm là tập hợp của nhiều máy (nhân sự thực hiện)

Bảng 1.1: Bảng thông tin công việc

Trang 22

Bảng 1.2: Bảng thông tin thời gian hoàn thành công việc của các máy

Bảng 1.3: Bảng khung thời gian trống của các máy

Hình 1.5 mô tả thông tin công việc cần xếp lịch, trong đó các job_id có cùng giá trị parent_job là các công việc con của parent_job, ví dụ job_1 được chia thành hai công việc việc con là job_1_0 và job_1_1 Cột team là nhóm được chỉ định thực hiện đầu việc, đồng thời các nhóm thuộc cột alt_team cũng có thể thực hiện đầu việc ấy

Tiếp theo ta có thông tin về thời gian thực hiện các công việc con của từng máy thuộc từng nhóm từ bảng 1.6, ví dụ công việc Job_1_0 có thể hoàn thành bởi máy Machine-0 thuộc nhóm A trong 3 giờ hoặc trong 4 giờ đối với máy Machine-1 thuộc nhóm B, tuy nhiên không một máy nào thuộc nhóm C thực hiện được đầu việc này Ngoài ra hình 1.7 mô tả các khung thời gian trống (Available-windows) mà máy có thể thực hiện công việc, ví dụ machine-1 của nhóm A chỉ rảnh trong khung giờ từ 1 đến 6 Mục tiêu cơ bản của bài toán xếp lịch trên nhiều nhóm này cũng như các lớp bài toán xếp lịch công việc khác, tìm ra một bản kế hoạch công việc được chia cho nhiều nhân sự thuộc nhiều nhóm sao cho thời gian hoàn thành tất cả các đầu việc Cmax

Machine-0_A [1-2],[5-6],[9-10]Machine-0_B [1-5],[6-11]Machine-1_B [2-7],[9-11]Machine-0_C [3-6],[8-11]

Trang 23

Hình 1.5: xếp lịch trên nhiều nhóm nhiều máy

Hình 1.8 là một lời giải phân chia công việc cho các máy (machine), hay nhân sự thực hiện, thuộc nhiều nhóm khác nhau với thời gian hoàn thành các đầu việc Cmax là 10

Thông qua ví dụ trên, tác giả đã trình bày về bài toán xếp lịch trên nhiều nhóm với một mục tiêu duy nhất là cực tiểu hóa thời gian hoàn thành tất các các công việc Trong thực tế, bài toán này sẽ phải đối diện nhiều hơn một mục tiêu, đồng thời còn phải thỏa mã các ràng buộc liên quan như nguồn lực, chi phí Ngoài ra, số lượng các công việc cần sắp xếp có thể rất lớn, khiến cho việc tìm kiếm một lời giải tối ưu là cực kỳ phức tạp

Trang 24

• Tìm hiểu về bài toán xếp lịch trên nhiều nhóm đa mục tiêu, đặc biệt là các ràng buộc, các yêu cầu, các công trình và các phương pháp giải quyết của bài toán xếp lịch đa mục tiêu trên nhiều nhóm

• Nghiên cứu và áp dụng giải thuật thuộc hướng tiếp cận giải thuật di truyền NSGA-II, NSGA-III

• Cài đặt giải thuật và thực nghiệm và đánh giá kết quả dựa trên tập dữ liệu thuộc dự án POC Biển đông

• Chỉ ra những vấn đề hạn chế của các phương pháp đề xuất, đề xuất các hướng nghiên cứu mà mở rộng của bài toán trong tương lai

• Sử dụng NSGA-II và NSGA-III: đề tài này chỉ tập trung vào sử dụng hai giải thuật di truyền là NSGA-II và NSGA-III để giải quyết bài toán xếp lịch trên nhiều nhóm đa mục tiêu Các giải thuật này được lựa chọn để thực hiện so sánh hiệu quả và tính khả thi trong việc giải quyết bài toán • Tập dữ liệu được sử dụng thuộc dự án POC Biển Đông

1.5 Đóng góp của luận văn

• Áp dụng thành công NSGA-II và NSGA-III vào việc giải quyết bài toán xếp lịch đa mục tiêu trên nhiều nhóm nhiều người, một dạng bài toán mới của lớp bài toán lập lịch trên một nhóm trước đây

Trang 25

1.6 Tóm tắt nội dung

Luận văn “Giải bài toán xếp lịch trên nhiều nhóm đa mục tiêu bằng tiếp cận giải thuật di truyền” bao gồm 5 chương với các nội dung chính sau đây:

Chương 1, GIỚI THIỆU ĐỀ TÀI: Được trình bày tổng quan về đề tài,

lý do thực hiện đề tài, ý nghĩa thực tiễn của bài toán, cũng như giới hạn và phạm vi của đề tài Cuối cùng, chương này cũng giới thiệu nhiệm vụ và cấu trúc của luận văn

Chương 2, CƠ SỞ LÝ THUYẾT: tập hợp các vấn đề lý thuyết có liên

quan được sử dụng để giải quyết vấn đề, chủ yếu tập trung vào nội dung của NSGA-II, NSGA-III

cấp một cái nhìn tổng quát về các nghiên cứu liên quan đã và đang được tiến hành, cũng như xu hướng hiện tại trong việc giải quyết vấn đề Phần này cũng sẽ thảo luận và đánh giá các phương pháp đã nêu trên, vì đây là nền tảng quan trọng cho các nghiên cứu của tác giả trong quá trình thực hiện luận văn

Chương 4, MÔ HÌNH ĐỀ XUẤT: sẽ giới thiệu mô hình cơ sở cho Bài

xếp lịch đa mục tiêu trên nhiều nhóm Nó cũng sẽ trình bày các cải tiến và động lực cho các đề xuất đó Cuối cùng, tác giả sẽ mô tả các bước thực hiện thí nghiệm trên các tập dữ liệu khác nhau và đánh giá kết quả của các cải tiến so với mô hình cơ sở

Chương 5, KẾT LUẬN: sẽ tổng kết các kết quả đã đạt được trong suốt

quá trình thực hiện luận văn, từ việc nghiên cứu và xây dựng giả thuyết đến việc thực hiện thí nghiệm Phần này cũng sẽ giới thiệu những hạn chế và vấn đề còn tồn tại, và cuối cùng là đưa ra các đề xuất cho các cải tiến trong tương lai

Trang 26

Chương 2

Cơ sở lý thuyết

2.1 Giải thuật di truyền

Giải thuật di truyền, hay còn được gọi là thuật toán di truyền (genetic algorithm), là một phương pháp tìm kiếm và tối ưu hóa dựa trên cơ chế tiến hóa tự nhiên Nó được lấy cảm hứng từ quá trình tiến hóa trong tự nhiên, nơi các cá thể có đặc điểm tốt hơn có khả năng sinh sản và truyền đặc điểm của mình cho thế hệ tiếp theo Giải thuật di truyền đã được áp dụng rộng rãi trong nhiều lĩnh vực, từ tối ưu hóa hàm số đến xử lý ảnh và học máy

Giải thuật di truyền làm việc trên một tập hợp các cá thể, mỗi cá thể đại diện cho một giải pháp trong không gian tìm kiếm Ban đầu, tập hợp các cá thể được tạo ngẫu nhiên hoặc thông qua một phương pháp khởi tạo đặc biệt Các cá thể được biểu diễn bằng một chuỗi gen, trong đó mỗi gen đại diện cho một thuộc tính hoặc tham số của giải pháp

Quá trình tiến hóa trong giải thuật di truyền gồm các bước chính sau:

• Khởi tạo: Tạo một tập hợp ban đầu các cá thể ngẫu nhiên hoặc thông qua một phương pháp khởi tạo đặc biệt

• Đánh giá: Đánh giá mỗi cá thể dựa trên một hàm mục tiêu, gọi là hàm fitness Hàm fitness đo lường mức độ tốt của một cá thể trong việc giải quyết vấn đề

• Chọn lọc: Chọn lọc một số cá thể tốt nhất để tiếp tục vào thế hệ tiếp theo Phương pháp chọn lọc có thể là chọn lọc tự nhiên, trong đó các cá thể tốt nhất có khả năng sinh sản nhiều hơn, hoặc chọn lọc dựa trên hàm fitness • Lai ghép: Kết hợp các cá thể được chọn lọc để tạo ra các cá thể con mới Quá trình lai ghép có thể thực hiện thông qua các phép toán như lai ghép một điểm, lai ghép hai điểm hoặc lai ghép đồng nhất

Trang 27

• Đột biến: Một số cá thể con có khả năng bị đột biến, tức là có một số thay đổi ngẫu nhiên trong gen của chúng Điều này giúp đánh giá khám phá thêm các khu vực không gian tìm kiếm và tránh rơi vào một hố sâu cục bộ

• Thay thế: Thay thế một phần các cá thể trong thế hệ hiện tại bằng các cá thể con mới được tạo ra từ lai ghép và đột biến

Quá trình trên tiếp tục lặp lại cho đến khi một điều kiện dừng được đáp ứng, chẳng hạn như đạt được một giải pháp tối ưu đủ tốt hoặc đạt đến số lần lặp tối đa

Hình 2.1: Sơ đồ giải thuật di truyền

2.1.1 Mã hóa (encoding)

Mã hóa trong giải thuật di truyền (GA) đóng một vai trò quan trọng Trong GA, một giải pháp ứng viên cho một vấn đề tối ưu hóa được biểu diễn dưới dạng một tập hợp các thuộc tính, thường được gọi là nhiễm sắc thể hoặc kiểu gen

Thông thường, những giải pháp này được thể hiện dưới dạng nhị phân với những chuỗi 0 và 1, nhưng lại mang nhiều thông tin mã hóa khác nhau Mỗi chuỗi nhị phân này tương ứng với một giải pháp ứng viên cho vấn đề tối ưu hóa

Quá trình tiến hóa xảy ra từ một tập hợp những cá thể hoàn toàn ngẫu nhiên ở tất cả các thế hệ Trong từng thế hệ, tính thích nghi của tập hợp này được ước lượng,

Trang 28

sửa đổi (bằng đột biến hoặc tổ hợp lại) để hình thành một tập hợp mới Mã hóa trong GA giúp biểu diễn các giải pháp ứng viên một cách hiệu quả, cho phép GA tìm kiếm không gian giải pháp một cách hiệu quả

Ví dụ, cần tìm 1 số x trong khoảng từ 0 đến 10 sao cho số x thỏa f(x) = x2 – x/2 là lớn nhất Vì x nằm trong khoảng từ 0 đến 10, nghĩa là 10 là giá trị lớn nhất mà x đạt được, như vậy cần khỏa 4 bit để biểu thị x trong khoảng trên (do mã nhị phân của 10 mà 1010) Vì vậy ta có thể sản sinh 1 vài nhiễm sắc thể như sau (và đây cũng được coi là bước thứ nhất, tạo một quần thể ban đầu:

Hình 2.2: Cá thể sau khi được mã hóa ở dạng nhị phân

2.1.2 Nhân chéo (crossover)

Bước nhân chéo (crossover) là một trong những bước quan trọng trong giải thuật di truyền Nó là quá trình kết hợp thông tin di truyền từ hai cá thể cha mẹ để tạo ra cá thể con mới Bước này giúp tạo ra sự đa dạng di truyền và khám phá các khu vực mới trong không gian tìm kiếm

Quá trình nhân chéo bắt đầu bằng việc chọn lọc hai cá thể cha mẹ từ thế hệ hiện tại, thường dựa trên một phương pháp chọn lọc như chọn lọc tự nhiên hoặc chọn lọc dựa trên hàm fitness Hai cá thể cha mẹ được chọn lọc có các đặc điểm tốt và đóng vai trò như nguồn gen để tạo ra cá thể con mới

Nhân chéo tại 1 điểm (single point crossover)

Bằng việc chọn ngẫu nhiên 1 điểm nào đó trên nhiễm sắc thể, chia đôi 2 nửa tương ứng trên cả 2 nhiễm sắc thể tại điểm đó, rồi sau đó ghép chéo cho nhau Như vậy đã có 2 bộ nhiễm sắc thể mới được ra đời

Trang 29

Hình 2.3: Single point crossover

Nhân chéo tại nhiều điểm (multi-point crossover)

Tương tự như nhân chéo tại 1 điểm, phương pháp này chọn nhiều điểm và sau đó thực hiện hành vi nhân chéo cho nhau tại các điểm này

Hình 2.4: Multi-point crossover

Simulated Binary Crossover

Simulated Binary Crossover (SBX) là một phương pháp nhân chéo trong giải thuật ền được sử dụng để tạo ra sự đa dạng di truyền và khám phá khu vực mới trong

Trang 30

không gian tìm kiếm SBX được áp dụng phổ biến trong các thuật toán tối ưu hóa dựa trên di truyền và được ưa chuộng trong các bài toán tối ưu hóa liên tục

SBX xây dựng trên ý tưởng của nhân chéo một điểm thông thường, nhưng nó cung cấp một cách tiếp cận linh hoạt hơn bằng cách sử dụng phân phối xác suất để xác định cách thức trao đổi thông tin di truyền giữa hai cá thể cha mẹ Phương pháp này tạo ra một sự kết hợp tuyến tính của các gen từ hai cá thể cha mẹ, cho phép việc tạo ra các giá trị con mới nằm trong một phạm vi rộng hơn so với phương pháp nhân chéo truyền thống

Quá trình SBX bắt đầu bằng việc chọn lọc hai cá thể cha mẹ từ thế hệ hiện tại, tương tự như các phương pháp nhân chéo khác Sau đó, một tham số điều khiển, thường được gọi là "eta" (η), được sử dụng để xác định mức độ trao đổi thông tin di truyền giữa hai cá thể cha mẹ

Công thức tính toán giá trị con mới trong SBX được xác định như sau: Bước 1: Sinh tham số u trong khoảng từ [0,1)

Bước 2: Tịnh tham số β

β = (2u)1/(n_c +1) nếu u ≤ 0.5 β = (2(1−𝑢𝑢)1 )1/(n_c+1)

Với n_c là chỉ số phân phối (distribution index) Bước 3: tính x1new và x2new

x1new= 0.5[(1+ β) x1 + (1- β)x2] x2new= 0.5[(1- β) x1+ (1+ β)x2]

Trong đó, n_c là tham số điều khiển và có thể được điều chỉnh để kiểm soát mức độ trao đổi thông tin di truyền Giá trị của η thường được chọn trong khoảng từ 5 đến 20 [12], và giá trị càng lớn thì mức độ trao đổi thông tin di truyền càng nhỏ

Trang 31

Giả sử chúng ta có hai cá thể cha mẹ trong quần thể và mỗi cá thể có chuỗi gen gồm 5 biến thực (real-valued variables): [1.2, 3.4, 2.1, 5.6, 4.8] Chúng ta muốn sử dụng SBX để tạo ra con cá thể mới từ hai cá thể cha mẹ này

Bước 1: Lựa chọn hai cá thể cha mẹ:

Parent1: [1.2, 3.4, 2.1, 5.6, 4.8] Parent2: [2.3, 4.5, 3.2, 6.7, 5.9]

Bước 2: Tính toán tham số beta (β):

Beta được tính toán ngẫu nhiên trong khoảng [0, 1] Giả sử beta = 0.8

Bước 3: Tạo con cá thể mới:

Sử dụng công thức SBX, chúng ta tính toán từng biến của con cá thể mới bằng cách kết hợp các biến từ hai cá thể cha mẹ:

offspring1 = 0.5 * [(1 + beta) * parent1 + (1 - beta) * parent2]

= 0.5 * [(1 + 0.8) * [1.2, 3.4, 2.1, 5.6, 4.8] + (1 - 0.8) * [2.3, 4.5, 3.2, 6.7, 5.9]] = 0.5 * [1.92, 4.56, 2.82, 7.28, 6.08] + 0.5 * [0.46, 0.90, 0.64, 1.34, 1.18] = [1.19, 2.73, 1.73, 4.31, 3.63]

offspring2 = 0.5 * [(1 - beta) * parent1 + (1 + beta) * parent2]

= 0.5 * [(1 - 0.8) * [1.2, 3.4, 2.1, 5.6, 4.8] + (1 + 0.8) * [2.3, 4.5, 3.2, 6.7, 5.9]] = 0.5 * [0.24, 0.68, 0.42, 1.12, 0.96] + 0.5 * [3.68, 7.02, 4.98, 10.42, 9.18] = [1.96, 3.85, 2.70, 5.77, 5.07]

Kết quả là chúng ta đã tạo ra hai con cá thể mới từ phép lai ghép SBX: offspring1: [1.19, 2.73, 1.73, 4.31, 3.63]

offspring2: [1.96, 3.85, 2.70, 5.77, 5.07]

Quá trình SBX tạo ra sự đa dạng di truyền bằng cách kết hợp các đặc tính từ cả hai

Trang 32

thuật toán tìm kiếm các giải pháp tốt hơn trong không gian tìm kiếm và tránh rơi vào vết cạn kiệt di truyền

2.1.3 Đột biến (Mutation)

Đột biến (mutation) là một pha quan trọng trong giải thuật di truyền, giúp tạo ra sự đa dạng di truyền và khám phá khu vực mới trong không gian tìm kiếm Quá trình đột biến thay đổi một hoặc nhiều gen trong cá thể để tạo ra cá thể con mới có thông tin di truyền khác biệt

Mục đích chính của đột biến là giúp giải thuật di truyền tránh rơi vào việc hội tụ sớm và tìm kiếm các giải pháp tốt hơn trong không gian tìm kiếm Quá trình này giúp tạo ra sự đa dạng trong quần thể bằng cách giới thiệu các biến thể gen mới, có thể mang lại các đặc điểm tốt hơn và giúp quần thể tiến hóa

Một trong những cách phổ biến nhất trong việc tạo ra đột biến là chọn ngẫu nhiên 2 điểm nào đó rồi đổi vị trí cho nhau

Hình 2.5: Đột biến bằng cách tráo đổi vị trí

Ngoài việc đảo trật tự, 1 phương pháp khác cũng được sử dụng trong việc tạo ra

đột biến ở một cá thể, Polynomial Mutation, được đưa ra vào năm 1999 bởi Deb

and Agrawal Với một tham số p trong [a, b], một tham số p’ đột biến với một biến ngẫu nhiên u trong khoảng [0,1] như sau:

p’ = p+ δL(p-a) với u ≤ 0.5 p’ = p+ δR(b-p) với u >0.5 Trong đó:

δL = (2u)1/(n_m +1) -1 với u ≤ 0.5

Trang 33

δR = 1- (2(1-u))1/(n_m+1)với u > 0.5

với n_m là tham số do người dùng tự đưa ra, distribution_index (η) là tham số điều khiển, quyết định mức độ ảnh hưởng của phép biến đổi đa thức Thường được chọn trong khoảng từ 5 đến 20

Cùng xem ví dụ sau:

Giả sử chúng ta có một cá thể trong quần thể với chuỗi gen gồm 5 biến thực valued variables): [2.0, 4.5, 3.2, 6.7, 5.9] Chúng ta muốn thực hiện phép đột biến đa thức trên cá thể này

(real-Các bước tiến hành như sau:

Bước 1: Lựa chọn cá thể để đột biến:

Chromosome: [2.0, 4.5, 3.2, 6.7, 5.9]

Bước 2: Chọn tham số đột biến:

Chọn u= 0.8, khi đó δR = 1- (2(1-u))1/(n_m+1)với u > 0.5 được tính toán ngẫu nhiên và giả sử là 0.5

Bước 3: Thực hiện phép đột biến đa thức:

Sử dụng công thức đột biến đa thức, chúng ta tính toán từng biến mới của cá thể đột biến:

mutated_offspring = Chromosome + δR * (upper_bound - Chromosome) Trong đó:

• Chromosome: Cá thể được lựa chọn

• upper_bound: Giới hạn trên cho biến, giả sử [10,5,4,8,7] • δR: Tham số đột biến

Giả sử chúng ta chọn δR = 0.5, lúc này:

mutated_offspring = [2.0, 4.5, 3.2, 6.7, 5.9] + 0.5 * ([10,5,4,8,7]- [2.0,4.5,3.2,6.7,5.9])

Trang 34

= [2.0, 4.5, 3.2, 6.7, 5.9] + [4, 0.25, 0.4, 0.65, 0.55] = [6.0, 4.75, 3.6, 7.35, 6.45]

Kết quả là chúng ta đã tạo ra một cá thể mới, kết quả từ phép đột biến đa thức: Cá thể đột biến: [6.0, 4.75, 3.6, 7.35, 6.45]

Cá thể đột biến này có thể được sử dụng trong quá trình tiến hóa tiếp theo để tìm kiếm các lời giải tốt hơn cho bài toán

2.1.4 Cơ chế lựa chọn

Cơ chế lựa chọn (selection mechanism) là một phần quan trọng trong thuật toán di truyền (genetic algorithm - GA), nó quyết định các cá thể nào sẽ được chọn để tiếp tục vào thế hệ tiếp theo dựa trên hiệu suất của chúng trong việc giải quyết bài toán tối ưu hóa

Có nhiều phương pháp khác nhau để thực hiện cơ chế lựa chọn trong GA, dưới đây là một số phương pháp phổ biến:

• Roulette Wheel Selection: Phương pháp này gán một "vòng xe quay" cho quần thể, trong đó mỗi cá thể được gắn với một phần trăm diện tích trên vòng xe tương ứng với hiệu suất của nó Các cá thể có phần trăm lớn hơn trên vòng xe có khả năng cao hơn để được chọn

• Tournament Selection: Phương pháp này chia quần thể thành các nhóm nhỏ (có thể là cặp hoặc nhóm lớn hơn) và chọn ngẫu nhiên một số cá thể từ mỗi nhóm Sau đó, trong mỗi nhóm, cá thể có giá trị hàm mục tiêu tốt nhất được chọn để tiếp tục vào thế hệ tiếp theo

• Rank Selection: Phương pháp này xếp hạng các cá thể trong quần thể dựa trên hiệu suất của chúng Các cá thể được sắp xếp theo thứ tự từ tốt nhất đến tệ nhất Xác suất lựa chọn của một cá thể là dựa trên vị trí xếp hạng của nó, cá thể xếp hạng cao hơn có khả năng lựa chọn cao hơn

Trang 35

• Elitism: Phương pháp này đảm bảo rằng một số cá thể tốt nhất trong thế hệ hiện tại được chọn trực tiếp để tiếp tục vào thế hệ tiếp theo mà không thay đổi Điều này đảm bảo rằng các giải pháp tốt nhất không bị mất đi qua các thế hệ Cơ chế lựa chọn trong GA giúp tăng khả năng tìm ra các giải pháp tối ưu bằng cách ưu tiên các cá thể có hiệu suất tốt hơn Bằng cách kết hợp cơ chế lựa chọn với các toán tử di truyền khác như lai ghép và đột biến, GA có thể tìm ra các giải pháp tiềm năng trong không gian tìm kiếm lớn và phức tạp

2.1.5 Điều kiện dừng

Trong thuật toán di truyền (genetic algorithm - GA), điều kiện dừng (termination condition) xác định khi nào thuật toán sẽ kết thúc quá trình tối ưu hóa Điều kiện dừng quan trọng vì nó giúp đảm bảo rằng GA đã hội tụ đủ và không tiếp tục chạy vô tận Dưới đây là một số điều kiện dừng phổ biến trong GA:

• Số thế hệ (Generation count): Một số lượng cố định thế hệ được xác định trước Khi số thế hệ đã đạt đủ, thuật toán dừng lại Điều này đảm bảo GA chạy trong một khoảng thời gian xác định và dừng lại sau khi đã thực hiện đủ số lượng thế hệ

• Đạt được giá trị mục tiêu (Target fitness value): Xác định một giá trị mục tiêu cho hàm mục tiêu, ví dụ như đạt được giá trị fitness tối ưu Khi một cá thể đạt được giá trị mục tiêu này hoặc gần đạt được, thuật toán dừng lại

• Không có sự cải thiện (No improvement): Theo dõi sự cải thiện của giải pháp trong một số lượng thế hệ gần đây Nếu không có sự cải thiện đáng kể trong một khoảng thời gian, thuật toán dừng lại Điều này cho thấy rằng GA đã đạt được một giải pháp tối ưu hoặc đang gần đạt được sự hội tụ

2.2 Giải thuật NSGA-II

Giải thuật NSGA-II được đưa ra bởi K.Deb, A Pratap, S.Agarwal, T Meyarivan vào năm 2002 Về kiến trúc NSGA-II này cũng phải trả qua các bước khởi tạo quần thể, nhân chép, đột biến, lựa chọn cá thể mới như các giải thuật di truyền khác Tuy

Trang 36

(multiple objectives) ở bước lựa chọn cá thể mới thông qua cơ chế xếp hạng các giải pháp không bị thống trị (Non-dominated sorting) và chỉ số crowding distance

Đối với các bài toán chỉ có 1 hàm mục tiêu, dễ dàng có thể xác định được đâu là giải pháp tốt nhất, vì khi đó chỉ tồn tại 1 mức duy nhất để đánh giá xem là phương án đó tốt hay xấu Tuy nhiên đối với các bài toán đa mục tiêu, thì việc tìm ra một phương án sao cho các mục tiêu đều là tốt nhất thì là 1 việc vô cùng khó khăn Ví dụ, sắp xếp lịch làm việc cho công nhân thuộc nhiều nhóm khác nhau Nếu chỉ có mục tiêu duy nhất là tất cả các công nhân đều được phân việc sao tổng thời gian thực hiện các công việc là ngắn nhất thì rất đơn giản Nhưng nếu xuất hiện các ràng buộc, ví dụ có những việc chỉ có nhóm A là được, lại có những việc chỉ có nhóm B làm được, thêm vào đó lại xuất hiện các yêu cầu khác, ví dụ như các đầu việc phải được phân càng sớm càng tốt, không được sử dụng quá nguồn nhân lực được cung cấp, thì lúc này bài toán sẽ trở nên rất phúc tạp

Hình 2.6: Sơ đồ giả thuật NSGA-II

2.2.1 Non-dominated sorting

Một trong những điểm hay nhất của NSGA-II là cơ chế xếp hạng các giải pháp không bị thống trị Non-dominated sorting Mục đích cơ chế này là tìm ra đường cong Pareto, nơi tập hợp các cá thể không bị thống trị bởi bất cứ cá thể nào

Trang 37

Hình 2.7: Minh họa đường con pareto

Cùng nhìn vào hình 2.7 giả sử có 4 đối tượng, có các thông số về F1 và F2 Mục tiêu của bài toán là cực tiểu hai hàm số F1 và F2 Dễ dàng thấy D là tốt nhất về cả 2 giá trị, như vậy D sẽ thuộc nhóm đầu tiên Xét tiếp B và C Cả 2 đều có mục tiêu F1 và F2 tốt hơn so với A, tuy nhiên lại không vượt trội đối với nhau (B thấp hơn C về mục tiêu F1 nhưng lại có mục tiêu F2 cao hơn C, ngược lại C có giá trị F1 hơn B nhưng F2 lại thấp hơn B) Như vậy B và C thuộc nhóm thứ 2 Và còn lại A sẽ thuộc lớp cuối cùng Tương tự như ví dụ vừa rồi, cơ chế so sánh trội (Non-dominated

sorting) cho phép phân ra các hạng của của các phương án, theo đó hạng phương án càng thấp tức là càng tốt

Hình 2.8: Giá trị hàm mục tiêu của 4 cá thể A, B, C, D

Trang 38

Hình 2.10: Sơ đồ giải thuật đánh giá trội trong NSGA-II [16]

Non-dominated sorting được thực hiện trong giải thuật NSGA-II Đầu tiên, đối với mỗi giải pháp p, tính toán hai thông số:

1 Số lượng thống trị np : số lượng giải pháp thống trị giải pháp p 2 Tập hợp các giải pháp Sp mà giải pháp p thống trị

Các bước thực hiện như sau:

1 Tất cả các giải pháp ở nhóm thống trị đầu tiên sẽ không có giải pháp nào thống trị chúng, tức là np = 0

2 Tiếp theo đi đến lần lượt các giải pháp q trong tập hợp Sp các giải pháp bị thống trị bởi p, đồng thời giảm số lượng thống trị q đi 1, tức nq = nq

-1 Nếu có một giải pháp q nào mà nq về 0 thì cho vào một tập hợp riêng Q, và Q chính là nhóm thống trị hạng 2

3 Tiếp tục đi đến các giải pháp ở lớp thống trị tiếp theo Q và làm tưởng tự như trên, sẽ thu được các lớp thống trị tiếp theo

Một ví dụ nữa trong việc sử dụng cơ chế so sánh trội nhằm tìm phương án pareto được thể hiện qua ví dụ sau Sau khi trải qua các bước nhân chéo và đột viến, một bài toán đã thu được 15 cá thể, mỗi các thể gôm 3 hàm mục tiêu như trong hình 2.10 Tiến hành đi tìm đường pareto, thu được đồ thị, trong đó các phương án được bôi

Trang 39

vàng là những phương án pareto, tức là không có phương án nào thống trị đối với các phương án này Kết quả đường pareto được thể hiện qua hình 2.11

2.2.2 Chỉ số mật độ (Crowding-distance)

Để duy trì sự đa dạng của quần thể, đồng thời đưa ra lựa chọn khi các phương án khác nhau nằm cũng 1 lớp, phương pháp tính khoảng cách đông đúc (Crowding-distance) được đề xuất để đánh giá mối quan hệ mật độ giữa từng giải pháp trong nhóm và các giải pháp xung quanh Theo hình mình họa ở dưới, tính khoảng cách 2 phương án liền kề i-1 và i+1 đối với từng phương án i, tính khoảng cách trung bình của hai giải pháp này và cuối cùng tính tổng các khoảng cách được tính theo từng mục tiêu , tức là khoảng cách đông đúc để có được giải pháp cụ thể đó

Hình 2.13: Mật độ của các lời giải xung quanh một phương án

Trang 40

Việc tính toán Crowding-distance giúp duy trì tính đa dạng của các giải pháp, nghĩa là khi cần chọn giải pháp từ một nhóm giải pháp nằm trong cùng một 1 lớp, nó sẽ có xu hướng chọn giải pháp với khoảng cách này càng lớn, vì khoảng cách càng lớn thì sự khác biệt giữa giải pháp này với các giải pháp khác càng lớn, giúp quá trình lặp thuật toán tiếp theo tránh rơi vào tình trạng giải pháp cục bộ.Với hy vọng tìm ra các giải pháp ngày càng tốt hơn, khoảng cách tắc nghẽn được tính toán cụ thể như sau:

Hình 2.14: Giải thuật tính crowding-distance [16]

Bước 1: Sắp xếp các phương án theo mỗi mục tiêu cần tối ưu theo thứ tự tăng dần Đặt khoảng cách cho giải pháp đầu tiên và giải pháp cuối là 1 số dương thật lớn Sau đó đánh giá khoảng cách của giải pháp i như sau:

I[i]distance = (I[i+1].m – I[i−1].m)𝑓𝑓𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚− 𝑓𝑓𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚

Trong đó I[i].m là giá trị của mục tiêu thứ m của giải pháp i, fmmaxvà fmminlà giá trị lớn nhất và bé nhất của mục tiêu thứ m

Bước 2: Cộng dồn khoảng cách đối với mỗi phương án trên qua mỗi lần duyệt giá trị mục tiêu

2.2.2 Cơ chế lựa chọn

Việc lựa chọn trong NSGA-II có 2 tính chất cần xét đến là hạng của phương án (rank) và mật độ đông đúc (crowding-distance) Việc lựa chọn phương án cho lần tiến hóa tiếp theo sẽ dựa trên những nguyên tắc sau:

• Hạng của phương án càng nhỏ càng được ưu tiên (tức là đang nằm ở lớp thống trị cao hơn so với các phương án khác)

Ngày đăng: 22/05/2024, 11:11

Tài liệu cùng người dùng

Tài liệu liên quan