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

Nghiên cứu các bài toán lịch biểu và ứng dụng

92 436 2

Đ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

Định dạng
Số trang 92
Dung lượng 5,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Có rất nhiều các bài toán quan trọng trong thực tế của lập lịch như: Lập lịch sản xuất; lập lịch xếp lớp cho giảng viên; lập lịch thực hiện công việc cho dự án; lập lịch trực cho bác sỹ,

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYÔN XU¢N MINH

NGHI£N CøU C¸C BµI TO¸NLÞCH BIÓU Vµ øNG DôNG

LUËN V¡N TH¹C SÜ C¤NG NGHÖ TH¤NG TIN

Hà Nội - 2015

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYÔN XU¢N MINH

NGHI£N CøU C¸C BµI TO¸NLÞCH BIÓU Vµ øNG DôNG

Chuyên ngành: Hệ thống thông tin

Mã số: 60 48 01 04

LUËN V¡N TH¹C SÜ C¤NG NGHÖ TH¤NG TIN

Người hướng dẫn khoa học: GS.TS Vũ Đức Thi

Hà Nội - 2015

Trang 3

LỜI CẢM ƠN

Trước hết, tôi vô cùng biết ơn GS.TS Vũ Đức Thi, người thầy đã trực tiếp dành nhiều thời gian tận tình hướng dẫn, cung cấp những thông tin, tài liệu quý báu, giúp đỡ tôi hoàn thành luận văn này

Tôi xin cảm ơn các thầy cô trong Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội đã cung cấp cho tôi những kiến thức quý báu trong thời gian tôi học tập trong Nhà trường

Sau cùng, tôi xin bày tỏ lòng biết ơn đến người thân, bạn bè, đồng nghiệp cơ quan đã luôn tạo điều kiện động viên cho tôi hoàn thành luận văn tốt nghiệp này

Hà Nội, ngày … tháng … năm 2015

HỌC VIÊN

Nguyễn Xuân Minh

Trang 4

LỜI CAM ĐOAN

Tôi tên là Nguyễn Xuân Minh, học viên cao học khóa 19 ngành Công nghệ thông tin, chuyên ngành Hệ thống thông tin Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội;

Thực hiện đề tài luận văn “Nghiên cứu các bài toán lịch biểu và ứng dụng”; Cán bộ hướng dẫn: GS.TS Vũ Đức Thi

Tôi xin cam đoan đây là công trình nghiên cứu của tôi được hình thành và phát triển của chính cá nhân tôi, đã được cán bộ hướng dẫn thông qua nội dung và đồng ý cho tôi được thực hiện đề tài này

Hà Nội, ngày … tháng … năm 2015

HỌC VIÊN

Nguyễn Xuân Minh

Trang 5

MỤC LỤC

LỜI CẢM ƠN

LỜI CAM ĐOAN

MỤC LỤC

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH VẼ, BIỂU ĐỒ

MỞ ĐẦU

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH 1

1.1 Định nghĩa bài toán lập lịch Jobshop (JSP) 1

1.2 Tình hình nghiên cứu thuật toán tìm kiếm lịch biểu tối ưu 2

1.2.1 Tình hình nghiên cứu trên thế giới 2

1.2.2 Tình hình nghiên cứu trong nước 3

1.3 Các phương pháp tiếp cận giải bài toán lập lịch 3

1.2.3 Cách tiếp cận chính xác, thuật toán nhánh cận 3

1.2.4 Cách tiếp cận gần đúng 4

CHƯƠNG 2 THUẬT TOÁN DI TRUYỀN 18

2.1 Lịch sử ra đời 18

2.2 Một số khái niệm cơ bản 18

2.2.1 Cá thể, nhiễm sắc thể 18

2.2.2 Quần thể 18

2.2.3 Chọn lọc 18

2.2.4 Lai ghép 19

2.2.5 Đột biến 20

2.3 Lưu đồ thuật toán di truyền đơn giản 20

2.4 Các tham số của thuật toán di truyền 21

2.4.1 Kích thước quần thể 21

2.4.2 Xác suất lai ghép 22

2.4.3 Xác suất đột biến 22

2.5 Khởi tạo quần thể ban đầu 22

2.5.1 Hàm tính độ thích nghi 22

2.5.2 Toán tử chọn lọc 22

2.5.3 Các toán tử lai ghép 24

2.5.4 Toán tử đột biến 28

2.7 Kết luận 30

CHƯƠNG 3 HAI BÀI TOÁN CON CỦA BÀI TOÁN LẬP LỊCH JOB SHOP 31

3.1 Bài toán Flowshop hoán vị 31

Trang 6

3.1.1 Mô tả bài toán 31

3.1.2 Cách tính thời gian hoàn thành trong một lịch biểu hoán vị 32

3.1.3 Thuật toán Johnson cho PFSP 2 máy và PFSP 3 máy 36

3.1.4 Một thuật di truyền mã hóa tự nhiên cho bài toán FSP tổng quát 44

3.1.5 Kết quả thực nghiệm 48

3.2 Bài toán lập lịch Flowshop 48

3.2.1 Mô bài toán 48

3.2.2 Một thuật toán di truyền mã hóa tự nhiên cho bài toán FPS tổng quát 49

3.3 Kết luận 52

CHƯƠNG 4 MỘT THUẬT TOÁN DI TRUYỀN LAI CHO BÀI TOÁN LẬP LỊCH JOB SHOP 53

4.2 Các luật ưu tiên của Giffler và Thompson 55

4.2.1 Thuật toán Giffler - Thompson (GT) 55

4.2.2 Áp dụng thuật toán GT cho JSP để sinh ra các lịch biểu tích cực 57

4.3 Một thuật toán di truyền lai tuần tự cho bài toán JSP 58

4.3.1 Mã hóa lời giải 59

4.3.2 Khởi tạo tập lời giải cho thế hệ ban đầu 60

4.3.3 Xây dựng hàm thích nghi 60

4.3.4 Các toán tử di truyền 60

4.3.5 Thuật toán di truyền 64

4.3.6 Tính đúng đắn của thuật toán 64

4.4 Kết quả thực nghiệm 65

KẾT LUẬN 66

Trang 7

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

Branch and Bound Algorithm BB Thuật toán nhánh cận

Genetic Algorithm GA Thuật toán di truyền

Integer Linear Programming Quy hoạch tuyến tính nguyên

Jobshop Scheduling Problem JSP Bài toán lập lịch Jobshop

Flowshop Scheduling Problem FSP Bài toán lập lịch Flow shop

Permutation Flowshop

SchedulingProblem PFSP Bài toán lập lịch Flow shop hoán vị

Trang 8

DANH MỤC CÁC BẢNG

Bảng 1.1: Bài toán JSP 3 công việc, 3 máy 1

Bảng 1.2: Bài toán lập lịch 1 máy 6

Bảng 1.3: Tính toán của G(S ) 6

Bảng 1.4: Tính toán của ( ) 7

Bảng 1.5: Tính toán của ( ) 8

Bảng 1.6: Tính toán của ( ) 8

Bảng 1.7: Tính toán của ( ) 9

Bảng 1.8: Tính toán của ( ) 10

Bảng 1.9: Tính toán ∑ cho 3 tuần tự công nghệ 12

Bảng 1.10: Sinh tất cả tuần tự công nghệ từ S bằng trao đổi cặp công việc liền kề 13

Bảng 1.11: Tính toán ∑ cho 2 tuần tự công nghệ 13

Bảng 1.12: Tính toán ∑ cho 2 tuần tự công nghệ 14

Bảng 1.13: Tính toán ∑ cho 1 tuần tự công nghệ 15

Bảng 1.14: Tính toán ∑ cho 1 tuần tự công nghệ 16

Bảng 2.1: Độ thích nghi và xác suất và xác suất tích lũy của các cá thể 23

Bảng 2.1: Độ thích nghi và xác suất và xác suất tích lũy của các cá thể 23

Bảng 3.1 Thời gian xử lý cho bài toán PFSP 4 máy và 5 công việc 31

Bảng 3.2: Bài toán Flowshop 5 công vệc, 2 máy 39

Bảng 3.3: PFSP 3 công việc 3 máy 43

Bảng 3.4: PFSP 3 công việc 3 máy 43

Bảng 3.5: Bài toán PFSP 5 công việc, 4 máy 44

Bảng 3.6: Kết quả chạy thực nghiệm 48

Bảng 3.7: Mã hóa lời giải theo số tự nhiên 49

Bảng 3.8: Kết quả chạy thực nghiệm 52

Bảng 4.1: Bài toán JSP 3 công việc, 3 máy 54

Bảng 4.2: Bài toán JSP 3 công việc, 3 máy 59

Bảng 4.3: Kết quả chạy thực nghiệm 65

Trang 9

DANH MỤC CÁC HÌNH VẼ, BIỂU ĐỒ

Hình 1.1: Các tiếp cận cho bài toán lập lịch JSP 3

Hình 1.2: Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề 12

Hình 1.3: Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề 13

Hình 1.4: Tuần tự công nghệ S bằng cách trao đổi cặp công việc liền kề 14

Hình 1.5: Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề 15

Hình 1.6: Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề 16

Hình 2.1: Cá thể cha mẹ cho phép lai ghép một điểm 19

Hình 2.2: Hai cá thể con sau khilai ghép một điểm 19

Hình 2.3: Cá thể cha mẹ cho phép lai ghép hai điểm 19

Hình 2.4: Hai cá thể con sau lai ghép hai điểm 19

Hình 2.5: Cá thể cha mẹ cho phép lai ghép đồng nhất 20

Hình 2.6: Hai cá thể con sau lai ghép đồng nhất 20

Hình 2.7: Cá thể ban đầu trước đột biến 20

Hình 2.8: Cá thể con sau phép đột biến 20

Hình 2.9: Sơ đồ mô tả thuật toán di truyền cơ bản 21

Hình 2.10: Minh họa các bước của lai ghép từng phần (PMX) 25

Hình 2.11: Minh họa các bước của lai ghép có thứ tự (OX) 26

Hình 2.12: Minh họa các bước của lai ghép có thứ tự (POS) 26

Hình 2.13: Minh họa các bước của lai ghép (POS) 27

Hình 2.14: Minh họa các bước của lai ghép (CX) 28

Hình 2.15: Minh họa đột biến ngược 28

Hình 2.16:Minh họa đột biến chèn 28

Hình 2.17:Minh họa đột biến thay thế 29

Hình 2.18: Minh họa đột biến hoán vị 29

Hình 3.1: Biều đồ Grant biểu diễn một lời giải của PFSP 5 công việc 4 máy 32

Hình 3.2: Đồ thị không liên thông biểu diễn một lời giải của PFSP 33

Hình 3.3: Các tính thời gian hoàn thành trong đồ thị không liên thông 34

Hình 3.4: Các cạnh tới hạn của đồ thị không liên thông 35

Hình 3.5: Đồ thị cạnh tới hạn 35

Hình 3.6: Đồ thị đường tới hạn 36

Trang 10

Hình 3.7: Biểu đồ Grant của lịch biểu tối ưu bài toán 2 máy 40

Hình 3.8: Biểu đồ Grant của lịch biểu tối ưu bài toán 3 máy 43

Hình 3.9: Một lời giải hợp lệ cho PFSP 5 công việc 4 máy 44

Hình 3.10: Cá thể cha cho phép đột biến 46

Hình 3.11: Cá thể con sau phép đột biến 46

Hình 3.12: Hai thể cha tham gia trao đổi chéo 47

Hình 3.13: Cá thể con sau trao đổi chéo 47

Hình 3.14: Một lời giải hợp lệ cho FSP 3 máy, 5 công việc 49

Hình 3.15: Các cá thể cha cho phép đột biến 50

Hình 3.16: Toán tử con sau khi đột biến 51

Hình 3.17: Các cá thể cha tham gia lai ghép 51

Hình 3.18: Cá thể con sau lai ghép 51

Hình 4.1: Phân lớp các lịch biểu 53

Hình 4.2: Lịch không tích cực 54

Hình 4.3: Lịch biểu bán tích cực 54

Hình 4.4: Lịch biểu tích cực 55

Hình 4.5: Lập lịch sử dụng thuật toán GT 57

Hình 4.6: Một lời giải hợp lệ cho JSP 3x3 59

Hình 4.7: Cá thể cha cho phép đột biến 61

Hình 4.8: Cá thể con thu được sau phép đội biến 61

Hình 4.9: Cá thể cha tham gia lai ghép 63

Hình 4.10: Cá thể con sau lai ghép 63

Hình P.1: Cấu trúc dữ liệu đầu vào của bài toán MT06 75

Hình P.2: Giao diện chương trình 76

Hình P.3: Quá trình tiến hóa bài toán MT06 76

Trang 11

MỞ ĐẦU

Lý do chọn đề tài

Lập lịch là một chủ đề quan trọng trong lĩnh vực nghiên cứu hoạt động xuất hiện từ đầu những năm 1950 Mục tiêu chính của lập lịch là phân phối một cách hiệu quả tài nguyên dùng chung qua thời gian hoàn thành các tác vụ

Có rất nhiều các bài toán quan trọng trong thực tế của lập lịch như: Lập lịch sản xuất; lập lịch xếp lớp cho giảng viên; lập lịch thực hiện công việc cho dự án; lập lịch trực cho bác sỹ, y tá trong bệnh viện; lập lịch hàng không, lập lịch tàu hỏa…

Với nhiều ứng dụng như vậy việc nghiên cứu và đưa ra một thuật toán có thể thống kê một lịch biểu để thực hiện công việc hoàn thành trong thời gian tối ưu là vô cùng quan trọng

Từ năm 1950 đến nay mặc dù có rất nhiều công trình nghiên cứu về lập lịch được đề xuất Nhưng có hai vấn đề cần quan tâm xung quanh bài toán lập lịch đó là lịch biểu thực hiện công việc đã tối ưu chưa và tốc độ thực hiện của thuật toán là nhanh hay chậm Xuất phát từ hai vấn đề đó, có hai phương pháp tiếp cận chính để giải bài toán lập lịch đó là phương pháp chính xác và phương pháp gần đúng

Phương pháp thứ nhất là phương pháp chính xác Với phương pháp này thì ưu điểm lớn nhất là sẽ tiến hành tìm kiếm trên toàn bộ không gian bài toán và kết quả sẽ luôn tìm được một lịch biểu thực hiện các công việc tối ưu Phương pháp chính xác nhìn nhận sâu vào vấn đề bài toán, đưa ra được những quyết định với các thông tin quan trọng về cấu trúc của vấn đề hoặc phân tích chính xác các lịch biểu Tuy nhiên do bản chất là vét cạn nên có nhiều hạn chế khả năng áp dụng phương pháp này như tốn nhiều chi phí thực hiện, mất nhiều thời gian xử lý để tìm ra lời giải, … Một số thuật toán giải quyết bài toán lập lịch theo phương pháp tiếp cận nàytiêu biểu như các kỹ

thuật nhánh cận (Branch and Bound), Quy hoạch tuyến tính nguyên (Integer Linear Programming) Trong đó, thuật toán nhánh cận được đánh giá là thuật toán tốt nhất

trong các thuật toán nghiên cứu theo phương pháp tiếp cận chính xác

Phương pháp thứ hai là phương pháp gần đúng sử dụng các hàm ước lượng heuristic đánh giá để tìm lịch biểu công việc, việc sử dụng các hàm ước lượng này có nhược điểm lớn là lời giải của phương pháp tìm ra không được chắc chắn là lời giải tối

ưu nhất Trong thực tế, nhiều trường hợp chất lượng của lời giải tìm ra không chấp nhận được Kết quả của bài toán bị ảnh hưởng bởi các thông số (kích thước của tập hợp, lời giải ban đầu của thuật toán, các lân cận…) Và cách thức để giải quyết bài toán đôi khi được xem như kỹ xảo để xử lý hơn là khoa học Tuy nhiên phương pháp này lại có lợi thế hơn so với phương pháp chính xác là chi phí thời gian tìm kiếm để đưa ra lời giải thấp Gần đây một số thuật toán mạnh mẽ được tiếp cận bằng phương pháp gần đúng điển hình như là: “Taboo Search”, “Simulated Annearling”, “Genetic Algorithms”, …

Trang 12

Trong lĩnh vực lập lịch, một mô hình chung nhất cho lập lịch là bài toán lập lịch

Jobshop (Jobshop Scheduling Problem)viết tắt JSP Bài toán này nổi tiếng là một trong

những bài toán tối ưu tổ hợp khó tính toán nhất cho đến nay JSP cũng là một trong những bài toán được nghiên cứu nhiều nhất và là một mô hình phát triển tốt về lý thuyết lập lịch Ngoài ra, một động lực khác giúp JSP được thúc đẩy mạnh mẽ là các ứng dụng của nó trong thực tế và cuộc sống sản xuất Vì vậy em mạnh dạn chọn đề tài

luận văn thạc sĩ “Nghiên cứu các bài toán lịch biểu và ứng dụng”

Bố cục của luận văn

Nội dung của luận văn bao gồm 4 chương:

Chương 1 Tổng quan về bài toán lập lịch

Chương này trình bày tổng quan về bài toán JSP, tình hình nghiên cứu, các hướng tiếp cận giải quyết bài toán JSP

Chương 2 Thuật toán di truyền

Chương này trình bày một số khái niệm cơ bản trong thuật toán di truyền, các tham số đầu vào của thuật di truyền, các toán tử của thuật toán di truyền và thuật toán

di truyền

Chương 3 Hai bài toán con của bài toán lập lịch JSP

Chương này trình bày các khái niệm cơ bản liên quan đến hai bài toán con của JSP đó là bài toán lập lịch Flowshop hoán vị (PFSP) và Flow shop (FSP) và thuật toán Johnson cho bài toán Flowshop hoán vị 2 máy và 3 máy có hạn chế điều kiện Cuối cùng, trình bày thuật toán di truyền mã hóa số tự nhiên cho hai bài toán này

Chương 4 Một thuật toán di truyền lai cho bài toán lập lịch job shop Chương này trình bày một thuật toán di truyền lai là kết hợp thuật toán di truyền với các kỹ thuật tìm kiếm khác cho bài toán JSP và xây dựng chương trình minh họa cho thuật toán di truyền lai

Trang 13

CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN LẬP LỊCH

1.1 Định nghĩa bài toán lập lịch Jobshop (JSP)

Bài toán lập lịch job shop tổng quát được phát biểu như sau:

Cho tập công việc { } , mỗi công việc bao gồm công đoạn (hay còn gọi

là thao tác) được xử lý trên một tập máy và thỏa mãn các ràng buộc sau:

a) Mỗi công việc phải được xử lý ở trên mỗi máy theo một trình tự cho trước của các thao tác Trình tự thực hiện thao tác của mỗi công việc lần lượt trên các máy được gọi là tuần tự công nghệ;

b) Tại mỗi thời điểm, mỗi máy chỉ có thể xử lý nhiều nhất là một công việc; c) Mỗi máy tùy ý đều có khả năng xử lý một công việc nào đó, phần công việc được xử lý trên máy được gọi là thao tác

d) Mỗi thao tác phải được xử lý một cách liên tục trên máy (từ khi bắt đầu xử lý cho tới khi kết thúc xử lý không bị ngắt);

e) Thời gian bắt đầu và thời gian hoàn thành xử lý thao tác được ký hiệu lần lượt là và Thời gian xử lý thao tác được ký hiệu là ;

f) Thời gian hoàn thành việc xử lý tất cả các công việc được gọi mà makespan

thời gian xử lý của mỗi công việc ở trên mỗi máy (trong dấu ngặc đơn)

Công việc Máy (thời gian xử lý)

→ ; tức là, công việc 1 ban đầu được xử lý trên máy 1 với thời gian xử lý là 3,

và tiếp theo, được xử lý trên máy 2 với thời gian xử lý là 3, và tiếp theo được xử lý trên máy 3 với thời gian xử lý là 3; các thao tác được xử lý trên các máy theo trình tự: → → các thao tác được xử lý trên các máy theo trình tự: →

Trang 14

Bài toán này không chỉ là NP - khó (NP-hard) mà còn nổi tiếng là một trong những bài toán tối ưu tổ hợp khó tính toán nhất cho đến nay Độ phức tạp của bài toán này là một trong những lý do tại sao bài toán này được nghiên cứu một cách rộng rãi

Cho đến ngày nay vẫn chưa có một phương pháp nào giải quyết bài toán JSP một cách chính xác và thời gian nhanh

1.2 Tình hình nghiên cứu thuật toán tìm kiếm lịch biểu tối ưu

1.2.1 Tình hình nghiên cứu trên thế giới

Bài toán JSP lần đầu tiên được công bố bởi Akers và Friedman (1955), bài toán này thường được biết với cái tên AkersFriedman Tuy nhiên, nó trở nên phổ biến nhờ vào bài toán nổi tiếng 10 công việc 10 máy được đưa ra bởi Fisher và Thompson (1963) Những nỗ lực đầu tiên để giải quyết bài toán JSP được thực hiện bởi Brooks và White (1965), Greenberg (1968) với phương pháp quy hoạch nguyên.Sau đó là phương pháp nhân tử Lagrange của Balas (1969), Charlton và Death (1970) Florian (1971), Ashour(1974), Ashour và Hiremath (1973), Fisher (1973)[5]

Một thuật toán của McMahon và Florian (1975) tìm được dẫn đầu là thuật toán chính xác tốt nhất Thuật toán kết hợp các giới hạn của bài toán lập lịch trên một máy bằng cách sử dụng hàm mục tiêu để giảm thiểu thời gian trễ và liệt kê các lịch biểu tích cực Cùng thời gian đó một phương pháp heutistic dựa trên các luật ưu tiên được nghiên cứu bởi Gere (1966), Panwalkar và Iskander (1977) và Haupt (1989) Xa hơn nữa một

số thuật toán mãnh mẽ được nghiên cứu với các phương pháp tiếp cận tối ưu Barker và McMahon (1985) đã công bố công trình giải quyết bài toán lập lịch bằng cách sử dụng

cấu trúc lân cận dựa trên các thuật toán tìm kiếm địa phương(local search)[5]

Lịch biểu tối ưu của bài toán JSP 10x10 lần đầu tiên được đưa ra bởi Leageweg (1984) nhưng việc chứng minh về tính tối ưu của lịch biểu này không được đưa ra Arlier và Pinson (1989) đã chứng minh rằng lịch biểu này là tối ưu và họ được ghi với việc giải quyết bài toán nổi tiếng Fisher và Thompson từ năm 1963[5]

Ngày nay, thuật toán hiệu quả nhất trong số các phương pháp chính xác là thuật toán nhánh cận của Caseau và Laburthe (1995), Baptiste (1995), Carlier và Pinson (1994), Brucker (1994), Brucker (1992) và các kỹ thuật khác nhau sau nhánh cận bởi Applegate và Cook (1991), Martin và Shmoys (1995) và Perregaard và Clausen (1995) Những hướng mới nghiên cứu giải quyết bài toán JSP tại thời điểm hiện tại là phương pháp gần đúng Phương pháp đầu tiên trong danh sách là phương pháp dịch chuyển nút cổ chai (Shifting Bottleneck) của Adam 1998,Balas (1995), Dauzere-Peres

và Lasserre (1993) Tuy nhiên phần lớn của cách tiếp cận gần đúng là kỹ thuật tìm kiếm địa phương và tiến hóa Trong kỹ thuật tìm kiếm địa phương và tiến hóa thì các thuật toán mạnh mẽ nhất là thuật toán mô phỏng luyện kim (simulated annealing) của Van Laarhoven (1992), Matsuo (1988) và Yamada (1994), Tìm kiếm Tabu (Taboo

Trang 15

Search)bởi Dell’Amico và Trubian (1993), Taillard (1994), Barnes và Chambers (1995), Nowicki và Smutnicki (1996) và Thomsen (1997), Thuật toán di truyền (Genetic Algorithms)bởi Storer (1992), Yamada và Nakano (1992), Pesch (1993) và Dorndorf và Pesch (1995), vàkỹ thuật Tìm kiếm địa phương có chỉ dẫn (Guided Local Search)đề xuất bởiBalas và Vazacopoulos (1998)[5]

Các tiếp cận đã được đề xuất để giải bài toán JSP được trình bày trong Hình 1.1

Hình 1.1: Các tiếp cận cho bài toán lập lịch JSP 1.2.2 Tình hình nghiên cứu trong nước

Hiện nay, bài toán JSP vẫn đang được quan tâm và nghiên cứu và ngày càng phát triển Các công trình nghiên cứu về vấn đề này chủ yếu theo hướng các thuật toán

đã được đề xuất và ứng dụng ở trên thế giới, từ đó tìm ra các phương pháp để cải tiến làm cho thuật toán tốt hơn Ứng dụng thực tiễn của bài toán lập lịch chủ yếu trong lĩnh vực đào tạo: xây dựng thời khóa biểu, kế hoạch thi, lịch làm việc, lịch trực bệnh viện,lập kế hoạch sản xuất kinh doanh trong doanh nghiệp

1.3 Các phương pháp tiếp cận giải bài toán lập lịch

1.2.3 Cách tiếp cận chính xác, thuật toán nhánh cận

Thuật toán nhánh cận là phương pháp hiệu quả nhất trong số các phương pháp chính xác để giải bài toán JSP Thuật toán nhánh cận là kỹ thuật được phát triển

Các phương pháp chính xác

Các kỹ thuật nhánh cận

Công thức toán học

Quy hoạch tuyến tính nguyên

Các phương pháp gần đúng

Dịch chuyển

nút cổ chai

Trí tuệ nhân tạo

Các mạng Nơron

Các luật ưu tiên nhanh

Tìm kiếm địa phương

Mô phỏng luyện kim

Tìm kiếm Taboo

Giải thuật

di truyền

Trang 16

để giải quyết các bài toán rời rạc và tổ hợp Mô hình được sử dụng để tìm kiếm là mô hình cây phân cấp Tư tưởng cơ bản của phương pháp là trong quá trình tìm kiếm lời giải, sẽ phân hoạch tập các phương án của bài toán thành hai hay nhiều tập con

biểu diễn như một nút của cây tìm kiếm và cố gắng bằng phép đánh giá cận), tìm cách loại bỏ các nhánh cây (những tập con các phương án của bài toán) mà ta

biết chắc chắn không phải là phương án tối ưu Mặc dù trong trường hợp xấu nhấtthuật toán sẽ duyệt toàn bộ, nhưng những trường hợp cụ thể nó rút ngắn đáng kể thời gian tìm kiếm

Hiệu quả của thuật toán nhánh cận phụ thuộc cách thức phân nhánh và đánh giá cận Việc phân nhánh sai sẽ không làm giảm việc bỏ bớt các phương án không tốt hoặc thậm chí cũng không thể thu gọn các miền khả thi xuống Đánh giá cận sai sẽ tạo ra các nhánh không chính xác làm ảnh hưởng đến số lượng các phương án hoặc các tập con có thể lược bỏ được Như vậy thì một chiến lược nhánh cận không tốt sẽ làm giảm việc xác định các phương án khả thi và lúc này thuật toán sẽ liệt kê toàn bộ các cấu hình có thể cho dù bài toán không thực sự lớn Chính vì thế những quy tắc khác nhau được áp dụng với mục đích làm sao để phân nhánh và đánh giá cận đúng là vấn đề quan trọng trong việc xây dựng thuật toán

Với bài toán lập lịch, thì lịch biểu các công việc được mô tả bằng một đồ thịnối

rời (disjunctive graph) Tất cả các công đoạn cùng một công việc được nốithành một

chuỗi các cung nối liền và các cung nối rời giữ các công đoạn thực hiệntrên cùng một máy Việc lập lịch sẽ trở thành việc sắp thứ tự các công việc trên từngmáy, nghĩa là làm cố định mối liên hệ trước sau giữa các công đoạn trên cùng mộtmáy bằng cách thay đổi hướng các cung nối rời theo một hướng cố định ta sẽ cómột lời giải khả thi, mỗi lời giải khả thi này ta tính được hàm mục tiêu chiềudài lớn nhất đi từ nút nguồn đến nút đích

Một vấn đề gặp phải của phương pháp nhánh cận là thời gian tính toán lớn 1.2.4 Cách tiếp cận gần đúng

1.2.4.1 Giới thiệu

Một lớp quan trọng của loại cải tiến thuật toán là thủ tục tìm kiếm địa phương

(local search) Một thủ tục tìm kiếm địa phương không đảm bảo là một lời giải tối ưu

Nó thường cố gắng tìm một lịch biểu mà lịch biểu đó là tốt hơn so với lịch biểu hiện tại trong lân cận của lịch biểu hiện tại Hai lịch biểu là lân cận nếu một lịch biểu này

có thể thu được qua việc sửa đổi và được xác định bởi lịch biểu kia Tại tất cả các vòng lặp một thủ tục tìm kiếm địa phương thực hiện việc tìm kiếm bên trong lân cận

và đánh giá các giải pháp lân cận khác nhau Quá trình tìm kiếm trong lân cận có thể được thực hiện qua một số cách Cách đơn giản nhất là chọn các lịch biểu trong lân cận một cách ngẫu nhiên, đánh giá các lịch biểu này và quyết định cái lịch biểu nào sẽ

Trang 17

được chấp nhận Tuy nhiên nó có thể mất chi phí để làm một thủ tục tìm kiếm có tổ chức hơn và chọn lịch biểu đầu tiên tốt hơn

Thủ tục này hoặc là được chấp nhận hoặc là bị từ chối một lời giải ứng cử viên như một lịch biểu tiếp theo để di chuyển tới dựa trên điều kiện chấp nhận hoặc từ chối Điều kiện chấp nhận hoặc từ chối thường được thiết kế trên khía cạnh phân biệt một thủ tục tìm kiếm địa phương nhiều nhất Sự khác nhau giữa hai thủ tục được thảo luận trong phần còn lại của mục này là thuật toán mô phỏng luyện kim và tìm kiếm Tabu

Sự khác nhau chủ yếu của hai thủ tục này nằm chủ yếu ở điều kiện chấp nhận hoặc từ chối Trong thuật toán mô phỏng luyện kim, điều kiện chấp nhận hoặc từ chối dựa trên một xác suất xử lý; còn tìm kiếm Tabu dựa trên xác định xử lý

Ba kỹ thuật khá phổ biến cho tìm kiếm địa phương bao gồm:thuật toán mô phỏng luyện kim, thuật toán tìm kiếm Tabu và thuật toán di truyền Các kỹ thuật tìm kiếm địa phương này bắt đầu với một lịch biểu và cố gắng tìm một lịch biểu tốt hơn trong lân cận của nó Phương pháp được thực hiện qua các vòng lặp Một số lời giải lân cận được sinh ra từ một lời giải hiện thời tại mỗi vòng lặp và so sánh với lời giải hiện thời Tìm kiếm địa phương tiếp tục thực hiện qua các vòng lặp tới khi điều kiện kết thúc hoặc đạt kết quả tối ưu

1.2.4.2 Thuật toán mô phỏng luyện kim (Simulated Annealing)

Đây là quá trình tìm kiếm bắt nguồn trong khoa học vật liệu Nó lần đầu tiên được phát triển cho mô phỏng các quá trình luyện kim Trong lý thuyết lập lịch, nó được áp dụng như một công cụ tìm kiếm địa phương để cải thiện lịch biểu ban đầu Thuật toán dưới đây chỉ rõ các bước cho việc tạo một lịch cho bài toán một máy[10]

Thuật toán

Chúng ta hãy gọi,

: Lịch ứng cử viên (Tuần tự công nghệ ứng cử viên)

: Lịch biểu tốt nhất được tìm thấy đến nay (Tuần tự công nghệ tốt nhất) : Lịch được xây dựng tại vòng lặp thứ k (k - Biến đếm vòng lặp)

( ): Tiêu chí mong muốn (giá trị tốt nhất của lịch biểu)

( ): Giá trị của lịch biểu tại vòng lặp thứ k

( ): Giá trị của lịch biểu ứng cử viên

( , ): Xác suất di truyển từ lịch biểu đến lịch biểu tại vòng lặp thứ k ( , ) = exp ( ( ) ( ))

Trong đó, là tham số làm lạnh trong công nghệ luyện kim Thông thường giá trị = với ∈ [0,1]

Bước 1 Khởi tạo

Gán = 1, đặt bằng một giá trị nhất định

Đặt = thì ( ) = ( )

Bước 2 Chọn từ

Trang 18

Sử dụng các giá trị = {0.8, 0.01, 0.52, 0.43) trong bài toán Giá trị khởi tạo

= 0.9 Bắt đầu với tuần tự công nghệ thứ nhất là { , , , }

Bước 1 Khởi tạo

= 0.9, = 1, = { , , , } Đặt = , tìm ∑

Trang 19

Do ( ) = 43 Bây giờ ta hãy kiểm tra điều kiện

Nếu ( ) < ( ) < ( ) thì = GOTO Bước 3 Các điều kiện sai Nếu ( ) < ( ) thì = & = GOTO Bước 3

Nếu ( ) > ( ) (điều kiện này đúng)

Trang 20

Do ( ) = 32 Bây giờ ta hãy kiểm tra điều kiện

Nếu ( ) < ( ) < ( ) thì = GOTO Bước 3 Các điều kiện sai Nếu ( ) < ( ) thì = & = GOTO Bước 3

Nếu ( ) > ( ) (điều kiện này đúng)

Do ( ) = 35 Bây giờ ta hãy kiểm tra điều kiện

Nếu ( ) < ( ) < ( ) thì = GOTO Bước 3

Trang 21

Nếu ( ) < ( ) thì = & = GOTO Bước 3 Các điều kiện sai Nếu ( ) > ( ) (điều kiện này đúng)

Do ( ) = 13 Bây giờ ta hãy kiểm tra điều kiện

Nếu ( ) < ( ) (điều kiện này đúng)

thì

Giá trị mới của và là:

= = { , , , }; ( ) = 13

= = { , , , }; ( ) = 13 GOTO Bước 3

Bước 3 Chọn = ( ) = 0.6561

= 5; = 5

Nếu ≤ thì GOTO Bước 2, Ngược lại thì dừng

Bước 2 Vòng lặp 5

Trang 22

Chọn một lịch tuần tự ứng cử viên từ lân cận của

Do ( ) = 9 Bây giờ ta hãy kiểm tra điều kiện

Nếu ( ) < ( ) (điều kiện này đúng)

Thì

Giá trị mới của và là:

= = { , , , }; ( ) = 9

= = { , , , }; ( ) = 9 GOTO Bước 3

Bước 3 Chọn = ( ) = 0.6561

= 6; = 5

Nếu ≤ thì GOTO Bước 2, Ngược lại thì dừng

Thuật toán dừng lại ở bước 5 Tuần tự công nghệ tốt nhất = { , , , }

Độ trễ trọng số tối thiểu (Minimum weighted Tardiness) ∑ = 9

Thuật toán mô phỏng luyện kim có thuận lợi là có thể thoát khỏi cực tiểu địa phương Tuy nhiên bất lợi nhất của phương pháp là khả năng quay lại lời giải đã xét

Do đó, việc lặp lại công việc tại một cực tiểu địa phương là hoàn toàn có thể xẩy ra

và điều này dẫn đến mất nhiều thời gian tính toán trên một phần nhỏ của không gian lời giải

1.2.4.3 Thuật toán tìm kiếm Tabu(Taboo Search)

Thuật toán tìm kiếm Tabu là một thủ tục tìm kiếm địa phương như mô phỏng luyện kim Tuy nhiên việc lựa chọn một lịch biểu lân cận được quyết định một cách xác định trái ngược với mô phỏng luyện kim, ở đó xác suất gần đúng được sinh ra Một bản ghi của Tabu được di chuyển và được lưu trữ trong danh sách Tabu để tránh

sự trùng lặp của các thao tác trao đổi trong danh sách

Trang 23

Danh sách Tabu (Taboo List) là thành phần chính của thuật toán tìm kiếm Tabu

Nó là một cấu trúc bộ nhớ lưu dấu viết của sự tiến hóa của việc tìm kiếm và chiến lược cho việc sử dụng các thông tin bộ nhớ một cách tốt nhất có thể Cấu trúc bộ nhớ cơ bản này được gọi là danh sách Tabu Nó sẽ lưu trữ các thuộc tính, giải pháp đặc trưng

mà không cần xem xét lại trong một khoảng thời gian nhất định Thường thì chiến

lược vào trước ra trước (FIFO-first in first out) được áp dụng cho danh sách Các

thuộc tính cũ được xóa đi khỏi danh sách và các thuộc tính mới được chèn vào danh sách.Thuật toán Tabu bao gồm các bước sau:

Bước 1 Khởi tạo

Gán k = 1; bắt đầu một tuần tự công nghệ bằng một heutistic bất kỳ; gọi là

Xóa các Tau di chuyển lâu nhất trong danh sách Tabu

Thêm mới Tabu di chuyển ở đầu danh sách

Bước 3

Đặt = + 1

Nếu ≤ thì GOTO Bước 2 Ngược lại, dừng thuật toán

Ví dụ:

Giải bài toán trong Mục 1.4.3.2 sử dụng thuật toán tìm kiếm Tabu Áp dụng kỹ

thuật FIVE vòng lặp, làm cho chiều dài của danh sách bằng 2 (tức là các cặp công việc

đã được thay đổi cho nhau trong quá trình di chuyển cuối cùng không thể được thay đổi cho nhau thêm một lần nữa) Dữ liệu được cho trong Bảng 1.2

Taboo List = {}, cho tuần tự công nghệ bắt đầu = { , , , }

Cho là tuần tự công nghệ tốt nhất;

Đặt = , bởi vậy = { , , , }

Trang 24

( ) = ( ) = 30 Lân cận của lịch được định nghĩa như là tất cả các lịch có thể thu được bằng cách trao đổi khôn ngoan cặp công việc liền kề nhau

Hình 1.2: Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề

Tính toán ∑ cho ba tuần tự công nghệ được thể hiện trong Bảng 1.9

Bảng 1.9: Tính toán ∑ cho 3 tuần tự công nghệ

Để cho tuần tự công nghệ tốt nhất hiện thời thì từ ba tuần tự công nghệ từ , tuần tự công nghệ tốt nhất hiện thời { , , , } Bởi vậy = { , , , } Giá trị của là: ( ) = 28 Từ đó, ( ) < ( ), = và giá trị mới ( ) = 28

Từ đó, tuần tự công nghệ tốt nhất được tạo nên bởi trao đổi các công việc 3

và 4 trong tuần tự công nghệ ; = {(3,4)} và = {(3,4)} Đặt = và đi đến vòng lặp kết tiếp

Trang 25

Bảng 1.10: Sinh tất cả tuần tự công nghệ từ bằng trao đổi cặp công việc liền kề

Hình 1.3: Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề

Tính toán ∑ cho tuần tự công nghệ { , , , } và , , , } được thực hiện trong Bảng 1.11

Trang 26

Tuần tự công nghệ tốt nhất hiện thời bởi trao đổi cặp công việc liền kề trong tuần tự công nghệ là { , , , } Bởi vậy = { , , , }Giá trị của là: ( ) = 13 Từ đó, ( ) < ( ), = và giá trị mới ( ) = 13

Từ đó, tuần tự công nghệ tốt nhất được tạo nên bởi trao đổi các công việc 2

và 4 trong tuần tự công nghệ ; = {(2,4)} và = {(3,4), (2,4)}

Đặt = = { , , , }, ( ) = 13 và đi đến vòng lặp kết tiếp

Vòng lặp 3

Bây giờ, sinh ra tất cả các công việc của bởi trao đổi cặp công việc liền kề trong Hình 1.4

Hình 1.4:Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề

Tính tổng của ∑ cho tuần tự công nghệ { , , , } và { , , , } được thực hiện trong Bảng 1.12

= (2,3)

Trang 27

Tuần tự công nghệ tốt nhất hiện thời bởi trao đổi cặp công việc liền kề trong tuần tự công nghệ là { , , , } Bởi vậy = { , , , }Giá trị của là: ( ) = 9 Từ đó, ( ) < ( ), = và giá trị mới ( ) = 9

Từ đó, tuần tự công nghệ tốt nhất được tạo nên bởi trao đổi các công việc 2

và 3 trong tuần tự công nghệ ; = {(2,3)} Do chiều dài của danh sách Tabu là 2, chúng ta sẽ cập nhật lại danh sách Xóa (2,4) ra khỏi danh sáchvà thêm (2,3) vào trong danh sách Ta có danh sách Tabu mới = {(3,4), (2,3)}

Đặt = = { , , , ) ( ) = 9 và đi đến vòng lặp kết tiếp

Vòng lặp 4

Bây giờ, ta sinh các tuần tự công nghệ của ;

Hình 1.5: Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề

Tính tổng của ∑ cho tuần tự công nghệ { , , , } được thực hiện trong Bảng 1.13

tốt nhất hiện thời

Trang 28

Chỉ có khả năng trao đổi là (1, 4) với ( ) = 21

Từ đó, ( ) > ( ), ( ) giữ giá trị 9 Với = (4,1) trong tuần tự công nghệ Cập nhật danh sách Tabu Xóa (3, 4) ra khỏi danh sách và thêm (4, 1) vào trong danh sách Và danh sách Tabu mới = {(2, 3), (4, 1)}

Đặt = = { , , , }, ( ) = 9 và đi đến vòng lặp tiếp theo

Vòng lặp 5

Bây giờ, chúng ta sinh các tuần tự công nghệ của như Hình 1.6

Hình 1.6:Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề

Tính tổng của ∑ cho tuần tự công nghệ { , , , } được thực hiện trong Bảng 1.14

= 21

Trang 29

Từ đó, ( ) > ( ), ( ) giữ giá trị 9 Với = (1,3) trong tuần tự công nghệ Cập nhật danh sách Tabu Xóa (2, 3) ra khỏi danh sách và thêm (1, 3) vào trong danh sách Và danh sách Tabu mới = {(4, 1), (1, 3)}

Đặt = = { , , , }, ( ) = 9

Kết thúc vòng lặp thứ 5 ( ) = 9 và tuần tự công nghệ tốt nhất { , , , }

Từ nhược điểm của thuật toán mô phỏng luyện kim Nếu thuật toán muốn tránh khỏi tình trạng công việc lặp lại trong một cực tiểu địa phương thì các lời giải này phải

được lưu trữ trong một danh sách (danh sách Tabu) và chỉ chấp nhận những lời giải

không có mặt trong danh sách này Tuy nhiên việc kiểm tra xem một lời giải ứng viên

có nằm trong danh sách Tabu hay không lại tốn nhiều thời gian và không gian bộ nhớ

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

Thuật toán di truyền được phát triển bởi Holland vào năm 1975 Từ khi thuật toán di truyền ra đời, nó đã rất thành công trong việc giải quyết một số các bài toán tối

ưu Một số lĩnh vực đã được áp dụng như để định tuyến, lập lịch công việc, điều khiển thích nghi, mô hình nhận thức, các bài toán về giao thông vận tải, người du lịch, các bài toán về điều khiển tối ưu, tối ưu truy vấn cơ sở dữ liệu…

Thuật toán di truyền là kỹ thuật tìm kiếm ngẫu nhiên toàn bộ thuật toán tìm

kiếm mô phỏng các hiện tượng tự nhiên (tiến hóa sinh học) Ý tưởng chính của thuật

toán di truyền các cá thể mạnh có xu hướng thích ứng và tồn tại, trong khi đó các cá thể yếu có xu hướng bị chết đi Mỗi cá thể có một cấu trúc gien đặc trưng cho tính chất của cá thể đó Trong quá trình sinh sản, các cá thể con có thể thừa hưởng các phẩm chất của cá thể cha mẹ, cấu trúc gien của nó mang một phần cấu trúc gien của cha mẹ Ngoài ra, trong quá trình tiến hóa, có thể xảy ra hiện tượng đột biến, cấu trúc gien của

cá thể con có thể chứa các gien mà cả cha mẹ đều không có Trong thuật toán di truyền, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu, mô tả cấu trúc gien của cá thể đó ta gọi đó là nhiễm sắc thể Mỗi nhiễm sắc thể được tạo thành từ các đơn vị được gọi là gien Thuật toán di truyền làm việc trên các quần thể gồm nhiều cá thể Một quần thể ứng với một giai đoạn phát triển gọi là một thế hệ Từ một thế hệ được tạo ra, thuật toán di truyền bắt chước sự chọn lọc tự nhiên và di truyền để biến đổi các thế hệ

Ba bước chính của thuật toán di truyền là chọn lọc, lai ghép và đột biến để tạo nên các hoạt động di truyền Chi tiết của thuật toán di truyền được trình bày trong Chương 2

Trang 30

CHƯƠNG 2 THUẬT TOÁN DI TRUYỀN

2.1 Lịch sử ra đời

Thuật toán di truyền (Genetic Algorithm - GA) hình thành dựa trên quan niệm

cho rằng, quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất, và tự nó

đã mang tính tối ưu Quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ

cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước Tiến hóa tự nhiên được duy

trì nhờ hai quá trình cơ bản sinh sản và chọn lọc tự nhiên Xuyên suốt quá trình tiến hóa tự nhiên, các thế hệ mới luôn được sinh ra để bổ sung thay thế thế hệ cũ Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại Cá thể nào không thích ứng được với môi trường sẽ bị đào thải GA được đề xuất và nghiên cứu lần đầu tiên bởi John Holland tại trường đại học Michigan vào năm 1975 với công trình được công

bố mang tên “Adaptation in Natural and Artificial Systen” Thuật toán di truyền được

coi là một trong những mô hình tính toán phổ biến và thành công nhất trong lĩnh vực tính toán thông minh Cùng với các kỹ thuật tính toán thông minh khácnhư tính toán

mờ(fuzzy computing), mạng Nơ-ron (neural networks), trí tuệ bầy đàn (swarm intelligence), thuật toán di truyền ngày càng phát triển,được áp dụng rộng rãi trong các

lĩnh vực khác nhau như toán học, sinh học, khoa học máy tính.Thuật toán di truyền đã bước đầu đượcáp dụng thành công trong các bài toán thiết kế với các hàm mục tiêu quá phức tạp khôngtuyến tính, hay các bài toán lập kế hoạch, lập lịch với không gian tìm kiếm NP-khó

2.2 Một số khái niệm cơ bản

Thuật toán di truyền dựa vào quá trình tiến hoá trong tự nhiên nên các khái niệm và thuật ngữ của nó đều có liên quan đến các thuật ngữ của di truyền học

2.2.1 Cá thể, nhiễm sắc thể

Trong thuật toán di truyền, một cá thể biểu diễn một giải pháp của bài toán Không giống với trong tự nhiên, một cá thể có nhiều nhiễm sắc thể, ở đây ta quan niệm một cá thể có một nhiễm sắc thể Do đó khái niệm cá thể và nhiễm sắc thể trong

thuật toán di truyền coi như là tương đương (và được gọi là cá thể)

Một cá thểđược tạo thành từ nhiều gien, mỗi gien có thể có các giá trị khác nhau để quy định một tính trạng nào đó Trong thuật toán di truyền, một gien được coi như một phần tử trong cá thể

Trang 31

sinh tồn trong tự nhiên, chọn lọc các cá thể trong thuật toán di truyền chính là cách chọn các cá thể có độ thích nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục đích là sinh ra các cá thể mới tốt hơn Có nhiều cách để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ có khả năng được chọn cao hơn

2.2.4 Lai ghép

Lai ghép hay trao đổi chéo là quá trình hình thành cá thể mới dựa trên cơ sở cá thể cha mẹ bằng cách ghép một hay nhiều đoạn gien của cá thể cha mẹ.Cá thể mới có các đặc tính mong muốn là tốt hơn cá thể cha mẹ Đây là quá trình xảy ra chủ yếu trong thuật toán di truyền

a) Lai ghép một điểm

Chọn ngẫu nhiên một vị trí được gọi là điểm lai ghép Sau đó ghép đoạn trước điểm lai ghép của cha với đoạn sau điểm lai ghép của mẹ và ngược lại Ví dụ, cho cá thể cha mẹ trong Hình 2.1, phép lai ghép một điểm sau gien thứ 5 cho kết quả hai cá thể con trong Hình 2.2

Hình 2.1: Cá thể cha mẹ cho phép lai ghép một điểm

Hình 2.2:Hai cá thể con sau khilai ghép một điểm b) Lai ghép hai điểm

Chọn ngẫu nhiên hai vị trí trên chuỗi cá thể cha mẹ Sau đó tráo đổi đoạn gien nằm giữa hai điểm đó của cá thể cha mẹ cho nhau Ví dụ, cho cá thể cha mẹ như trong Hình 2.3, phép lai ghép hai điểm sau gien thứ 3 và sau gien thứ 7 cho kết quả hai cá thể con như trong Hình 2.4

Hình 2.3: Cá thể cha mẹ cho phép lai ghép hai điểm

Hình 2.4: Hai cá thể con sau lai ghép hai điểm

Trang 32

Phép lai ghép này gieo ngẫu nhiên một đồng xu, số lần gieo bằng số gien của cá

thể cha mẹ Nếu kết quả gieo là 1 (mặt sấp) thì cá thể con thứ nhất sao chép gien từ cá

thể của mẹ, cá thể con thứ hai sao chép gien từ cá thể cha Ngược lại,cá thể con thứ nhất sao chép gien từ cá thể cha, cá thể con thứ nhất sao chép gien từ cá thể mẹ Ví dụ cho cá thể cha mẹ như trong Hình 2.5, phép trao đổi chéo đồng nhất với kết quả gieo ngẫu nhiên đồng xu là 10101010 kết quả là cá thể con trong Hình 2.6

Hình 2.5: Cá thể cha mẹ cho phép lai ghép đồng nhất

Hình 2.6: Hai cá thể con sau lai ghép đồng nhất 2.2.5 Đột biến

Đột biến là một sự biến đổi tại một (hay một số) gien của cá thể ban đầu được

chọn một cách ngẫu nhiên bằng cách thay đổi các gien có giá trị 0 thành 1 để tạo ra một cá thể mới Đột biến có xác suất xảy ra thấp hơn lai ghép Đột biến có thể tạo ra một cá thể mới tốt hơn hoặc xấu hơn cá thể ban đầu Tuy nhiên trong thuật toán di truyền thì ta luôn muốn tạo ra những phép đột biến cho phép cải thiện lời giải qua từng thế hệ Ví dụ, cho cá thể ban đầu như trong Hình 2.7, giả sử các gien thứ 2, 5, 7, 8 được chọn để đột biến, chúng ta có cá thể con sau đột biến trong Hình 2.8

Hình 2.7: Cá thể ban đầu trước đột biến

Hình 2.8: Cá thể con sau phép đột biến Trong thuật toán di truyền phép đột biến có thể rất đa dạng Tuy nhiên vẫn phải đảm bảo thực hiện sửa đổi một số gien trên cá thể cha để có một cá thể con

2.3 Lưu đồthuật toán di truyền đơn giản

Với các khái niệm được giới thiệu ở trên, thuật toán di truyền được mô tả đơn giản như sau:

Trang 33

Hình 2.9: Sơ đồ mô tả thuật toán di truyền cơ bản 2.4 Các tham số của thuật toán di truyền

Khởi tạo quần thể ban đầu

Tính giá trị hàm thích nghi

Điều kiện dừng

Trang 34

không nên quá bé cũng như không quá lớn Nếu có quá ít cá thể thì ít có khả năng thực hiện lai giống và chỉ một phần nhỏ không gian tìm kiếm được dùng Như vậy sẽ dễ xảy ra trường hợp bỏ qua các lời giải tốt Nhưng quá nhiều cá thể cũng không tốt vì thuật toán di truyền sẽ chạy chậm đi, ảnh hưởng đến hiệu quả của thuật toán Các nghiên cứu cũng đã chỉ ra không có lợi khi tăng kích thước quần thể lên quá một giới hạn cho phép

2.4.2 Xác suất lai ghép

Xác suất lai ghép cho biết việc lai ghép tạo ra thế hệ mới được thực hiện thường xuyên như thế nào Xác suất lai ghép là , khi đó khả năng để một cá thể được lai ghép là Nếu không thực hiện lai ghép, con sinh ra sẽ giống hoàn toàn bố mẹ Nếu được lai ghép, con sinh ra sẽ có một phần giống bố và một phần giống mẹ

2.4.3 Xác suất đột biến

Xác suất đột biến cho biết các gien của cá thể thay đổi thường xuyên như thế nào Xác suất đột biến là , khi đó khả năng để mỗi gien của một cá thể bất kỳ bị đột biến là Toán tử đột biến có tác dụng ngăn ngừa thuật toán di truyền rơi vào tình trạng cực trị địa phương, tuy nhiên nếu thực hiện đột biến với xác suất quá cao sẽ biến thuật toán di truyền thành thuật toán tìm kiếm ngẫu nhiên

2.5 Khởi tạo quần thể ban đầu

Khởi tạo quần thể ban đầu là bước đầu tiên trong thuật toán di truyền Thông thường để khởi tạo quần thể trong bài toán tối ưu, ta tạo ra một cách ngẫu nhiên các lời

giải có thể (thường là các lời giải thỏa mãn ràng buộc của bài toán nhưng chưa biết là đại lượng cần tối ưu đã là tối ưu hay chưa) Tùy vào từng bài toán cụ thể mà ta có các

phương pháp khởi tạo khác nhau Chất lượng của quần thể ban đầu càng cao thì lời giải mà thuật toán di truyền đưa ra càng tốt Do đó, trong nhiều thuật toán di truyền thường sử dụng các thuật toán đã có để giải bài toán mà cho kết quả khá tốt để khởi tạo quần thể ban đầu

2.5.1 Hàm tính độ thích nghi

Theo các nghiên cứu và các thử nghiệm của nhiều nhà nghiên cứu về thuật toán

di truyền thì hàm tính độ thích nghi là một trong hai yếu tố quan trọng nhất quyết định

sự thành công hay thất bại của thuật toán di truyền

Hàm thích nghi được xây dựng sao cho giá trị thích nghi phải phản ánh được giá trị thực của cá thể trong việc đáp ứng yêu cầu của bài toán

Trang 35

- Cách biểu diễn các cá thể thứ là ;

- Hàm tính độ thích nghi của cá thể là ( );

- Kích thước quần thể là _ ;

- Số cá thể cần chọn là

2.5.2.1.Chọn lọctheo nguyên lý bánh xe Roulette

Trước khi chọnlọc thì tính các giá trị sau:

- Tính tổng độ thích nghi của cả quần thể:

Phương pháp chọn lọc theo bánh xe Rouletteđược thực hiện bằng cách quay bánh

xe Roulette _ lần Mỗi lần chọn một cá thể từ quần thể hiện hiện vào quần thể mới bằng cách sau:

- Phát sinh ngẫu nhiên một số trong đoạn[0, 1]

- Nếu < thì chọn cá thể ; ngược lại thì chọn cá thể thứ với giá trị của (2 £ £ _ ) sao cho £ £

Để minh họa, ta xét một quần thể với 5 cá thể _ = 5, với các giá trị thích nghi được cho trong Bảng 2.1 Tổng độ thích nghi của cả quần thể = 28 +

18 + 14 + 9 + 26 = 95 Xác suất lựa chọn một cá thể và các xác suất tích lũy cũng được trình bày trong Bảng 2.1

Xác suất tích lũy, 0.295 0.484 0.631 0.726 1.000 Bảng 2.1: Độ thích nghi và xác suất và xác suất tích lũy của các cá thể

Bây giờ nếu chúng ta sinh một số ngẫu nhiên = 0.585 thì cá thể thứ 3 sẽ được chọn vì = 0.484 < 0.585 < = 0.631

Với cơ chế lựa chọn như thế này thì có một số cá thể sẽ được chọn nhiều lần Điều này phù hợp với lý thuyết các cá thể tốt nhất thì có nhiều bản sao, cá thể trung bình thì không đổi, cá thể kém thì chết đi

2.5.2.2.Chọn lọcxếp hạng

Cơ chế lựa chọn xếp hạng được mô tả như sau:

Trang 36

- Sắp xếp các cá thể trong quần thể theođộ thích nghi từ thấp đến cao

- Đặt lại độ thích nghi cho quần thể đã sắp xếp theo kiểu: cá thể thứ nhất có độ

thích nghi là 1, cá thể thứ hai có độ thích nghi là 2, , cá thể thứ pop_size có độ thích

nghi là _

Theo phương pháp này việc một cá thể được chọn nhiều lần như trong lựa chọn theo kiểu bánh xe Roulette đã giảm đi Nhưng nó có thể dẫn đến sự hội tụ chậm và cá thể có độ thích nghi cao cũng không khác mấy so với các cá thể khác

2.5.2.3 Chọn lọc cạnh tranh

a) Chọn lọc cạnh tranh 2 (2 - tournament selection)

Hai nhiễm sắc thể khác nhau được chọn ngẫu nhiên và được so sánh với nhau Nếu cá thể không tốt hơn cá thể nghĩa là: ( )≤ ( ) thì cá thể chết đi và bị loại ra khỏi quần thể Quá trình này lặp đến hết cá thể còn lại

b) Chọn lọc cạnh tranh 3 (3 - tournament selection)

Giống như trên 3 cá thể được chọn ngẫu nhiên và được so sánh Nếu chúng ta

có ( )≤ ( ) và ( ) ≤ ( ) thì cá thể chết đi và bị loại ra khỏi quần thể Quá trình này lặp đến hết cá thể còn lại

Các toán tử di truyền của thuật toán di truyền là toán tử lai ghép và đột biến Đây là hai toán tử có tác động lớn đến chất lượng của thuật toán Các toán tử này được xây dựng phụ thuộc vào cách mã hoá các cá thể Ở đây chỉ đưa ra toán tử lai ghép và đột biến trên một số cách mã hoá cá thể để chỉ ra được ý tưởng xây dựng toán tử lai ghép và đột biến trong thuật toán di truyền Còn tuỳ thuộc vào các bài toán cụ thể và cách mã hoá cá thể mà ta xây dựng hai loại toán tử này

2.5.3 Các toán tử lai ghép

2.5.3.1 Lai ghép ánh xạ từng phần (PMX-Partially Mapped Crossover)

Lai ghép ánh xạ từng phần có thể xem như một phép biển đổi của lai ghép hai điểm Vì vậy, nó luôn sinh ra các cá thể con hợp lệ Hai cha mẹ và hai điểm lai ghép được lựa chọn và sinh ra một cách ngẫu nhiên PMX bao gồm các bước chính sau:

Bước 1.Chọn hai điểm cắt nhau cùng với một chuỗi một cách ngẫu nhiên Chuỗi con được định nghĩa bởi hai điểm cắt được gọi là ánh xạ thành phần;

Bước 2 Hoán vị hai chuỗi con giữa các cá thể cha mẹ để tạo ra cá thể con; Bước 3 Xác định quan hệ ánh xạ giữa các phần ánh xạ;

Bước 4 Hợp thức cá thể con với các quan hệ ánh xạ

Trang 37

Bước 2 Hoán vị giữa cá thể cha và mẹ ta được hai cá thể con proto-child (PC1)

và proto-child (PC2) Trong hai cá thể con có các gien chưa biết x (ẩn số cần tìm)

Bước 3 Hoán vị này, cũng định nghĩa một chuỗi ánh xạ 2 → 5, 3 → 6 và

Hình 2.10: Minh họa các bước của lai ghép từng phần (PMX)

2.5.3.2 Lai ghép có thứ tự (OX - Order Crossorver)

Lai ghép có thứ tự có thể được xem như là một biến thể của lai ghép ánh xạ từng phần OX bao gồm các bước sau:

Bước 1 Chọn ngẫu nhiên một chuỗi con từ một cá thể cha mẹ;

Bước 2 Tạo ra một proto-childbằng cách sao chép chuỗi con vào những vị trí tương ứng như trong cá thể cha mẹ;

Bước 3 Xóa tất cả các ký hiệu từ cá thể cha mẹ thứ hai, lúc này đã có trong chuỗi con Chuỗi còn lại chứa các ký hiệu mà proto-child cần;

Bước 4 Đặt những ký hiệu vào những vị trí không cố định của proto-child từ trái sang phải theo trật tự của chuỗi để tạo ra cá thể con

Đầu tiên, phân đoạn giữa để cắt các điểm được sao chép vào cá thể con

Trang 38

Chuỗi bắt đầu của điểm cắt thứ hai của cha mẹ thứ hai là:

9 → 5 → 4 → 6 → 8 → 7 → 1 → 2 → 3 → 10 Chuỗi sau khi loại bỏ các giá trị 5, 6 và 7, cũng ở trong cá thể con đầu tiên là:

9 → 4 → 8 → 1 → 2 → 3 → 10 Cuối cùng, chuỗi này được đặt trong PC1 để tạo ra cá thể con bắt đầu từ điểm cát thứ hai Tương tự, ta có cá thể con thứ hai

Hình 2.11: Minh họa các bước của lai ghép có thứ tự (OX)

2.5.3.3 Lai ghép dựa theo vị trí (POS - Position Based Crossover)

Lai ghép dựa theo vị trí được đưa ra bởi Syswerda thực chất là một loại lai ghép đồng nhất cho một miêu tả hoán vị cùng với một thủ tục sửa chữa Nó cũng được xem như một kiểu biến đổi của OX với các vị trí được chọn một cách không liên tục

POS bao gồm các bước sau:

Bước 1 Chọn ngẫu nhiên một tập hợp các vị trí từ một cá thể cha mẹ;

Bước 2 Tạo ra một proto-child bằng cách sao chép các ký hiệu trên các vị trí này vào trong các vị trí tương ứng của proto-child;

Bước 3 Xóa các ký hiệu, lúc này đã được chọn từ cá thể cha mẹ thứ hai Chuỗi kết quả chỉ chứa các ký hiệu proto-child cần;

Bước 4 Đặt các ký hiệu vào những vị trí không cố định của proto-child từ trái qua phải tương ứng với trật tự của chuỗi để tạo ra một cá thể con

Thủ tục này được minh họa trong Hình 2.11

Các vị trí được chọn trong cá thể cha mẹ thứ nhất 2, 5, 6 và 9 Sao chép giá trị các gien tại vị trí này cho proto-child

Hình 2.12: Minh họa các bước của lai ghép có thứ tự (POS)

Trang 39

2.5.3.4 Lai ghép dựa trên thứ tự (Order Base Crossover)

Lai ghép dựa trên thứ tự cũng được đưa ra bởi Syswerda Nó là một thay đổi nhỏ của lai ghép dựa trên vị trí (POS), trong đó, thứ tự của các ký hiệu được chọn trong cá thể cha thứ nhất được áp đặt bởi các ký hiệu tương ứng trên cá thể cha mẹ thứ hai

Thủ tục này được minh họa trong Hình 2.13

Các vị trí được chọn trong cá thể cha mẹ thứ nhất 2, 5, 6 và 9 Sao chép giá trị các gien tại vị trí này cho proto-child

Các ký hiệu tại những vị trí này (theo thứ tự cho trước) trong cá thể cha mẹ thứ

hai là 4, 1, 9 và 8 Cá thể con là một bản sao của cá thể mẹ trên mọi vị trí ngoại trừ các

ký hiệu trên các vị trí 2, 5, 6 và 9 (tức là 4, 1, 9, và 8)

Hình 2.13: Minh họa các bước của lai ghép (POS)

2.5.3.2 Lai ghép có chu trình (CX - Cycle Crossover)

CX đước đưa ra bởi Oliver, Smith và Holland, nó giống lai ghép dựa trên vị trí,

nó chọn một số ký hiệu từ cá thể cha hoặc mẹ và các ký hiệu còn lại được chọn từ cá thể cha hoặc mẹ khác Điểm khác nhau là các ký hiệu lấy từ cá thể cha không được chọn một cách ngẫu nhiên và chỉ những ký hiệu được chọn mới xác định một chu trình tương ứng giữa các cá thể cha mẹ CX bao gồm các bước sau:

Bước 1 Tìm một chu trình được xác định bởi những vị trí tương ứng của các ký hiệu giữa các cá thể cha mẹ;

Bước 2 Sao chép các ký hiệu trong chu trình vào cá thể con bởi những vị trí tương ứng trong một các thể cha mẹ;

Bước 3 Xác định các ký hiệu còn lại cho cá thể con bằng cách xóa những ký hiệu này, bây giờ đã là một chu trình từ một cá thể cha mẹ khác;

Bước 4 Điền cá thể con với các ký hiệu còn lại

Thủ tục này được minh họa trong Hình 2.14

Bước 1 Tìm chu trình được định nghĩa bởi các ký hiệu giữa các cá thể cha mẹ

Con

Trang 40

Chu trình: 1 → 5 → 2 → 4 → 9 → 1

Bước 2 Sao chép các ký hiệu trong chu trình vào một cá thể con

Bước 3 Xác định các ký hiệu còn lại cho các cá thể con

Các ký hiệu còn lại 6, 3, 7, và 8 Bước 4 Điền đầu đủ các ký hiện còn lại trong cá thể con

Hình 2.14: Minh họa các bước của lai ghép (CX) 2.5.4 Toán tử đột biến

2.5.4.1 Đột biến đảo ngược (Inversion Mutation)

Chọn hai vị trí ngẫu nhiên trong một cá thể và sau đó, nghịch đảo chuỗi giữa hai vị trí này

Hình 2.15: Minh họa đột biến ngược

2.5.4.2 Đột biến chèn (Insertion Mutation)

Chọn ngẫu nhiên một gien và sau đó chèn gien đó vào vị trí ngẫu nhiên

Hình 2.16:Minh họa đột biến chèn

2.5.4.3 Đột biến thay thế (Displacement Mutation)

Chọn ngẫu nhiên một chuỗi con và chèn nó vào một vị trí ngẫu nhiên Đột biến chèn có thể xem như là một trường hợp đặc biệt của đột biến thay thế, trong đó chuỗi con chỉ chứa một gien

2

1 Cha

2

1 Cha

Proto-child

Proto-child

Ngày đăng: 25/11/2015, 17:20

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Các tiếp cận cho bài toán lập lịch JSP - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 1.1 Các tiếp cận cho bài toán lập lịch JSP (Trang 15)
Hình 1.2: Tuần tự công nghệ  bằng cách trao đổi cặp công việc liền kề - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 1.2 Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề (Trang 24)
Hình 1.3: Tuần tự công nghệ   bằng cách trao đổi cặp công việc liền kề - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 1.3 Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề (Trang 25)
Hình 1.4:Tuần tự công nghệ  bằng cách trao đổi cặp công việc liền kề - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 1.4 Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề (Trang 26)
Hình 1.5: Tuần tự công nghệ  bằng cách trao đổi cặp công việc liền kề - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 1.5 Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề (Trang 27)
Hình 1.6:Tuần tự công nghệ  bằng cách trao đổi cặp công việc liền kề - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 1.6 Tuần tự công nghệ bằng cách trao đổi cặp công việc liền kề (Trang 28)
Hình 2.9: Sơ đồ mô tả thuật toán di truyền cơ bản - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 2.9 Sơ đồ mô tả thuật toán di truyền cơ bản (Trang 33)
Hình 3.2: Đồ thị không liên thông biểu diễn một lời giải của PFSP - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 3.2 Đồ thị không liên thông biểu diễn một lời giải của PFSP (Trang 45)
Hình 3.3: Các tính thời gian hoàn thành trong đồ thị không liên thông - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 3.3 Các tính thời gian hoàn thành trong đồ thị không liên thông (Trang 46)
Hình 3.4: Các cạnh tới hạn của đồ thị không liên thông - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 3.4 Các cạnh tới hạn của đồ thị không liên thông (Trang 47)
Hình 3.7: Biểu đồ Grant của lịch biểu tối ưu bài toán 2 máy - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 3.7 Biểu đồ Grant của lịch biểu tối ưu bài toán 2 máy (Trang 52)
Bảng 3.8: Kết quả chạy thực nghiệm - Nghiên cứu các bài toán lịch biểu và ứng dụng
Bảng 3.8 Kết quả chạy thực nghiệm (Trang 64)
Hình 4.1:Phân lớp các lịch biểu - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 4.1 Phân lớp các lịch biểu (Trang 65)
Hình 4.5: Lập lịch sử dụng thuật toán GT - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 4.5 Lập lịch sử dụng thuật toán GT (Trang 69)
Hình 4.9: Cá thể cha tham gia lai ghép và cá thể con sau lai ghép - Nghiên cứu các bài toán lịch biểu và ứng dụng
Hình 4.9 Cá thể cha tham gia lai ghép và cá thể con sau lai ghép (Trang 75)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm