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

Luận văn thạc sĩ Khoa học máy tính: 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 2 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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
Tác giả Nguyễn Hải Dương
Người hướng dẫn TS. Nguyễn Tiến Thịnh, PGS.TS. Quản Thành Thơ
Trường học Trường Đại học Bách Khoa - ĐHQG-HCM
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2024
Thành phố Tp. HCM
Định dạng
Số trang 85
Dung lượng 886,29 KB

Cấu trúc

  • Chương 1: Giới thiệu đề tài (13)
    • 1.1 Gi ới thiệu chung (13)
    • 1.2 Mô t ả về bài toán xếp lịch (15)
      • 1.2.1 Bài toán x ếp lịch cá nhân PSP (17)
      • 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 (19)
      • 1.2.3 Bài toán x ếp lịch cá nhân PSP có ràng buộc về deadline (19)
      • 1.2.4 Bài toán x ếp lịch trên một nhóm (20)
      • 1.2.5 Bài toán x ếp lịch trên nhiều nhóm (21)
    • 1.3. M ục tiêu đề tài (23)
    • 1.4 Gi ới hạn đề tài (24)
    • 1.5 Đóng góp của luận văn (24)
    • 1.6 Tóm t ắt nội dung (25)
  • Chương 2: Cơ sở lý thuyết (26)
    • 2.1 Gi ải thuật di truyền (26)
    • 2.2 Gi ải thuật NSGA-II (35)
    • 2.3 Gi ải thuật NSGA-III (41)
  • Chương 3: Các công trình nghiên cứu liên quan (47)
    • 3.1 Phương pháp tối ưu hóa đơn mục tiêu truyền thống (single-objective optimization) (49)
    • 3.2 Phương pháp tối ưu hóa đa mục tiêu truyền thống (multi-objective optimization) (52)
    • 3.3. Hướng tiếp cận tiến hóa đa mục tiêu (Evolutionary Algorithm) (55)
    • 3.4 Phương pháp học máy (58)
    • 3.5 Bàn lu ận (61)
  • Chương 4: Mô hình đề xuất (63)
    • 4.1 Mô hình tham khảo (63)
    • 4.2 Phương pháp đánh giá (64)
    • 4.3 Tập dữ liệu và phương pháp xử lý (64)
    • 4.4 Đề xuất 1: Sử dụng cơ chế lựa chọn của NSGA-II (68)
    • 4.5 Đề xuất 2: Sử dụng cơ chế lựa chọn của NSGA-III (71)
    • 4.6 Đánh giá (73)
  • Chương 5: Kết luận (77)

Nội dung

Giới thiệu đề tài

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

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

Bài toán xếp lịch nhiều người nhiều nhóm đặt ra nhu cầu sắp xếp lịch trình công việc cho nhiều cá nhân, mỗi cá nhân có thể thuộc nhiều nhóm khác nhau Tìm ra lịch trình hiệu quả giúp tiết kiệm thời gian, nguồn lực, cải thiện hiệu suất tổ chức Bài toán này phức tạp hơn xếp lịch nhóm truyền thống do có nhiều mục tiêu cần thỏa mãn ngoài tổng thời gian xử lý ngắn nhất.

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

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

- Lập lịch ràng buộc nguồn lực là một loại lập lịch sắp xếp thời gian sử dụng các nguồn lực một cách có hiệu quả nhất, đảm bảo tuân thủ các ràng buộc về nguồn lự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ự

Scheduler đóng vai trò như bộ lập lịch quyết định nhiệm vụ nào sẽ tiếp tục được thực hiện Lập lịch nhiệm vụ và phân bổ tài nguyên là hai khía cạnh quan trọng trong điện toán đám mây Nhiều nghiên cứu đã được tiến hành để tìm kiếm các chiến lược phân bổ nhiệm vụ hợp lý trong môi trường đám mây, chẳng hạn như phương pháp kết hợp MAHP, BATS, BAR, LEPT và chia để trị để 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

4 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

Thuật toán di truyền đã được Gholami (2019) áp dụng để giải quyết bài toán Lập lịch công việc nhà máy (Job Shop Scheduling) trong sản xuất ô tô, cho kết quả cải thiện năng suất và giảm thời gian chờ Nghiên cứu này tập trung vào bài toán Lập lịch công việc trên nhiều nhóm với mục tiêu đa dạng, là một hướng trong nghiên cứu Lập lịch công việc Trình bày các dạng bài toán Lập lịch công việc cơ bản giúp hiểu rõ hơn về bài toán được nghiên cứu.

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 J i (i = 1, ,n) và m khung thời trống W j (j = 1, , m) Trong mỗi công việc J i còn có các thông tin liên quan như sau:

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

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

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

• Các công việc có thể chia nhỏ p i để 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 split min đị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 C i là thời gian hoàn thành công việc J i 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

6 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 J i như sau:

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

M ục tiêu đề tài

Mục tiêu của 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” được xác định như sau:

• 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 để hiểu rõ vấn đề và các yêu cầu cơ bản của nó

• Nghiên cứu và á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

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

Từ các nhiệm vụ trên, tác giả xác định các nhiệm vụ cho luận văn như sau:

• 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

Gi ới hạn đề tài

Giới hạn của đề tài 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:

Trong bài toán xếp lịch trên nhiều nhóm, thứ tự ưu tiên công việc ảnh hưởng đến hiệu suất và chất lượng lịch trình Tuy nhiên, đề tài này giả định các công việc có thể hoàn thành mà không phụ thuộc vào thứ tự ưu tiên.

Bài toán xếp lịch trên nhiều nhóm đa mục tiêu phức tạp đòi hỏi các giải thuật tối ưu hóa mạnh mẽ Trong nghiên cứu này, hai giải thuật di truyền nổi bật, NSGA-II và NSGA-III, được sử dụng để giải quyết bài toán này Việc lựa chọn các giải thuật này nhằm mục đích so sánh hiệu quả và đánh giá khả năng giải quyết vấn đề của chúng đối với bài toán được đề cập.

• Tập dữ liệu được sử dụng thuộc dự án POC Biển Đông

Đó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

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

• Chương 3, CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN: cung 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

Cơ sở lý thuyết

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

• Độ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

Mã hóa đóng vai trò quan trọng trong giải thuật di truyền (GA), giúp thể hiện các giải pháp ứng viên dưới dạng tập hợp các thuộc tính (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, nhiều cá thể được chọn lọc định hướng từ tập hợp hiện thời (dựa vào thể trạng ), được

15 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) = x 2 – 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

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

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

Simulated Binary Crossover (SBX) là một phương pháp nhân chéo trong giải thuật di truyề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

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 nhiên, NSGA-II được đánh giá là giải quyết tốt đối với các bài toán đa mục tiêu

Đối với bài toán nhiều mục tiêu, tìm ra giải pháp tối ưu cho tất cả các mục tiêu là một thách thức, vì không có thước đo duy nhất nào để đánh giá độ tốt của các giải pháp Trong trường hợp này, thuật toán NSGA-II sử dụng cơ chế xếp hạng các giải pháp không bị thống trị và chỉ số crowding distance để lựa chọn các cá thể mới Cơ chế xếp hạng các giải pháp không bị thống trị xác định các giải pháp nằm trên các mặt trận Pareto khác nhau, trong khi chỉ số crowding distance đo lường khoảng cách của một giải pháp đến các giải pháp khác trên cùng mặt trận Pareto.

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

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

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

Hình 2.7 cho thấy phương án D có giá trị F1 và F2 tốt nhất, nên thuộc nhóm đầu tiên Phương án B và C có giá trị F1 và F2 đều tốt hơn A, nhưng không vượt trội nhau nên thuộc nhóm thứ 2 Phương án A còn lại thuộc nhóm cuối cùng Cơ chế so sánh trội (Non-dominated sorting) này phân hạng phương án, hạng càng thấp thì phương án 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

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

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à n p = 0

2 Tiếp theo đi đến lần lượt các giải pháp q trong tập hợp S p 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à n q 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

26 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 f1 f2 f3

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

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

Việc tính toán Crowding-distance đóng vai trò quan trọng trong việc duy trì sự đa dạng của các giải pháp Khi lựa chọn giải pháp từ một nhóm cùng lớp, thuật toán có xu hướng chọn giải pháp có khoảng cách tắc nghẽn lớn hơn Lý do là vì khoảng cách tắc nghẽn lớn biểu thị độ khác biệt đáng kể giữa giải pháp đó và các giải pháp khác Do đó, việc chọn giải pháp có khoảng cách tắc nghẽn lớn giúp tránh tình trạng rơi vào các giải pháp cục bộ và tạo điều kiện cho thuật toán tiếp tục tìm kiếm các giải pháp mới tốt hơn.

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ính khoảng cách giữa phương án đầu tiên và phương án cuối cùng bằng một số dương lớn Sau đó tính khoảng cách của phương án i theo như sau:

Trong đó I[i].m là giá trị của mục tiêu thứ m của giải pháp i, f m max và fm minlà 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

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)

• Đối với 2 phương án ở cùng 1 hạng, mật độ được dung để đánh giá, trong đó mật độ càng lớp càng được ưu tiên

Với hướng nghiên cứu nhằm xếp lịch nhiều nhóm với nhiều mục tiêu cần tối ưu, để đưa ra quyết định trong việc chọn giải thuật NSGA-II cho bài toán, tác giả đã nhìn vào một số ưu điểm của giải thuật như sau:

• Sử dụng kỹ thuật sắp xếp non-dminated sorting nhằm tìm ra các giải pháp gần với phương pháp tối ưu nhất có thể (đường Pareto)

• Tính toán khoảng cách đông đúc (crowding distance) để cung cấp sự đa dạng của quần thể

• Mô phỏng quá trình tiến hóa trong tự nhiên nhằm giúp giữ lại các cá thể (các phương án) tốt nhất qua mỗi thế hệ

Gi ải thuật NSGA-III

Thuật toán tối ưu hóa tiến hóa đa mục tiêu NSGA-III (Non-dominated Sorting Genetic Algorithm III) là phiên bản nâng cấp của NSGA-II, được sử dụng để giải quyết các bài toán có nhiều hơn hai mục tiêu NSGA-III duy trì sự đa dạng của quần thể bằng chiến lược lựa chọn dựa trên các điểm tham chiếu, giúp cải thiện hiệu suất tối ưu hóa so với thuật toán tiền nhiệm.

Hình 2.1: Sơ đồ giải thuật:

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

Sau khi đã trải qua các bước nhân chéo, đột biến và thực hiện Non-dominated Sorting, NSGA-III sẽ thực hiện việc chuẩn hóa (normalize) các cá thể trong không gian mục tiêu

Một loạt các điểm reference point sẽ được sử tạo ra để duy trì sự đa dạng Số lượng các điểm reference point phụ thuộc vào số lượng các mục tiêu của bài toán tối ưu hóa đa mục tiêu Một cách thường được sử dụng để tính số lượng các điểm reference point là sử dụng công thức sau [17]:

• N là số lượng các điểm reference point

• M là số lượng các mục tiêu

• P là một số nguyên dương

Ví dụ, đối với bài toán có M=3 mục tiêu, và chọn chia mỗi trục mục tiêu làm 4

(P=4), lúc này 15 điểm reference points trên normalized hyperplane sẽ được dựng như hình 2.14

Hình 2.16: 15 điểm reference points với M=3, P=4 [15] Để thực hiện công việc chuẩn hóa, NSGA-III sẽ cần tính Idea-point, là giá trị cực tiểu của mỗi hàm mục tiêu (z i min )

Các điểm extreme point cho mỗi trục mục tiêu cũng sẽ được tính toán bằng cách tìm cá thể có giá trị Achievement Scalarization Function (ASF) cho mỗi hàm mục tiêu là nhỏ nhất cùng weight-vertor wtương ứng Weight-vector w được tạo ra với nguyên tắc ứng với hàm mục tiêu nào thì vị trí đó sẽ mang giá trị là 1, còn lại sẽ là 1e -6 Ví dụ weight-vector w 1 cho hàm mục tiêu thứ 1 là [1, 1e -6 , 1e -6 ]

Hàm Achievement Scalarization Function (ASF)

Với f’ i (x) = fi(x) – zi min x là cá thể và f là hàm mục tiêu của cá thể x

Giá sử ta có một quần thể có 5 cá thể có 3 hàm mục tiêu như sau:

Lúc này idea-point sẽ là z min = (0.1, 0.1, 0.1)

Ví dụ ta cần tính điểm extreme point cho mục tiêu thứ 3 (z 3,max ) với weight- vector w 3 = [1e -6 , 1e -6 , 1], ta tính giá trị ASF cho từng các thể trên như sau:

Tương tự như vậy, ta có

Lấy cá thể có giá trị ASF bé nhất, ta thu được extreme point của hàm mục tiêu thứ 3 là z 3,max = C5 = (0.4, 0.4, 0.9)

Làm tương tự như vậy đối với 2 trục mục tiêu còn lại, ta thu tiếp được hai điểm z 1,max và z 2, max , dựng một mặt phẳn đi qua 3 điểm extreme point và tìm được 3 điểm cắt với các trục mục tiêu là a1,a2,a3như hình 2.15

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]

Lúc này, giá trị các hàm mục tiêu của mỗi cá thể sẽ được chuẩn hóa (normalize) bằng công thức sau: fi n(x) = 𝑓𝑓 𝑚𝑚 ′ (𝑥𝑥)

𝑎𝑎 𝑚𝑚 −𝑧𝑧 𝑚𝑚 𝑚𝑚𝑚𝑚𝑚𝑚 với i = 1, 2,… ,M Sau khi đã thực hiện chuẩn hóa các cá thể, NSGA-III sẽ phân loại điểm này về với các đường reference tương ứng (associate operation), bằng cách tính khoảng cách giữa cá thể và đường reference Khâu này được thể hiện qua hình 2.16

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

Lựa chọn cá thể (selection) Ở mỗi lớp xếp hạng được sinh ra từ việc thực hiện Non-dominated Sorting, NSGA- III sẽ thực hiện ngẫu nhiên việc lựa chọn các đường reference và các cá thể có khoảng cách gần đường reference sẽ được ưu tiên lựa chọn Đây là điểm khác biệt so với NSGA-II khi mà việc lựa chọn ưu tiên các cá thể có chỉ số crowding-distance lớn

Các công trình nghiên cứu liên quan

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

objective optimization) Ở giai đoạn này, các bài toán lập lịch truyền thống chỉ tập trung vào một mục tiêu duy nhất là cực tiểu thời gian thực hiện công việc Đây được coi bài toán tối ưu đơn mục tiêu cổ điển Một số hướng tiếp cận truyền thống đối với dạng toán này có thể kể đến như giải thuật nhánh và cận (branch and bound), quy hoạch động (dynamic programing) hoặc lập trình luồng mạng (network flow programming) Ngoài ra còn một số phương pháp khác như tabu search hoặc genetic algorithm

Khi đối mặt với vấn đề tìm ra phương án tối ưu trên một tập hợp hữu hạn các phương án, một cách tiếp cận hiển nhiên là liệt kê tất cả các phương án rồi chọn phương án tốt nhất Tuy nhiên, cách tiếp cận như vậy là không khả thi về mặt tính toán Cơ sở lý luận đằng sau thuật toán rẽ nhánh và ràng buộc là để giảm số lượng các phương án thay thế cần được xem xét bằng cách liên tục phân chia vấn đề thành một tập các bài toán con nhỏ hơn và sử dụng thông tin cục bộ dưới dạng giới hạn để loại bỏ những vấn đề có thể được chỉ ra là tối ưu Các phương thức triển khai nhánh và ràng buộc đơn giản nhất là những triển khai dựa trên cách tiếp cận mang tính xây dựng, trong đó các giải pháp từng phần được xây dựng dựa trên từng phần tử một

Một số vấn đề tối ưu sử dụng giải thuật này đã được công bố như node coloring [24], knapsack problems [25], The traveling salesman problem [26] Ưu điểm:

• Giải thuật Branch and Bound đảm bảo tìm kiếm toàn bộ không gian giải pháp và đưa ra kết quả tối ưu

• Nếu được thiết kế và triển khai đúng cách, nó có thể đạt hiệu suất tốt trong việc giải quyết các bài toán tối ưu

• Thường có độ phức tạp tính toán cao, đặc biệt là khi kích thước của không gian giải pháp lớn

• Yêu cầu quá trình phân nhánh và xác định các giới hạn mức giá trị tốt nhất có thể, điều này đòi hỏi sự hiểu biết sâu về bài toán và khả năng xây dựng hàm giá trị tối ưu

Giống như branch and bound, lập trình động (dynamic programing) là một quy trình giải quyết các vấn đề tối ưu hóa bằng cách chia nhỏ chúng thành các vấn đề đơn giản hơn Nó giải quyết vấn đề theo từng giai đoạn, giải quyết tất cả các lựa chọn ở một giai đoạn cụ thể trước khi chuyển sang giai đoạn tiếp theo Tuy nhiên, không giống như các cấp độ của cây trong branch and bound phân vùng vấn đề bằng cách thêm các ràng buộc, các giai đoạn trong dynamic programing được liên kết bởi một mối quan hệ đệ quy

Quy hoạch động được sử dụng trong vấn đề lập kế hoạch sản xuất [27] Các ví dụ khác như mô hình nhiều giai đoạn cho chiến lược bán vé [28], mô hình tối ưu hóa tuyến đường đi trong định hướng [29] Ưu điểm:

• Có thể giải quyết hiệu quả các bài toán tối ưu có cấu trúc lặp lại

• Tận dụng được tính chất chồng chéo của các bài toán con để giảm thời gian tính toán Nhược điểm:

• Đòi hỏi bộ nhớ lớn hơn do cần lưu trữ các bảng kết quả trung gian

• Không phù hợp với các bài toán không có tính chất chồng chéo hoặc cấu trúc lặp lại rõ ràng

Lập trình luồng mạng giải quyết các bài toán có thể mô hình hóa thành dạng luồng hàng hóa trong mạng Thoạt đầu, các mô hình này có vẻ hạn chế về ứng dụng, chỉ áp dụng cho dòng điện trong mạng điện, dòng chất lỏng trong mạng đường ống, luồng thông tin trong mạng truyền thông hoặc luồng giao thông Tuy nhiên, phạm vi của chúng rộng hơn rất nhiều, bao gồm cả các bài toán đồ thị và mạng tưởng chừng không liên quan đến luồng như đường đi ngắn nhất, cây bao trùm, khớp và định vị Ngoài ra, chúng còn mô hình hóa được nhiều bài toán khác như lập kế hoạch sản xuất, lập lịch trình, tối ưu hóa vận chuyển và quản lý chuỗi cung ứng.

Phân tích tia X trong y tế sử dụng các thuật toán tối ưu hóa, chẳng hạn như Ford–Fulkerson labeling và The Out-of-Kilter Những thuật toán này giúp phân bổ các nhiệm vụ một cách hiệu quả, đảm bảo thời gian chiếu xạ tối ưu và giảm liều lượng bức xạ cho bệnh nhân.

• Rất hiệu quả trong việc giải quyết các bài toán quản lý tài nguyên và luồng mạng

• Có nhiều giải thuật tối ưu khác nhau, như giải thuật Ford-Fulkerson và giải thuật Dinic, phù hợp với nhiều loại bài toán khác nhau

• Có thể gặp khó khăn trong việc xử lý các ràng buộc phức tạp và không gian giải pháp lớn

• Đòi hỏi kiến thức chuyên sâu về lý thuyết đồ thị và mạng lưới

Năm 1986, Fred Glover đề xuất một cách tiếp cận mới, mà ông gọi là tìm kiếm tabu, cho phép leo đồi (hill climbing) nhằm vượt qua tối ưu cục bộ Trên thực tế, nhiều yếu tố của đề xuất tìm kiếm tabu đầu tiên này, và một số yếu tố của các công thức sau này, đã được giới thiệu (Glover 1977), bao gồm trí nhớ ngắn hạn để ngăn chặn sự đảo ngược của các động thái gần đây và trí nhớ tần số dài hạn hơn để củng cố sức hấp dẫn các thành phần Nguyên tắc cơ bản của tìm kiếm tabu là theo đuổi tìm kiếm bất cứ khi nào gặp phải tối ưu cục bộ bằng cách cho phép di chuyển không cải thiện; việc quay trở lại các giải pháp đã truy cập trước đó bị ngăn chặn bằng cách sử dụng các bộ nhớ, được gọi là danh sách tabu, ghi lại lịch sử tìm kiếm gần đây Ý tưởng chính để khai thác thông tin để hướng dẫn tìm kiếm có thể được liên kết với các phương pháp tìm kiếm thông tin được đề xuất vào cuối những năm 1970 trong lĩnh vực trí tuệ nhân tạo (Nilsson 1980)

Trong [32], nhóm tác giả đã sử dụng tabu search trong việc giải quyết bài toán job shop scheduling problem trong việc phân công n jobs cho m machines Ngoài ra, tabu search cũng được sử dụng trong việc tối ưu chi phí thiết kế cho mạng lưới nước [33] Ưu điểm:

• Tìm kiếm không gian giải pháp một cách linh hoạt và đa dạng

• Có khả năng tránh rơi vào các vết cạn và cung cấp giải pháp tốt trong thời gian hợp lý

• Thường yêu cầu số lượng lớn tham số đầu vào và có thời gian chạy dài

• Có thể không đảm bảo tìm được giải pháp tối ưu toàn cục

Giải thuật tiến hóa (GA) lần đầu tiên được đưa ra bới giáo sư John Holland vào năm 1975 Nguồn cảm hứng chính của giải thuật dựa trên sự sinh sản và di truyền của của các sinh vật thông qua giao phối và đột biến của nhiễm sắc thể (chromosome) trên các thành phần gen DNA nhằm sinh ra thế hệ tiếp theo

Thông qua giải thuật này, một đáp án được biểu thị bằng một nhiễm sắc thể, trong đó các tham số của đáp án là các đoạn gen của nhiễm sắc thể, và thông qua đột biến và giao phối, để tạo ra các thế hệ tiếp theo, tức là các đáp án tiềm năng khác nhau Sau cùng, thông qua các điều kiện của bài toán, xác định xem liệu giải pháp đó nên được giữ lại hay bỏ đi khỏi đợt đột biến và giao phối tiếp theo Như vậy, sau mỗi thế hệ, các cá thể tốt hơn luôn được giữ lại, cho đến khi đạt được các điều kiện mong muốn

Trong [10], nhóm tác giả đã giải quyết bài toán xếp lịch công việc (job shop schedling) đối với n công việc và m máy Trong [23], nhóm tác giả đã thực hiện giải thuật tiến hóa cho việc phân chia nhân sự cho công việc trong dự án dựa trên năng lực của nhân viên Ưu điểm:

• Đa dạng hóa giải pháp và khả năng tìm kiếm không gian giải pháp rộng

• Có thể áp dụng cho các bài toán tối ưu không liên tục và không khả vi

• Không đảm bảo tìm kiếm được giải pháp tối ưu toàn cục

• Có thể yêu cầu số lượng lớn tham số đầu vào và có thời gian chạy dài.

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

Bài toán này được phát biểu như sau:

Tìm cực đại/cực tiểu hàm f m (x), m = 1, 2, …, m

So với các vấn đề chỉ có một mục tiêu cần thỏa mãn (single-objective optimization problem), ở đó có thể dễ dàng xác định được phương án duy nhất thỏa mãn bằng việc so sánh giá trị 1 hàm mục tiêu giữa ác phương án , thì đối với bài toán tối ưu đa mục tiêu (multi- objective optimization problem), nhiệm vụ là:

• Cố gắng tìm được các phương án tối ưu (đường pareto), nơi mà không có phương án nào trội hơn phương án nào

• Duy trì một tập hợp các giải pháp đa dạng nhất có thể

Có hai cách tiếp cận chung để tối ưu hóa đa mục tiêu Một là kết hợp các hàm mục tiêu riêng lẻ thành một hàm tổng hợp duy nhất hoặc chuyển tất cả trừ một mục tiêu sang tập ràng buộc Trong trường hợp trước, có thể xác định một mục tiêu duy nhất bằng các phương pháp như ε-Constraint Method, Weighted-Sum Approach, v.v., nhưng vấn đề nằm ở việc lựa chọn đúng trọng số hoặc hàm tiện ích để mô tả sở thích của người ra quyết định Trong thực tế, có thể rất khó để chọn đúng và chính xác các trọng số này, ngay cả đối với người quen thuộc với vấn đề Đặc biệt khi cần phải mở rộng quy mô giữa các mục tiêu, hoặc những nhiễu loạn nhỏ trong trọng số đôi khi có thể dẫn đến các giải pháp hoàn toàn khác nhau Đối với chuyển đổi các mục tiêu đến tập hợp ràng buộc, một giá trị ràng buộc sẽ phải được thiết lập cho từng mục tiêu trước đây Điều này có thể khá tùy tiện Trong cả hai trường hợp, một phương pháp tối ưu hóa sẽ trả về một giải pháp duy nhất thay vì một tập hợp các giải pháp có thể được kiểm tra để đánh đổi Vì lý do này, những người ra quyết định thường thích phương án thứ

2, một tập hợp các giải pháp tốt (xác định đường pareto) thỏa mãn nhiều mục tiêu

Phương pháp Weighted-Sum Approach đưa tập hợp các mục tiêu thành một mục tiêu duy nhất bằng cách nhân trước từng mục tiêu với trọng số do người dùng cung cấp:

Koski và Silvennoinen [34] đưa ra ứng dụng ban đầu và sử dụng phương pháp tổng trọng số để thu được nhiều nghiệm tối ưu Pareto với sự thay đổi có hệ thống về trọng số, đồng thời giảm thiểu khối lượng và chuyển vị nút của giàn không gian bốn thanh Trong [35] áp dụng phương pháp này để tối ưu hóa cấu trúc liên kết, tối thiểu hóa sự tuân thủ và tối đa hóa chế độ đầu tiên của tần số tự nhiên, cho các bài toán ứng suất phẳng hai chiều Một lần nữa, các trọng số được thay đổi để mang lại một biểu diễn của tập hợp tối ưu Pareto Ưu điểm:

• Phương pháp này khá đơn giản và dễ triển khai

• Cho phép người dùng đưa ra các trọng số khác nhau cho các mục tiêu để tạo ra các giải pháp tối ưu khác nhau

• Cung cấp một tập hợp các giải pháp tối ưu, tạo ra một biểu đồ Pareto trong không gian mục tiêu

• Cách tiếp cận này yêu cầu người dùng phải biết trước các trọng số chính xác để xây dựng hàm mục tiêu tổng hợp

• Không cho phép khám phá toàn bộ không gian giải pháp Pareto, chỉ tạo ra một tập hữu hạn các giải pháp

• Không đảm bảo tìm kiếm được giải pháp tối ưu toàn cục

3.2.2 ε-Constraint Method Để giảm bớt những khó khăn mà phương pháp tổng trọng số gặp phải trong việc giải các bài toán có không gian mục tiêu không lồi, phương pháp ràng buộc ε được sử dụng Trong [36] đã đề xuất cải tổ MOOP bằng cách chỉ giữ lại một trong các các mục tiêu và hạn chế phần còn lại của các mục tiêu trong các giá trị do người dùng chỉ định Các vấn đề sửa đổi là như sau:

Một số vấn đề tối ưu sử dụng phương pháp ε-Constraint Method đã được công bố như lập kế hoạch công suất phản kháng tối ưu đa mục tiêu trong điều kiện không chắc chắn về nhu cầu phụ tải và phát điện gió [37], lập lịch tối ưu đa mục tiêu cho lưới điện siêu nhỏ CCHP [38] Ưu điểm:

• Đưa ra một cách tiếp cận linh hoạt trong việc xác định các ràng buộc cho từng mục tiêu

• Cho phép người dùng xác định một giá trị ε để xác định mức độ ưu tiên giữa các mục tiêu

• Cung cấp một tập hợp các giải pháp tối ưu Pareto, cho phép người dùng lựa chọn giải pháp tốt nhất dựa trên sở thích cá nhân

• Yêu cầu xác định các giá trị ε và ràng buộc cho từng mục tiêu, điều này có thể khá phức tạp và đòi hỏi sự hiểu biết sâu về bài toán

• Việc tìm kiếm không gian giải pháp Pareto rất phụ thuộc vào việc chọn các giá trị ε phù hợp

• Không đảm bảo tìm kiếm được giải pháp tối ưu toàn cục.

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

Evolutionary Algorithm (EA), giải thuật dựa trên lý thuyết về tiến hóa tự nhiên, là một phương pháp phổ biến được lựa chọn đối với các bài toán tối ưu đa mục tiêu Nó là một phần trong lĩnh vực Trí tuệ nhân tạo và thuộc vào họ các thuật toán tối ưu hóa toàn cục Giải thuật

43 tiến hóa sử dụng các khái niệm như cá thể, quần thể và quá trình lai ghép để tìm ra giải pháp tối ưu cho một vấn đề cụ thể

Nền tảng của thuật toán tiến hóa dựa trên ý tưởng tiến hóa tự nhiên, trong đó những cá thể thích nghi tốt hơn có khả năng sinh sản và truyền các đặc điểm ưu việt cho các thế hệ tiếp theo Tương tự, trong thuật toán tiến hóa, chúng ta bắt đầu với một quần thể gồm các cá thể ngẫu nhiên và áp dụng các phép toán như lai ghép, đột biến và chọn lọc để tạo ra các thế hệ mới với các cá thể có chất lượng tốt hơn.

Một số ưu điểm so với 2 phương pháp truyền thống đã nêu trên:

• Kết quả là một tập hợp các phương án

• So với các phương pháp truyền thống, tính toán và ra quyết định dựa 1 ứng cử viên, Evolutionary Algorithm sẽ dựa trên nhiều ứng cử viên để làm việc này

Hiện các hướng nghiên cứu chính đối với giải thuật tiến hóa bao gồm 4 lĩnh vực sau:

• Genetic algorithm: Giải thuật tiến hóa phổ biến nhất là Thuật toán di truyền (GA) do nó cung cấp một cái nhìn rõ ràng về quá trình tiến hóa tự nhiên trên máy tính GA thường được áp dụng rộng rãi [11] trong các vấn đề liên quan đến học máy, nhận dạng mẫu và tối ưu hóa Thuật toán này được đề xuất lần đầu bởi Holland và nhóm nghiên cứu của ông vào năm 1970, chủ yếu để tìm kiếm và thiết kế các hệ thống thích ứng GA sử dụng các toán tử tái tổ hợp và đột biến để tìm ra giải pháp cho một vấn đề cụ thể Giải pháp được biểu diễn dưới dạng chuỗi số (thường là chuỗi nhị phân truyền thống), trong đó mỗi bit trong chuỗi đại diện cho một gen

• Genetic Programming: phương pháp tối ưu hóa dựa trên các nguyên tắc tiến hóa và di truyền Nó thuộc loại thuật toán tiến hóa và được phát triển bởi John Koza vào những năm 1990 GP được sử dụng để tạo ra các chương trình máy tính tự động mà có khả năng giải quyết các vấn đề phức tạp trong lĩnh vực trí tuệ nhân tạo

• Evolutionary Programming: phương pháp tối ưu hóa được áp dụng trong lĩnh vực trí tuệ nhân tạo và tối ưu hóa Nó thuộc về họ các thuật toán tiến hóa và được lấy cảm hứng từ quá trình tiến hóa tự nhiên trong tự nhiên EP được phát triển bởi Lawrence

J Fogel và các đồng nghiệp của ông vào những năm 1960 và 1970

Chiến lược Tiến hóa (ES) là phương pháp tối ưu hóa mô phỏng quá trình tiến hóa và di truyền Ra đời vào những năm 1960 và 1970, ES tìm kiếm các giải pháp tối ưu bằng cách thay đổi và tiến hóa các tham số của phân phối xác suất.

Tiếp theo, tác giả sẽ trình bày một số giải thuật thuộc lĩnh vực giải thuật di truyền áp dụng cho các bài toán tối ưu đa mục tiêu Các giải thuật này mô phỏng quá trình tiến hóa tự nhiên để tìm kiếm các giải pháp tối ưu cho các bài toán complex, nơi có nhiều mục tiêu cần tối ưu hóa đồng thời Bằng cách tạo ra một quần thể các cá thể ban đầu và trải qua quá trình chọn lọc, lai ghép và đột biến, giải thuật di truyền tìm ra các cá thể tối ưu dần dần, dẫn đến giải pháp cân bằng tốt nhất cho tất cả các mục tiêu.

Vector Evaluated Genetic Algorithm (VEGA)

Phiên bản đầu tiên của MOEA rất đơn giản Một ví dụ điển hình về điều này là Vector Evaluated Genetic Algorithm (VEGA) [39], trong đó số lượng quần thể được chia thành nhiều quần thể phụ bằng số lượng mục tiêu của MOP cần giải quyết (chỉ các vấn đề có hai mục tiêu là thường được xem xét tại thời điểm đó) Sau đó, các giải pháp trong mỗi quần thể phụ được chọn dựa trên hiệu suất của chúng đối với một mục tiêu duy nhất (ví dụ: các cá nhân trong quần thể phụ đầu tiên được chọn dựa trên hiệu suất của mục tiêu đầu tiên) Sau đó, các cá nhân của tất cả các quần thể nhỏ được xáo trộn với mục đích kết hợp lại các giải pháp tốt nhất trong mục tiêu đầu tiên với những giải pháp tốt nhất trong mục tiêu thứ hai Khi được kết hợp với lựa chọn theo tỷ lệ (ví dụ: phương pháp bánh xe roulette), VEGA đã tạo ra các giải pháp tương tự như các giải pháp thu được khi sử dụng hàm tổng hợp tuyến tính để kết hợp tất cả các các hàm mục tiêu thành một giá trị vô hướng duy nhất Ưu điểm của VEGA là ít phức tạp về thời gian hơn vì không cần chuyển đổi các giá trị đa mục tiêu thành một giá trị, không cần tính toán mức độ chi phối của từng cá nhân dựa trên mối quan hệ chi phối Tuy nhiên, các đặc điểm của VEGA gây ra sai lệch lựa chọn, chất lượng của các giải pháp thu được sẽ không tốt do các phương án vượt trội có xu hướng hội tụ trong một mục tiêu, nhưng kém ở các mục tiêu khác

Multi-Objective Genetic Algorithm (MOGA)

Goldberg trong cuốn sách chuyên đề của mình về thuật toán di truyền [40] một cơ chế gọi là xếp hạng Pareto cho sơ đồ lựa chọn của MOEA Ý tưởng cốt lõi của xếp hạng Pareto là xếp hạng dân số của một thuật toán tiến hóa dựa trên tính tối ưu Pareto, sao cho các giải pháp không bị chi phối có được thứ hạng cao nhất (tốt nhất) có thể và được lấy mẫu ở cùng một tỷ lệ (nghĩa là tất cả các giải pháp không bị chi phối có cùng xác suất của sự sống còn)

Tiếp nối ý tưởng trên, Fonseca và Fleming [42] đã đề xuất thuật toán di truyền đa mục tiêu (Multi-Objective Genetic Algorithm - MOGA), trong đó quá trình xếp hạng được thực hiện một lần duy nhất bằng cách so sánh từng cá thể với tất cả các cá thể khác theo quan hệ tối ưu Pareto Tuy nhiên, thuật toán MOGA thường có nhược điểm là tốc độ hội tụ chậm.

Strength Pareto Evolutionary Algorithm (SPEA)

Để nâng cao hiệu suất của SPEA, Zitzler đã giới thiệu thuật toán cắt cụm Đây là phương pháp lưu trữ các giải pháp không thống trị trong một kho lưu trữ bên ngoài, đồng thời cắt giảm kho lưu trữ khi đạt đến giới hạn do người dùng xác định Tuy nhiên, việc xác định các thông số phân cụm vẫn là thách thức đối với SPEA.

Nondominated Sorting Genetic Algorithm-II (NSGA-II)

Nondominated Sorting Genetic Algorithm-II (NSGA-II) [43] xác định tập hợp các phương án tối ưu thông qua cơ chế xếp hạng hiệu quả các phương án qua mỗi thế hệ (Nondominated Sorting), đồng thời duy trì sự đa dạng bằng việc tính toán chỉ số crowding- distance Trong [44], NSGA-II tỏ ra hiệu qua hơn hẳn so với SPEA trong việc giải quyết bài toán KUR Trong [9] nhóm tác giả đã áp dụng NSGA-II trong việc giải bài toán phân chia công việc đa mục tiêu

Nondominated Sorting Genetic Algorithm-III (NSGA-III)

NSGA-III (Non-dominated Sorting Genetic Algorithm III) là một thuật toán tiến hóa đa mục tiêu được phát triển để giải quyết các bài toán tối ưu hóa đa mục tiêu Nó là một phiên bản cải tiến của NSGA-II và được đề xuất bởi Deb và các đồng nghiệp vào năm 2013 [15].

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

Phương pháp học máy đã trở thành một công cụ mạnh mẽ trong việc giải quyết bài toán xếp lịch đa mục tiêu từ giai đoạn 2010 đến nay Các thuật toán học máy có thể học từ dữ liệu và tự động cải thiện hiệu suất thông qua kinh nghiệm

Các phương pháp học máy thường được sử dụng trong việc giải quyết bài toán xếp lịch đa mục tiêu có thể xem xét như các thuật toán phân loại, học có giám sát, học không giám sát, học sâu và học tăng cường Các thuật toán này có thể được sử dụng để dự đoán và tối ưu hóa các mục tiêu dựa trên dữ liệu lịch sử

Trong giai đoạn 2010 trở đi, phương pháp học sâu (DL) đã nổi lên như một công cụ mạnh mẽ để giải quyết vấn đề xếp lịch đa mục tiêu Học sâu tập trung vào việc thiết kế và huấn luyện các mô hình mạng neural sâu, giúp hiểu và biểu diễn dữ liệu phức tạp Ứng dụng học sâu trong xếp lịch mang lại nhiều lợi thế đáng kể, như giảm hình phạt cho sự sớm và muộn bằng cách sử dụng học sâu tăng cường (DRL) để giải quyết vấn đề xếp lịch công việc linh hoạt động (DFJSP).

• Khả năng biểu diễn mô hình phức tạp: Học sâu cho phép mô hình hóa quan hệ phức tạp giữa các yếu tố trong bài toán xếp lịch Các mô hình mạng neural sâu có khả năng học và tự tinh chỉnh các đặc trưng quan trọng từ dữ liệu đầu vào, giúp tạo ra các lịch trình tối ưu

• Tính linh hoạt và khả năng tự động hóa: Học sâu cho phép tự động hóa quá trình xây dựng và tối ưu hóa lịch trình Các mô hình mạng neural sâu có thể được huấn luyện thông qua quá trình tối ưu động (end-to-end), từ dữ liệu đầu vào đến lịch trình tối ưu, mà không cần các quy tắc cụ thể được lập trình

Mặc dù học sâu mang lại nhiều lợi ích, nó cũng có một số nhược điểm:

• Đòi hỏi dữ liệu lớn: Học sâu thường yêu cầu một lượng lớn dữ liệu huấn luyện để đạt được hiệu suất tốt Trong bài toán xếp lịch đa mục tiêu, việc có đủ dữ liệu huấn luyện chất lượng và đa dạng có thể là một thách thức

• Khó hiểu và khó giải thích: Các mô hình mạng neural sâu thường là mô hình phức tạp với nhiều lớp và tham số Điều này làm cho chúng khó hiểu và khó giải thích

Trong bài toán xếp lịch đa mục tiêu, việc giải thích lý do một lịch trình được tạo ra cũng có thể là một thách thức

3.4.2 Phương pháp học tăng cường

Phương pháp học tăng cường (reinforcement learning) đã được áp dụng để giải quyết bài toán xếp lịch đa mục tiêu một cách hiệu quả Tăng cường là một lĩnh vực của học máy tập

47 trung vào việc huấn luyện các mô hình để tìm hiểu và tối ưu hóa hành vi dựa trên phản hồi từ môi trường Trong [46], nhóm tác giả sử dụng một thuật toán học tăng cường dựa trên nền tảng Q-learning để tối ưu hóa các quyết định lập lịch trên một lưới điện đáp ứng Bài báo cũng đề xuất một cách tiếp cận thực nghiệm để đánh giá hiệu suất của thuật toán

Phương pháp tăng cường mang lại một số ưu điểm quan trọng trong việc giải quyết bài toán xếp lịch đa mục tiêu:

• Khả năng tìm hiểu và tối ưu hóa qua trải nghiệm: Phương pháp tăng cường cho phép mô hình học thông qua việc tương tác với môi trường và nhận phản hồi từ nó Bằng cách thử và sai, mô hình có khả năng tìm hiểu và tối ưu hóa các hành vi xếp lịch dựa trên các kết quả trực tiếp từ môi trường

• Độ linh hoạt và khả năng thích ứng: Phương pháp tăng cường có thể thích ứng với các ràng buộc và mục tiêu thay đổi trong bài toán xếp lịch đa mục tiêu Mô hình có thể được điều chỉnh và cải thiện theo thời gian, đồng thời ứng phó với sự thay đổi của môi trường và yêu cầu mới

Mặc dù phương pháp tăng cường có nhiều ưu điểm, nó cũng đặt ra một số nhược điểm:

• Đòi hỏi thời gian huấn luyện dài: Phương pháp tăng cường yêu cầu thời gian huấn luyện dài để mô hình có thể học và cải thiện Trong bài toán xếp lịch đa mục tiêu, việc huấn luyện mô hình có thể tốn nhiều thời gian và tài nguyên tính toán

Xác định hàm phần thưởng phù hợp là một thách thức trong đào tạo mô hình học tăng cường, đặc biệt trong bài toán xếp lịch đa mục tiêu Lựa chọn một phần thưởng thích hợp và chính xác rất quan trọng để đảm bảo mô hình có thể học và tối ưu hóa mục tiêu một cách hiệu quả.

3.4.3 Phương pháp học giám sát

Trong giai đoạn 2010-nay, học giám sát đã được ứng dụng hiệu quả trong giải bài toán xếp lịch đa mục tiêu Học giám sát là phương pháp sử dụng dữ liệu huấn luyện đã gán nhãn để huấn luyện mô hình Nghiên cứu trong [47] đề xuất chiến lược lập lịch động dựa trên cửa sổ cuộn và thuật toán tối ưu hóa đa pha sử dụng máy vector hỗ trợ (SVM) Chiến lược này đã chứng minh hiệu quả trong việc giải quyết bài toán xếp lịch công việc linh hoạt động (DFJSP).

Phương pháp học giám sát mang lại một số ưu điểm quan trọng trong việc giải quyết bài toán xếp lịch đa mục tiêu:

• Dễ triển khai và áp dụng: Phương pháp học giám sát dựa trên việc sử dụng dữ liệu huấn luyện đã được gán nhãn Điều này giúp việc triển khai và áp dụng phương pháp trở nên dễ dàng và tiện lợi

Bàn lu ận

Với hướng nghiên cứu nhằm xếp lịch nhiều nhóm với nhiều mục tiêu cần tối ưu (multi- team multi-objective job scheduling), một dạng toán mở rộng multi-objective job scheduling, để đưa ra quyết định trong việc chọn hướng tiếp cận giải thuật di truyền, cụ thể ở đây là giải thuật NSGA-II và NSGA-III cho bài toán, tác giả đã nhìn vào một số ưu điểm của giải thuật như sau:

• Sử dụng kỹ thuật sắp xếp non-dminated sorting nhằm tìm ra các giải pháp gần với phương pháp tối ưu nhất có thể (đường Pareto), kết hợp với các phương án lựa chọn dựa trên chỉ số crowding-distance của NSGA-II hoặc cơ chế chọn các phương án dựa trên các đường reference của NSGA-III

• Mô phỏng quá trình tiến hóa trong tự nhiên thông qua cơ chế nhân chéo và đội biến giúp khám phá được nhiều phương án tiềm năng

• Không cần phải chuẩn bị nhiều tập dữ liệu để huấn luyện trước

Với độ phức tạp của đề tài, khi giờ đây không những phân việc cho nhiều nhóm cùng một lúc mà còn phải thỏa mãn một số mục tiêu khác, tác giả cho rằng việc sử dụng hướng tiếp cận giải thuật di truyền, là phù hợp với yêu cầu bài toán đề ra

Mô hình đề xuất

Mô hình tham khảo

Để thực hiện đề tài này, tác giả tham khảo mô hình được đề xuất trong bài báo

"Multi-objective job shop scheduling using i-NSGA-III" [48], các tác giả đã sử dụng thuật toán di truyền đa mục, cụ thể là NSGA-III để giải quyết bài toán lập lịch công việc trên một nhóm các máy Để áp dụng thuật toán di truyền cho bài toán JSSP, bài báo đã trình bày về cách mã hóa cá thể, phương pháp crossover và mutation, cơ chế lựa chọn như sau:

• Mã hóa cá thể: Mỗi cá thể trong quần thể được mã hóa bằng một vector có độ dài bằng số lượng công việc Mỗi phần tử của vector là một số nguyên dương thể hiện máy móc được chọn để thực hiện công việc tương ứng Ví dụ, nếu có

10 công việc và 3 máy móc, một cá thể có thể được mã hóa như [1, 2, 3, 1, 2,

3, 1, 2, 3, 1], nghĩa là công việc 1 được thực hiện trên máy 1, công việc 2 trên máy 2, v.v

• Phương pháp crossover: Bài báo sử dụng một phương pháp nhân chéo (multi- crossover) để kết hợp thông tin di truyền của hai cha mẹ để tạo ra các con cái mới Phương pháp này sử dụng một chuỗi mặt nạ để xác định bit nào được chọn từ cha hay mẹ Ví dụ, nếu chuỗi bit là [0, 1, 0, 1, 0, 1, 0, 1, 0, 1], thì bit đầu tiên của con cái sẽ được lấy từ bit đầu tiên của cha, bit thứ hai của con cái sẽ được lấy từ bit thứ hai của mẹ, và cứ tiếp tục như vậy Phương pháp này giúp tăng khả năng khám phá không gian tìm kiếm và tạo ra các lời giải đa dạng hơn

• Phương pháp mutation: Bài báo sử dụng một phương pháp đột biến ngẫu nhiên

(random mutation) để thay đổi một số bit của một cá thể để tạo ra một cá thể mới Phương pháp này sử dụng một tham số xác suất để xác định xem bit nào sẽ được đột biến Ví dụ, nếu xác suất đột biến là 0.1, thì mỗi bit của cá thể có

10% cơ hợp được đột biến Đột biến được thực hiện bằng cách thay đổi giá trị của bit thành một giá trị ngẫu nhiên khác trong phạm vi cho phép Ví dụ, nếu bit đang có giá trị là 1, thì nó có thể được đột biến thành 2 hoặc 3 Phương pháp này giúp duy trì sự đa dạng của quần thể và tránh bị mắc kẹt ở cực trị địa phương

• Cơ chế lựa chọn: Bài báo sử dụng thuật toán NSGA-III (Non-dominated Sorting Genetic Algorithm III) để lựa chọn các cá thể cho quần thể tiếp theo

Thuật toán tối ưu đa-mục tiêu NSGA-III dùng cơ chế phân tầng để lưu tập hợp các nghiệm không bị thống trị, tức không có nghiệm nào vượt trội hơn các nghiệm khác về mọi mục tiêu NSGA-III cũng áp dụng cơ chế phân đoạn đảm bảo sự đa dạng của quần thể trên không gian mục tiêu Nhờ đó, NSGA-III hỗ trợ tối ưu hóa hai mục tiêu là thời gian hoàn thành và lượng phát thải các-bon.

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

Về phương pháp đánh giá, tác giả tập trung vào hai khía cạnh sau:

• Sự tối ưu của lời giải: So sánh lời giải tối ưu tìm được bởi NSGA-II và NSGA-III

• Tốc độ hội tụ: So sánh số lượng thế hệ (generation) hoặc thời gian cần thiết để thuật toán đạt được lời giải tốt nhất hoặc lời giải xấp xỉ tốt nhất có thể của NSGA-II và NSGA-III đối với từng mục tiêu

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

Bài toán xếp lịch POC Biển Đông là bài toán xếp lịch các công việc trên nhiều nhóm đa mục tiêu, đồng thời cũng phải thỏa mãn các ràng buộc Kết quả đầu ra là một bản sắp xếp công việc sao cho mỗi công việc sẽ phải hoàn thành trong một khoảng thời gian nhất định tại 1 địa điểm phù hợp với nguồn lực được biên chế trong ngày hôm đó

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

Bảng thông tin nguồn lực:

• Parent: mã công việc cha

• Estdur: thời gian dự kiến (giờ)

• Alt_bdpocdiscipline: nhóm thay thế

• Site: địa điểm thực hiện

Công việc H13824916 được giao cho nhóm E&I tại mỏ HT, chia thành 6 công việc nhỏ Ban đầu, chúng được giao cho nhóm E&I (cột Bdpocdiscipline) Cột Alt_bdpocdiscipline hiển thị các nhóm có thể thay thế cho một số công việc nhỏ của công việc H13824916.

Bảng 4.2: Bảng thông tin nguồn lực POC Biển Đông wonum parent site bdpocdiscipline alt_bdpocdiscipline estdur targstartdate targcompdate

10 H13824944 HT E&I | 44 01/03/0002 31/03/0002 date HT MT bdpocdiscipline

• HT: Mỏ Hải Thạch (số người)

• MT: Mỏ Mộc Tinh (số người)

• Date: ngày phân bổ nhân sự

Sắp xếp thời gian thực hiện, nhân lực cho các job con có cột parent khác rỗng sao cho:

• Số job vi phạm deadline hoặc vi phạm nguồn lực (F1): Phải về 0

• Số lượng nhân sự vượt quá nguồn cung (F2): Phải về 0

• Tổng hiệu số giữa ngày bắt đầu dự kiến và ngày kết thúc dự kiến (F3): càng thấp càng tốt

Các ràng buộc mà bài toán phải thỏa mãn:

• Về lịch làm việc, mỗi người một ngày làm không quá 10 tiếng, một ngày chia làm 20 ca, mỗi ca tương ứng là 30 phút được đánh mã từ 0 đến 19

• Phân công m người cho n ca của 1 công việc sao cho: m*n*0.5 = estdur

Tổng cộng có 3 tập dữ liệu cần phân chia công việc thuộc dự án, số lượng công việc của mỗi tập dữ liệu được trình bày ở bảng

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

Tổng số công việc

Ngày đăng: 30/07/2024, 16:43

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

TÀI LIỆU LIÊN QUAN