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

Nghiên cứu thuật toán di truyền cho bài toán xếp thời khóa biểu trường trung học phổ thông

66 8 0

Đ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 đề Nghiên Cứu Thuật Toán Di Truyền Cho Bài Toán Xếp Thời Khóa Biểu Trường THPT
Tác giả Phan Văn Thế
Người hướng dẫn TS. Vũ Chí Cường
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2018
Thành phố Vinh
Định dạng
Số trang 66
Dung lượng 1,14 MB

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

Nội dung

Đối với bài toán ứng dụng thuật toán di truyền để sắp xếp thời khóa biểu, đã có một số tác giả nghiên cứu và triển khai trong các luận văn tốt nghiệp cao học thạc sĩ ngành công nghệ thôn

Trang 2

PHAN VĂN THẾ

NGHIÊN CỨU THUẬT TOÁN DI TRUYỀN CHO BÀI TOÁN XẾP THỜI KHÓA BIỂU

TRƯỜNG THPT Chuyên ngành: CÔNG NGHỆ THÔNG TIN

Mã số: 60.48.02.01

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học: TS.VŨ CHÍ CƯỜNG

Vinh, tháng 7/2018

Trang 3

và hoàn thành luận văn

Xin chân thành cảm ơn Lãnh đạo Trường Đại học Vinh, Viện Kỹ thuật

và Công nghệ đã giúp đỡ, hỗ trợ để tôi hoàn thành tốt công việc học tập và nghiên cứu khoa học Tôi cũng xin cảm ơn Lãnh đạo Trường THPT Quỳ Châu đã tạo điều kiện về thời gian, công việc để tôi có thể theo học và hoàn thành khóa học của mình

Đặc biệt em xin tỏ lòng kính trọng và biết ơn sâu sắc đối với thầy giáo

TS Vũ Chí Cường đã trực tiếp tận tình hướng dẫn, đưa ra những gợi ý, góp ý, chỉnh sửa cũng như cung cấp tài liệu thông tin khoa học cần thiết cho luận văn này

Cuối cùng tôi xin chân thành cảm ơn đồng nghiệp, gia đình và bạn bè

đã động viên, giúp đỡ tôi trong quá trình học tập và thực hiện luận văn

Nghệ An, ngày 10 tháng 7 năm 2018

TÁC GIẢ

Phan Văn Thế

Trang 4

MỤC LỤC

DANH MỤC CÁC BẢNG VÀ CÁC HÌNH 5

MỞ ĐẦU 6

1 Lý do chọn đề tài 6

2 Lịch sử vấn đề 7

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

4 Mục đích, nhiệm vụ nghiên cứu 8

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

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

7 Cấu trúc của luận văn 10

Chương I 11

BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU 11

1.1 Tổng quan về bài toán lập lịch 11

1.1.1 Bài toán 12

1.1.2 Các thuộc tính 12

1.1.3 Một số bài toán lập lịch cơ bản 12

1.2 Bài toán xếp thời khóa biểu 13

1.2.1 Bài toán 13

1.2.2 Dữ liệu đầu vào 14

1.2.3 Các ràng buộc 14

1.3 Một số Phần mềm xếp tời khóa biểu THPT 15

Chương II 17

THUẬT TOÁN DI TRUYỀN 17

2.1 Tổng quan về thuật toán di truyền 17

2.1.1 Giới thiệu 17

2.1.2 Sự khác biệt của thuật toán di truyền và thuật toán khác 18

2.1.3 Các tính chất của thuật toán di truyền 19

2.1.4 Sơ đồ và cấu trúc thuật toán di truyền 20

2.2 Các thành phần trong thuật toán di truyền 22

2.2.1 Biểu diễn nhiễm sắc thể 22

2.2.1.1 Biểu diễn nhị phân 22

2.2.1.2 Biểu diễn số thực 22

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

Trang 5

2.2.3 Đánh giá cá thể 23

2.2.4 Các phép toán di truyền 24

2.2.4.1 Phương pháp chọn lọc 24

2.2.4.2 Phương pháp lai ghép 27

2.2.4.3 Phương pháp đột biến 27

2.2.5 Điều kiện dừng của thuật toán 28

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

2.3 Ứng dụng của thuật toán di truyền 28

2.3.1 Bài toán người du lịch (TSP) 29

2.3.2 Bài toán lập lịch 29

2.3.3 Lập thời khóa biểu cho trường học 30

2.3.4 Phân hoạch đối tượng và đồ thị 31

2.3.5 Vạch đường cho Robot di chuyển 31

Chương III 33

ỨNG DỤNG THUẬT TOÁN DI TRUYỀN 33

CHO BÀI TOÁN LẬP THỜI KHÓA BIỂU 33

3.1 Phát biểu bài toán 33

3.1.1 Dữ liệu đầu vào 33

3.1.1.1 Danh sách lớp học 33

3.1.1.2 Danh sách môn học 34

3.1.1.3 Danh sách giáo viên 35

3.1.1.4 Bảng phân côn giảng dạy 35

3.1.2 Biểu diễn nhiễm sắc thể 37

3.1.3 Khởi tạo quần thể 38

3.1.4 Các phép toán di truyền 42

3.1.4.1 Lai ghép 43

3.1.4.2 Đột biến 44

3.1.4.3 Chọn lọc 44

3.1.4.4 Hàm đánh giá độ thích nghi 45

3.1.5 Thuật toán sắp xếp thời khóa biểu 49

3.2 Phân tích và thiết kế chương trình 52

3.2.1 Một số bước cơ bản để giải quyết bài toán lập lịch thời khoá biếu 52

3.2.2 Phân tích và Mô tả dữ liệu đầu vào 52

3.2.3 Thiết kế chương trình 54

3.2.3.1 Menu chính của chương trình 55

3.2.3.1 Các Form nhập dữ liệu 55

3.3 Thử nghiệm và đánh giá kết quả 58

3.3.1 Số liệu thử nghiệm 58

3.3.2 Biểu đồ so sánh Lai ghép 59

Trang 6

3.3.2.1 Thời khóa biểu lớp 59

3.3.2.2 Thời khóa biểu giáo viên 60

KÉT LUẬN 62

1 Kết quả đạt được 62

2 Hạn chế, hướng phát triển 62

TÀI LIỆU THAM KHẢO 63

Trang 7

DANH MỤC CÁC BẢNG VÀ CÁC HÌNH

Hình 1.1 Quy trình xếp thời khóa biểu

Hình 2.1: Thuật toán di truyền

Hình 2.2 Minh họa cho kỹ thuật chọn lọc theo kiểu quay bánh xe Hình 3.1 Cấu trúc Nhiễm sắc thể

Hình 3.9 Form nhập liệu Phân công giảng dạy

Hình 3.10 Form nhập liệu Các ràng buộc mềm

Hình 3.11 Form các tham số di truyền

Hình 3.12 Form thao tác xếp TKB

Hình 3.13 Biểu đồ so sánh giá trị thích nghi

Bảng 1.1 Nội dung công việc xếp thời khóa biểu

Bảng 3.1 Danh sách lớp học

Bảng 3.2 Danh sách môn học

Bảng 3.3 Danh sách Giáo viên

Bảng 3.4 Bảng phân công giảng dạy

Bảng 3.5 Ví dụ về danh sách các tiết học

Bảng 3.6 Ví dụ về phân phối các tiết học

Bảng 3.7 Ví dụ về các tiết cố định

Bảng 3.8 Ví dụ về thời khóa biểu 1 lớp

Bảng 3.9 Quy định tiết được học trong thời khóa biếu

Bảng 3.10 Thời khóa biểu lớp học

Bảng 3.11 Thời khóa biểu Giáo viên

Trang 8

MỞ ĐẦU

1 Lý do chọn đề tài

Thời khóa biểu của trường học là một kế hoạch giảng dạy của giáo viên

và học tập của học sinh Một bảng thời khóa biểu hợp lý giúp giáo viên thuận lợi, chủ động khi lên lớp và giúp học sinh thoải mái khi học tập

Việc lập hay xếp thời khóa biểu là hoạt động quan trọng của mỗi một nhà trường và phải luôn luôn hoàn thành trước khi triển khai giảng dạy Lập thời khóa biểu bằng phương pháp thủ công là công việc rất nặng nề, tốn nhiều thời gian và dễ vi phạm các ràng buộc về nghiệp vụ Do vậy, khi áp dụng phải trải qua một vài lần điều chỉnh mới có thể đạt được yêu cầu cơ bản

Đã từ lâu, việc lập thời khóa biểu cho các trường học đã được tổng quát hóa thành bài toán, các nhà nghiên cứu đã và đang tìm các phương pháp giải

nó bằng các công cụ, thuật toán tin học Các bài toán xếp thời khóa biểu rất phong phú và đa dạng bởi những ràng buộc và yêu cầu đặc trưng của từng trường học, thậm chí từng môn học Bởi vậy lời giải của bài toán xếp thời khóa biểu thường là những giải pháp chấp nhận được, hay nói cách khác bài toán xếp thời khóa biểu là một bài toán tối ưu

Trong khoảng 50 năm qua, thuật toán di truyền và các cải tiến - phát triển của nó gọi chung là thuật toán tiến hóa đã thực sự tạo ra các kết quả rất khả quan khi áp dụng giải quyết các bài toán tối ưu Thuật toán di truyền mô phỏng sự tiến hóa tự nhiên của sinh học với quan niệm sự tiến hóa tự nhiên của sinh học là một quá trình tối ưu Thuật toán trên tỏ ra rất hiệu quả trong

Trang 9

việc áp dụng giải quyết các bài toán tối ưu trong thực tế, tiêu biểu là bài toán lập thời khóa biểu trường học

Ở Việt Nam đã có một vài phần mềm lập thời khóa biểu khá tốt, nhưng chưa đáp ứng hết các yêu cầu thực tế cũng như cách tổ chức giảng dạy của từng trường Trường THPT Quỳ Châu, nơi tôi đang giảng dạy, chưa có phần mềm lập thời khóa biểu riêng để đáp ứng các điều kiện cụ thể của nhà trường

Xuất phát từ những vấn đề trên, đề tài “Nghiên cứu thuật toán di truyền cho bài toán xếp thời khóa biểu trường trung học phổ thông” được tôi lựa

chọn làm luận văn tốt nghiệp Luận văn tập trung nghiên cứu về thuật toán di truyền và đồng thời giải quyết bài toán thời khóa biểu về mặt lý thuyết lẫn thực hành, xem như là một thử nghiệm đầu tiên

Do khả năng và thời gian hạn chế, tôi chỉ mới hoàn thành phần mềm ở mức cơ bản nhất, chỉ tạm sử dụng nội bộ trong trường nơi tôi công tác Hy vọng trong thời gian tới, tôi sẽ bổ sung thêm chức năng cho phần mềm và hoàn chỉnh thành sản phẩm sử dụng được trong ngành giáo dục nói chung

2 Lịch sử vấn đề

Thuật toán di truyền (tên tiếng Anh là Genetic Algorithms, viết tắt là GA) đã được giáo sư J.H Holland công bố lần đầu tiên vào năm 1962 Thuật toán di truyền được hình thành dựa trên quan niệm rằng “quá trình tiến hóa tự nhiên là một quá trình hoàn hảo và hợp lý nhất, tự quá trình này đã mang tính tối ưu” Từ khi ra đời cho đến nay, thuật toán di truyền đã được nhiều nhà toán học, nhà tin học nghiên cứu các vấn đề về lý thuyết và ứng dụng

Thuật toán di truyền là một nhánh lớn trong lĩnh vực nghiên cứu về thuật toán tiến hóa (tên tiếng Anh là Evolutionary Algorithms, viết tắt là EAs) Thuật toán di truyền nói riêng và EAs nói chung có thế mạnh thật sự trong việc giải quyết các bài toán khó, bài toán tối ưu số và tối ưu tổ hợp Một trong các ứng dụng kinh điển của Thuật toán di truyền là bài toán sắp xếp thời

Trang 10

khóa biểu

Ở nước ta, thuật toán di truyền và ứng dụng nhận được sự quan tâm của nhiều nhà khoa học Đối với bài toán ứng dụng thuật toán di truyền để sắp xếp thời khóa biểu, đã có một số tác giả nghiên cứu và triển khai trong các luận văn tốt nghiệp cao học thạc sĩ ngành công nghệ thông tin Tiêu biểu trong số này có thể kể đến:

- Tính toán tiến hóa và ứng dụng lập thời khóa biểu trường trung học phổ thông của ThS Trần Quốc Hưng tại Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội năm 2004 (xem [8])

- Ứng dụng giải thuật di truyền để xếp thời khóa biểu hệ tín chỉ cho trường đại học của ThS Phạm Anh Tuấn tại Trường Đại học Đà Nẵng năm

2012 (xem [7])

- Giải thuật di truyền và bài toán lập thời khóa biểu của ThS Đồng Văn Tuấn tại Trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên năm 2014 (xem [4])

Trong các công trình này, bài toán sắp xếp thời khóa biểu được nghiên cứu và giải quyết Tuy nhiên chỉ dừng lại ở các bài toán rất cụ thể của từng đơn vị, từng trường mà chưa thể mở rộng một cách tổng quát

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

Tìm hiểu bài toán lập lịch

Tìm hiểu thuật toán di truyền, ứng dụng thuật toán di truyền vào bài toán lập thời khóa biểu

Xây dựng ứng dụng lập thời khóa biểu cho trường THPT nói chung và Trường THPT Quỳ Châu nói riêng

4 Mục đích, nhiệm vụ nghiên cứu

Xây dựng được phần mềm sắp xếp thời khóa biểu của Trường THPT Quỳ Châu thích nghi, linh hoạt, đáp ứng các yêu cầu ràng buộc của bài toán

Trang 11

và thực tế của nhà trường Phần mềm hướng tới có thể đáp ứng các yêu cầu ràng buộc của trường THPT nói chung

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

- Nghiên cứu, tìm hiểu các tài liệu liên quan;

- Phân tích và thiết kế phần mềm;

- Viết chương trình;

- Thử nghiệm và phân tích kết quả

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

Luận văn bổ sung thêm một tài liệu tham khảo lý thuyết và thực nghiệm về giải thuật di truyền Các kết quả nghiên cứu trong luận văn một lần nữa khẳng định tính ứng dụng hiệu quả của thuật toán di truyền đối với các bài toán tối ưu khó nói chung và bài toán thời khóa biểu nói riêng

Phần mềm sắp xếp thời khóa biểu được nghiên cứu, xây dựng trong luận văn thỏa mãn các điều kiện ràng buộc chung của bài toán xếp thời khóa biểu, phần mềm còn cho phép các trường THPT nói chung và Trường THPT Quỳ Châu nói riêng có thể linh hoạt và chủ động các phương án khác nhau trong việc sắp xếp thời khóa biểu năm học:

- Cho phép khai báo tiết cố định của môn học

- Cho phép khai báo thời gian bận của các giáo viên

- Cho phép giảm thiểu số tiết trống

- Cho phép đặt các ràng buộc mềm như

+ Môn Toán, môn Văn có 1 cặp tiết xếp liền

+ Môn Thể dục, Quốc phòng không dạy tiết 5 và tiết 6

+ Môn được phân 2 tiết trên 1 buổi thì không rời nhau

+ Không phân 3 tiết 1 môn trên 1 buổi

+ Hạn chế giáo viên không dạy 5 tiết trong 1 buổi

Trang 12

7 Cấu trúc của luận văn

Báo cáo luận văn được cấu trúc trong 03 chương

Chương 1 Bài toán sắp xếp thời khóa biểu Mô tả chung về bài toán

thời khóa biểu và một số phần mềm xếp thời khóa biểu dành cho trường THPT hiện nay

Chương 2 Giải thuật di truyền Mô tả các lý thuyết về giải thuật di

truyền, trình bày một số lĩnh vực ứng dụng của giải thuật di truyền

Chương 3 Ứng dụng giải thuật di truyền cho bài toán thời khóa biểu Trường THPT Là nội dung chính của luận văn và được chia làm 3

phần Phần thứ nhất trình bày các thành phần cơ bản của thuật toán di truyền được mã hóa và mô tả một cách cụ thể bài toán và các yêu cầu của bài toán xếp thời khóa biểu của trường THPT Phần thứ 2 là phân tích và thiết kế chương trình Phần thứ ba là các kết quả thực nghiệm và đánh giá

Trang 13

Chương I

BÀI TOÁN SẮP XẾP THỜI KHÓA BIỂU

Bài toán xếp Thời khóa biểu thuộc lớp Bài toán lập lịch, là một trong những bài toán thú vị nhất trong lớp các bài toán tối ưu vì tính chất đa dạng

về mô hình thời khóa biểu, có nhiều ràng buộc phức tạp và tính chất thực tiễn của nó

Bài toán thời khóa biểu thuộc loại bài toán NP-khó, là trường hợp riêng của bài toán lập lịch, trong đó đưa ra một chuỗi các sự kiện (các môn học, bài giảng hoặc môn thi) và bao gồm các giáo viên và học sinh trong một khoảng thời gian định trước, và một tập các ràng buộc phải thỏa mãn của từng loại thời khóa biểu khác nhau Tập ràng buộc bao gồm khả năng tham dự của học sinh, khả năng làm việc của giáo viên, số lượng và sức chứa của phòng học và các yêu cầu của các sự kiện

1.1 Tổng quan về bài toán lập lịch

Bài toán lập lịch là chọn một chuỗi các thao tác, đồng thời chỉ định về thời gian bắt đầu/ kết thúc và các tài nguyên cần thiết cho mỗi thao tác Điều cần quan tâm chính yếu là chi phí thời gian máy rỗi, năng lực lao động và các đơn đặt hàng cần hoàn thành đúng hạn Ý tưởng chính trong phương pháp là

mã hóa biểu diễn của lịch phân công là các toán tử di truyền phải thực hiện theo cách có ý nghĩa, và một bộ giải mã phải luôn tạo ra một lời giải hợp lệ cho bài toán Thủ tục giải mã mô phỏng các thao tác của công việc theo cách

mà khi một máy tính sẵn sàng chọn lựa, thì thao tác cho phép đầu tiên từ danh sách ưu tiên được lấy ra

Trang 14

1.1.1 Bài toán

Lập lịch có thể được định nghĩa là một bài toán tìm kiếm chuỗi tối ưu

để thực hiện một tập các hoạt động chịu tác động của một tập các ràng buộc cần phải được thỏa mãn Người lập lịch thường cố gắng thử đến mức tối đa sự

sử dụng các cá thể, máy móc và tối thiểu thời gian đòi hỏi để hoàn thành toàn

bộ quá trình nhằm sắp xếp lịch Vì thế bài toán lập lịch là một vấn đề rất khó

để giải quyết Hiện nay có nhiều khả năng để phát triển các kỹ thuật hiện tại

để giải quyết bài toán này Những kỹ thuật đó bao gồm: các tiếp cận Trí tuệ nhân tạo như hệ thống tri thức cơ sở (knowledge-based systems), bài toán thoả mãn ràng buộc, hệ chuyên gia, mạng Nơron và các tiếp cận của các nghiên cứu hoạt động: lập trình tính toán, lập trình động, tìm kiếm nhánh và đường biên, kỹ thuật mô phỏng, tìm kiếm Tabu và phương pháp nút cổ chai,…

1.1.3 Một số bài toán lập lịch cơ bản

- Bài toán lập lịch Job Shop;

- Bài toán gia công;

- Bài toán lịch trực;

- Lập lịch ưu tiên đúng hạn;

Trang 15

- Bài toán xếp thời khóa biểu trường học,…

1.2 Bài toán xếp thời khóa biểu

1.2.1 Bài toán

Bài toán sắp xếp thời khóa biểu ở trường học nói chung và sắp xếp thời khóa biểu ở trường trung học phổ thông nói riêng là một bài toán khó Sự phức tạp của bài toán không chỉ ở vấn đề tìm ra môt thời khóa biểu cho trường học thỏa mãn các ràng buộc về thời gian, ràng buộc chuyên môn, quy định của Bộ Giáo dục và Đào tạo mà còn một vấn đề khó khăn hơn là ta phải tìm được một thời khóa biểu tốt thích hợp cho tất cả các giáo viên, phải thỏa mãn các điều kiện, yêu cầu về thời gian, hạn chế số tiết trống trong một ngày

và số ngày lên lớp của giáo viên trong thời khóa biểu

Quy trình để xếp thời khóa biểu có thể biểu diễn như sau:

Việc sắp xếp thời khóa biểu của các trường phổ thông luôn luôn phải thực hiên trước khi học kỳ mới bắt đầu Theo đó, nội dung các môn học và

Chia lớp và ổn định

lớp học

Danh sách giáo viên

Môn học của lớp

và môn dạy của giáo viên

Danh sách lớp học

Danh sách giáo viên

Yêu cầu ràng buộc của Giáo viên và của Lớp

XẾP TKB

TKB của lớp và TKB của giáo viên

Các ràng buộc mềm

Hình 1.1 Quy trình xếp thời khóa biểu

Trang 16

giáo viên phụ trách môn học của từng lớp phải được xác định thông qua cuộc họp chuyên môn, kết quả của cuộc họp này được gửi cho Ban giám hiệu nhà trường và việc lên lịch cho toàn bộ trường do Phó hiệu trưởng phụ trách chuyên môn hoặc Thư kí Hội đồng trường đảm nhiệm Hiện nay, việc sắp thời khóa biểu này ở hầu hết các trường phổ thông đều được thực hiện một cách thủ công và hầu như phải dựa vào kinh nghiệm thực tế mới có thể làm được Thông thường việc sắp xếp thời khóa biểu này phải mất trung bình một tuần

Vậy bài toán đặt ra là cần phải sắp xếp thời khoá biểu cho một trường THPT hay sắp xếp lịch học của các lớp học sao cho vừa phù hợp lại vừa tiện

dụng nhất

1.2.2 Dữ liệu đầu vào

- Danh sách môn học;

- Danh sách lớp học;

- Danh sách giáo viên;

- Bảng phân công giáo viên giáo dạy tại các lớp;

- Bảng yêu cầu ràng buộc của giáo viên với lịch dạy;

- Bảng yêu cầu ràng buộc của lớp với lịch học

1.2.3 Các ràng buộc

Ràng buộc cứng:

- Một giáo viên chỉ dạy được một lớp trong cùng một tiết;

- Mỗi lớp chỉ học 1 môn tại 1 thời điểm;

- Các lớp chỉ có một môn học trong cùng một tiết;

- Một giáo viên không thể dạy quá 30 tiết mỗi tuần

Ràng buộc mềm:

- Một giáo viên không dạy quá 5 tiết/buổi;

- Môn Toán, Văn có 1 cặp 2 tiết liền nhau;

- Một môn học không quá 3 tiết trong 1 buổi;

Trang 17

- Hai tiết của 1 môn trong 1 buổi thì liên nhau;

- Một lớp có thể có cùng một môn nhiều lần trong một ngày;

Danh sách giáo viên

4 Phân công chuyên môn Phó HT phụ trách

CM

Bảng phân công Giảng dạy

5 Các yêu cầu ràng buộc mềm Phó HT phụ trách

CM

6 Các yêu cầu cố định tiết dạy

(lịch bận/rỗi)

Giáo viên, Phó HT phụ trách CM

Bảng dữ liệu bận/rỗi

Bảng 1.1 Nội dung công việc xếp thời khóa biểu

1.3 Một số phần mềm xếp thời khóa biểu THPT

Hiện nay có 2 phần mềm sắp xếp thời khóa biểu THPT được nhiều người biết đến, đó là Phần mềm xếp thời khóa biểu SmartScheduler của công

ty Hoàng Gia và Phần mềm xếp thời khóa biểu của công ty SchoolNet

Phần mềm xếp thời khóa biểu SmartScheduler là sản phẩm dự thi Trí tuệ Việt Nam 2001 của hai kỹ sư tin học Lê Hữu Sơn và Hoàng Cường Theo các tác giả, phần mềm có khả năng tự động sắp xếp thời khoá biểu rất nhanh, phần mềm cũng cung cấp khả năng soạn thảo thời khoá biểu bằng tay nhằm đáp ứng các yêu cầu tế nhị, sát hợp với đặc thù của mỗi trường học

Phần mềm xếp thời khóa biểu của công ty SchoolNet ra đời năm 1989, cho đến nay đã có hơn 25 năm liên tục phát triển Phần mềm có khá nhiều tính năng phù hợp như hỗ trợ hoàn toàn các bảng mã và phông chữ tiếng Việt,

hỗ trợ các mô hình thời khóa biểu, hỗ trợ các ràng buộc cứng và ràng buộc mềm, …

Trang 18

Theo đánh giá chung thì hai phần mềm là có hiệu quả khi sử dụng để xếp thời khóa biểu cho các trường THPT Tuy nhiên, đây là những phần mềm

có phí và là phần mềm đóng mã nguồn nên không thể tìm hiểu hay cải tiến cho phù hợp với đặc điểm riêng của nhà trường

Trang 19

Chương II

THUẬT TOÁN DI TRUYỀN

Thuật toán di truyền trong lĩnh vực tin học là một trong những thuật toán thú vị, bởi vì nó mô phỏng qui luật đấu tranh sinh tồn của tự nhiên và cũng là một thuật toán vô cùng hiệu quả đối với các loại bài toán tối ưu

2.1 Tổng quan về thuật toán di truyền

Thuật toán di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp (combinatorial optimization), là một phân ngành của thuật toán tiến hóa, vận dụng các nguyên lý của tiến hóa như: di truyền, đột biến, chọn lọc tự nhiên, và trao đổi chéo (lai ghép) Nó sử dụng ngôn ngữ máy tính để mô phỏng quá trình tiến hoá của một tập hợp những đại diện trừu tượng (gọi là những nhiễm sắc thể), của các giải pháp có thể (gọi là những cá thể) cho bài toán tối ưu hóa vấn đề Tập hợp này sẽ tiến triển theo hướng chọn lọc những giải pháp tốt hơn

Thuật toán di truyền cũng như các thuật toán tiến hoá, đều được hình thành dựa trên một quan niệm được coi là một tiên đề phù hợp với thực tế khách quan Đó là quan niệm “Quá trình tiến hoá 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 hoá thể hiện tính tối ưu ở chỗ thế hệ sau bao giờ cũng tốt hơn thế hệ trước

2.1.1 Giới thiệu

Trong thuật toán di truyền, người ta dùng thuật ngữ vay mượn của di truyền học như: cá thể, nhiễm sắc thể, gen, quần thể, độ thích nghi, chọn lọc, lai ghép, đột biến, v.v Trong đó cá thể biểu diễn một lời giải, giải pháp của bài toán Không giống như trong tự nhiên, một cá thể có thể có nhiều nhiễm sắc thể, ở đây chúng ta quy ước mỗi cá thể chỉ có một nhiễm sắc thể Các nhiễm sắc thể là một cá thể, là một chuỗi tuyến tính Trong nhiễm sắc thể có

Trang 20

thể có các đơn vị nhỏ hơn đó là gen Mỗi gen đại diện một thuộc tính, tính chất và có vị trí nhất định trong nhiễm sắc thể Quần thể là một tập hợp hữu hạn xác định các cá thể Trong thuật toán di truyền, quần thể là một tập các cá thể biểu diễn một tập các lời giải Các phép toán di truyền như chọn lọc, lai ghép, đột biến được thực hiện trên quần thể để tạo ra một quần thể mới

Một bài toán được giải bằng thuật toán di truyền thường phải qua các bước sau:

nhị phân, chuỗi ký tự, số thập phân,

theo độ thích nghi của chúng

2.1.2 Sự khác biệt của thuật toán di truyền và thuật toán khác

Khi dùng phương pháp truyền thống có một số cách giải sau:

- Phương pháp liệt kê

- Phương pháp giải tích

- Phương pháp tìm kiếm ngẫu nhiên

Đặc trưng của thuật toán di truyền so với các phương pháp truyền thống:

- Thuật toán di truyền làm việc với sự mã hoá của tập thông số chứ không làm việc với các giá trị của các thông số

- Thuật toán di truyền tìm kiếm từ một quần thể các điểm chứ không phải

Trang 21

chứ không phải là các luật chuyển đổi mang tính xác định

- Thuật toán di truyền thường khó cài đặt, áp dụng Tuy nhiên không phải lúc nào cũng cho lời giải chính xác Một số thuật toán di truyền có thể cung cấp lời giải tiềm năng cho một bài toán xác định để người sử dụng lựa chọn

* Ƣu điểm

- Ưu điểm chính là khả năng song song của thuật toán

- Thuật toán di truyền duyệt qua không gian tìm kiếm sử dụng nhiều cá thể (and with genotype rather than phenotype) và ít mắc phải cực trị địa phương như các thuật toán khác

- Dễ thể hiện

- Khi đã có thuật toán gen cơ bản, chỉ cần viết một NST mới (just one object) để xử lý bài toán khác

- Với cùng cách mã hóa bạn có thể thay đổi hàm thích nghi

Mặc dù vậy, trong một số trường hợp chọn và thể hiện mã hóa sẽ gặp

khó khăn

* Nhƣợc điểm

- Nhược điểm chính của thuật toán di truyền là thời gian tính toán

- Thuật toán di truyền có thể chậm hơn các thuật toán khác

- Có thể kết thúc tính toán bất cứ lúc nào

2.1.3 Các tính chất của thuật toán di truyền

Thuật toán di truyền là kỹ thuật chung, giúp giải quyết vấn đề bằng cách

mô phỏng sự tiến hóa của con người hay của sinh vật nói chung trong điều kiện qui định sẵn của môi trường Mục tiêu của thuật toán di truyền không nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu Một cá thể trong thuật toán di truyền sẽ biểu diễn một giải pháp của bài toán Tuy nhiên, không giống với trong tự nhiên là một cá thể có nhiều nhiễm

Trang 22

sắc thể mà để giới hạn trong thuật toán di truyền, 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

Một nhiễm sắc thể được tạo thành từ nhiều gen, mỗi gen 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 gen được coi như một phần tử trong chuỗi nhiễm sắc thể

Một tập hợp các cá thể có cùng một số đặc điểm nào đấy được gọi là quần thể Trong thuật toán di truyền, ta quan niệm quần thể là một tập các lời giải của một bài toán

2.1.4 Sơ đồ và cấu trúc thuật toán di truyền

Hình 2.1: Thuật toán di truyền

Nhận các tham số của bài toán

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

Kết thúc

Bắt đầu

Lựa chọn giải pháp tốt

nhất

Trang 23

Cấu trúc thuật toán:

Begin

t =0;

Khởi tạo P(t);

Tính độ thích nghi cho các cá thể trong P(t);

While (điều kiện dừng chưa thỏa mãn) do

t = t + 1;

Lai P(t) Đột biến P(t) Tính độ thích nghi cho các cá thể trong P(t)

End End

[Bắt đầu ] Nhận các tham số cho thuật toán

[Khởi tạo quần thể] Sinh ngẫu nhiên một quần thể gồm n cá thể (là n

lời giải cho bài toán)

[Quần thể mới] Tạo quần thể mới bằng cách lặp lại các bước sau cho

đến khi quần thể mới hoàn thành

a.[Thích nghi] Ước lượng độ thích nghi eval(x) của mỗi cá thể

b.[Kiểm tra ] Kiểm tra điều kiện kết thúc giải thuật

c.[Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích

nghi của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn)

d.[Lai ghép] Với một xác suất lai ghép được chọn, lai ghép hai

cá thể bố mẹ để tạo ra một cá thể mới

Trang 24

e.[Đột biến] Với một xác suất đột biến được chọn, biến đổi cá

thể mới

[Chọn kết quả] Nếu điều kiện dừng được thỏa mãn thì thuật toán kết

thúc và trả về lời giải tốt nhất trong quần thể hiện tại

2.2 Các thành phần trong thuật toán di truyền

2.2.1 Biểu diễn nhiễm sắc thể

Để áp dụng giải một bài toán bằng thuật toán di truyền, thao tác quan trọng nhất là phải biết chọn cấu trúc dữ liệu phù hợp Để giải bài toán trong thuật toán di truyền, ta thường chọn sử dụng một trong 3 loại cấu trúc dữ liệu sau: Biểu diễn nhị phân, biểu diễn số thực và cấu trúc cây Trong đó biểu diễn

nhị phân và biểu diễn số thực thường được sử dụng nhiều hơn

2.2.1.1 Biểu diễn nhị phân

Quy tắc biểu diễn gen qua chuỗi nhị phân: Chọn chuỗi nhị phân ngắn nhất nhưng đủ thể hiện được tất cả kiểu gen Để biểu diễn chuỗi nhị phân, ta thường dùng các cách sau: Mảng byte, mảng bit biểu diễn bằng mảng byte, mảng bit biểu diễn bằng mảng interger Mảng byte và mảng bit bây giờ ít sử dụng Đối với máy tính ngày nay, người ta thường dùng mảng integer để tối

ưu truy xuất Vì vậy ở đây tôi chỉ giới thiệu về mảng integer

VD: Nhiễm sắc thể x ta biểu diễn bằng 1 chuỗi 15 bit

X=(010100110010101)2

2.2.1.2 Biểu diễn số thực

Sau khi thuật toán di truyền cổ điển được Holland công bố, nó chứng tỏ

là phương pháp tốt để giải các bài toán tối ưu khó và nó được cải tiến phong phú để tăng hiệu quả ứng dụng

Đối với các bài toán khó có miền chấp nhận lớn và đòi hỏi sai số nhỏ thì độ dài của mỗi nhiễm sắc thể theo phương pháp thuật toán di truyền cổ điển rất lớn, nên việc áp dụng thuật toán di truyền rất khó khăn Do vậy,

Trang 25

người ta cải tiến cách biểu diễn nhiễm sắc thể bằng vector số thực để giải bài toán Trong cách biểu diễn này, người ta dùng các vector số thực trong miền chấp nhận được (thuộc tập M) làm nhiễm sắc thể và thiết kế các nhóm phương pháp di truyền cho thích hợp với cách biểu diễn này mà vẫn giữ nguyên thủ tục thuật toán di truyền đã đặc tả ở trên

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

Tạo quần thể đầu tiên trong thuật toán, là nơi xuất phát quá trình tiến hóa, bao gồm tất cả các giá trị thô ban đầu Tùy theo vấn đề của bài toán mà

có cách khởi tạo khác nhau

Quần thể là một tập hợp các cá thể có cùng một số đặc điểm nào đấy Trong giải thuật di truyền ta quan niệm quần thể là một tập các lời giải của một bài toán

Quần thể ban đầu ảnh hưởng khá nhiều đến hiệu quả giải thuật, tuy nhiên trong nhiều bài toán thì quần thể ban đầu thường được lựa chọn ngẫu nhiên Thường phụ thuộc vào kích thước chuỗi mã hóa VD: Nếu có NST 32 bits, thì kích thước quần thể nên cao hơn 16

Kích thước quần thể cho biết có bao nhiêu cá thể trong một quần thể trong mỗi thế hệ Các nghiên cứu và các thử nghiệm đã cho thấy kích thước quần thể không nên quá bé cũng như không quá lớn Nếu có quá ít cá thể thì

sẽ làm giảm không gian tìm kiếm của giải thuật và dễ rơi vào các cục bộ địa phương, như vậy sẽ dễ xảy ra trường hợp bỏ qua các lời giải tốt Tuy nhiên nếu có quá nhiều cá thể cũng sẽ làm cho giải thuật chạy chậm đi, ảnh hưởng đến hiệu quả tính toán của giải thuật 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.2.3 Đánh giá cá thể

Chắc chắn rằng việc chọn cá thể sẽ thông qua kết quả, hay mục đích của vấn đề Các cá thể tốt được chọn lọc để đưa vào thế hệ sau Sự lựa chọn

Trang 26

này được thực hiện dựa vào độ thích nghi với môi trường của mỗi cá thể

Có nhiều phương pháp để chọn các nhiễm sắc thể tốt nhất, ví dụ: chọn lọc Quay bánh xe, chọn lọc Xếp hàng, chọn lọc Cạnh tranh, chọn lọc theo cơ chế lấy mẫu ngẫu nhiên, chọn lọc tranh đấu, vv…

cá thể không thích nghi được với điều kiện sống thì dần mất đi Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọn lựa 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

Việc chọn lọc các cá thể từ một quần thể dựa vào độ thích nghi của mỗi

cá thể Các cá thể có độ thích nghi cao có nhiều khả năng được chọn lựa (những cá thể khỏe mạnh có nhiều khả năng được phối giống) Hàm thích nghi chỉ cần là một hàm thực dương, nó có thể không tuyến tính, không liên tục, không khả vi

Cơ chế lựa chọn được áp dụng khi quần thể P(t+1) được tạo ra từ việc chọn các cá thể từ quần thể P(t) để thực hiện việc lai ghép và đột biến Có

nhiều cách để lựa chọn các cá thể từ một quần thể Sau đây sẽ giới thiệu một

số cơ chế hay áp dụng

Trang 27

Để tiện mô tả các cơ chế lựa chọn ta đưa ra một số kí hiệu sau:

- Cách biểu diễn các nhiễm sắc thể thứ i là v i

- Hàm tính độ thích nghi của nhiễm sắc thể v i là f(v i)

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

- Số nhiễm sắc thể cần chọn là N

* Chọn lọc tỷ lệ (bánh xe Roulet)

Trước khi lựa chọn thì tính các giá trị sau :

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

pop size

i i

v f F

_ 1

) (

- Tính xác suất chọn p i cho mỗi nhiễm sắc thể v i : p i = f(v i )/F

- Tính vị trí xác suất q i của mỗi nhiễm sắc thể : 

i

j j

i P q

1

Cơ chế lựa chọn theo bánh xe Roulet được thực hiện bằng cách quay

bánh xe Roulet N lần Mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành

vào quần thể mới bằng cách sau :

- Phát sinh ngẫu nhiên một số r trong khoảng [0,1]

- Nếu r < q1 (tức là r<1)thì chọn nhiễm sắc thể v1; ngược lại thì chọn

nhiễm sắc thể thứ i ( 2 i pop_size=M ) sao cho q i-1 r q i

Việc chọn lọc theo cách trên có thể minh

họa như sau: Ta có một bánh xe được chia thành n

phần, mỗi phần ứng với độ thích nghi của một cá

thể Một mũi tên chỉ vào bánh xe Quay bánh xe,

khi bánh xe dừng, mũi tên chỉ vào phần nào thì có

thể ứng với phần đó được chọn

Với cơ chế lựa chọn như thế này thì có một

số nhiếm sắc thể sẽ được chọn nhiều lần Điều này

Hình 2.2 Minh họa cho kỹ thuật chọn lọc theo kiểu quay bánh xe

Trang 28

phù hợp với lý thuyết lược đồ: Các nhiễm sắc thể tốt nhất thì có nhiều bản sao, nhiễm sắc thể trung bình thì không đổi, nhiễm sắc thể kém thì chết đi

* Chọn lọc xếp hạng

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

- Sắp xếp các nhiễm sắ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: nhiễm sắc thể thứ nhất có độ thích nghi là 1, nhiễm sắc thể thứ hai có độ thích nghi là 2, v.v., nhiễm sắc thể thứ pop_size có độ thích nghi là pop_size

Theo phương pháp này việc một nhiễm sắc thể được chọn nhiều lần như trong lựa chọn theo kiểu bánh xe Roulet đã giảm đi Nhưng nó có thể dẫn đến

sự hội tụ chậm và nhiễm sắc thể có độ thích nghi cao cũng không khác mấy so với các nhiễm sắc thể khác

* Chọn lọc theo cơ chế lấy mẫu ngẫu nhiên

Cơ chế lựa chọn:

- Biểu diễn xác suất chọn các nhiễm sắc thể lên trên một đường thẳng

- Đặt N điểm chọn lên đường thẳng Các điểm chọn này cách nhau 1/N, điểm đầu tiên đặt ngẫu nhiên trong khoảng [0,1/N]

- Với một điểm chọn, nhiễm sắc thể gần với nó nhất về bên phải sẽ được chọn

Phương pháp này có đặc điểm là các điểm chọn được phân bố đều trên trục số, do đó sẽ gần với điểm xứng đáng được chọn

Trang 29

2.2.4.2 Phương pháp lai ghép

Trên các cá thể được chọn lọc (sau khi thực hiện xong phương pháp chọn lọc), ta tiến hành lai ghép Với cỡ của quần thể là n, ta đưa ra một xác suất lai ghép là pc Xác suất này đưa ra hy vọng là có n*pc cá thể được lai ghép

Với mỗi cá thể, ta thực hiện hai bước sau đây:

Bước 1: Sinh ra một xác suất lai ghép là số thực r nào đó trong đoạn [0,1]

Bước 2: Nếu r < pc thì cá thể đó được chọn để lai ghép từ các cá thể được chọn để lai ghép, ta cặp đôi chúng một cách ngẫu nhiên Trong trường hợp nhiễm sắc thể là các chuỗi nhị phân có độ dài cố định, giả sử là m, ta có thể thực hiện phép lai ghép như sau:

Với mỗi cặp, sinh ra một vị trí ngẫu nhiên làm điểm bắt đầu ghép là một số nguyên p trong đoạn [0, m-1]

Tổng quát, giả sử có hai cặp nhiễm sắc thể của hai cá thể được chọn lai ghép: a = (a[1], , a[p], a[p+1], , a[m]) và b =(b[1], , b[p], b[p+1], , b[m])

Cặp này được thay thế bởi hai đoạn con của nhau từ vị trí thứ p+1: a’ = (a[1], , a[p], b[p+1], , b[m]);

và b’ = (b[1], , b[p], a[p+1], , a[m])

2.2.4.3 Phương pháp đột biến

Ta thực hiện đột biến trên các cá thể sau khi đã lai ghép Đột biến là thay đổi trạng thái của một số gen nào đó trong nhiễm sắc thể Một gen chịu một xác suất đột biến là pm Xác suất đột biến pm do ta xác định và là xác suất thấp

Tổng quát, với nhiễm sắc thể là chuỗi nhị phân Với mỗi vị trí i trong nhiễm sắc thể: a = (a[1], , a[p], a[p+1], , a[m])

Trang 30

Ta sinh ra một số thực ngẫu nhiên pi trong đoạn [0,1] Đột biến a được biến thành a’ như sau:

a' = [a’[1], , a’[*], , a’[m]), trong đó:

a’[*] = a[*] nếu pi >= pm và a’[*] = 1 - a[*] nếu pi < pm

Sau quá trình chọn lọc, lai ghép, đột biến, một thế hệ mới được sinh ra

Công việc còn lại của thuật toán là chỉ việc lặp lại các bước trên

2.2.5 Điều kiện dừng của thuật toán

Một số điều kiện dừng của thuật toán:

- Kết thúc theo kết quả, tức khi giá trị thích nghi của cá thể trong quần

thể có giá trị sai số nhỏ hơn một giá trị £ cho truớc, thì dừng thuật toán

- Kết thúc dựa trên số thế hệ, một số vấn đề dựa vào số thế hệ trong quần thể Khi số luợng tiến hoá của quần thể đến một giới hạn cho phép thì thuật toán sẽ dừng, mà trong khi không quan tâm đến chất lượng của cá thể trong quần thể như thế nào

- Tính theo thời gian, phụ thuộc vào thời gian chạy chương trình được quy định trước và thuật toán dừng

Kết hợp nhiều phương pháp khác nhau, thuật toán cũng có thể sử dụng kết hợp nhiều phương pháp khác nhau để giải quyết vấn đề

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

- Kích thước quần thể: Pop_Size, là số cá thể duy trì qua mỗi thế hệ tiến hóa của thuật toán di truyền

- Xác xuất đột biến: pm là xác suất đột biến của gen

- Xác suất lai ghép: pc là xác suất một cá thể được chọn cho phép lai ghép

2.3 Ứng dụng của thuật toán di truyền

Thuật toán di truyền được sử dụng cho những bài toán khó, và đã được ứng dụng thành công cho một số bài toán như: lập kế hoạch, điều khiển tương

Trang 31

thích, chương trình trò chơi, các bài toán vận tải, bài toán người đi du lịch, Sau đây là một vài ứng dụng tiêu biểu của Thuật toán di truyền

2.3.1 Bài toán người du lịch (TSP)

TSP được mô tả như sau: Một du khách muốn thăm những thành phố anh quan tâm; mỗi thành phố thăm qua đúng một lần; rồi trở về điểm khởi hành Biết trước chi phí di chuyển giữa hai thành phố bất kỳ Yêu cầu của bài toán là xây dựng một lộ trình thỏa các điều kiện trên với tổng chi phí nhỏ nhất

TSP là bài toán tối ưu tổ hợp, không gian tìm kiếm là tập các hoán vị của n thành phố Bất cứ hoán vị nào của n thành phố cũng là một lời giải chấp nhận được Lời giải tối ưu là một hoán vị với chi phí tối thiểu của hành trình Không gian tìm kiếm là n! Có thể giải bài toán này bằng nhiều phương pháp: phương pháp nhánh cận, phương pháp gần đúng hay những phương pháp tìm kiếm heuristic Phương pháp nhánh cận đã được chứng minh đạt sự tối ưu về lời giải, tuy nhiên phương pháp này lại mất khá nhiều thời gian khi số đỉnh của đồ thị lớn

Trong những năm gần đây, đã xuất hiện nhiều thuật toán đạt gần đến lời giải tối ưu của bài toán TSP: láng giềng gần nhất, đảo gần nhất, đảo xa nhất và TSP cũng trở thành một đích ngắm của cộng đồng Thuật toán di truyền

Với bài toán này chúng ta sẽ đánh số các thành phố và dùng một vector nguyên để biểu diễn một nhiễm sắc thể lộ trình v=<ii,i2, ,in> biểu diễn một lộ trình: từ i1 đến i2 , từ in-1 đến in và trở về ii (v là một hoán vị của vector (<1,2, ,n>), hàm lượng giá chính là chi phí của lộ trình

2.3.2 Bài toán lập lịch

Lập lịch là bài toán tổ chức sản xuất Một công ty cần sản xuất nhiều loại hàng hóa; những hàng hóa này có thể được sản xuất theo những kế hoạch

Trang 32

khác nhau Mỗi kế hoạch xử lý gồm một chuỗi thao tác; những thao tác này

sử dụng một số tài nguyên và cần thời gian chạy máy Một lịch sản xuất là một kế hoạch thực hiện các đơn đặt hàng Trong đó, một số đơn đặt hàng có thể được thực hiện với cùng những thao tác tương đương Nhiệm vụ là lên kế hoạch, lập lịch sản xuất, để thực hiện các đơn đặt hàng này nhanh nhất có thể

Bài toán lập lịch là chọn một chuỗi các thao tác đồng thời chỉ định về thời gian bắt đầu/ kết thúc và các tài nguyên cần thiết cho mỗi thao tác Điều cần quan tâm chính yếu là chi phí thời gian máy rỗi, năng lực lao động và các đơn đặt hàng cần hoàn thành đúng hạn.Ý tưởng chính trong phương pháp là

mã hóa biểu diễn của lịch phân công là các toán tử di truyền phải thực hiện theo cách có ý nghĩa, và một bộ giải mã phải luôn tạo ra một lời giải hợp lệ cho bài toán Thủ tục giải mã mô phỏng các thao tác của công việc theo cách

mà khi một máy tính sẵn sàng chọn lựa, thì thao tác cho phép đầu tiên từ danh sách ưu tiên được lấy ra Biểu diễn sao để bảo đảm tạo một lịch phân công hợp lệ

2.3.3 Lập thời khóa biểu cho trường học

Bài toán thời khóa biểu là một bài toán kết hợp nhiều ràng buộc không tầm thường thuộc nhiều loại Có nhiều phiên bản của bài toán thời khóa biểu, một trong những bài toán này có thể được mô tả như sau: Có một danh sách các giáo viên, một danh sách các khoảng thời gian, một danh sách các lớp Bài toán cần tìm thời khóa biểu tối ưu (giáo viên - thời gian - lớp); hàm mục tiêu phải thỏa những mục tiêu này (các ràng buộc mềm) gồm: Có một số giờ được xác định trước cho mỗi giáo viên và mỗi lớp; Chỉ một giáo viên trong một lớp vào một giờ nhất định; Một giáo viên không thể dạy hai lớp cùng lúc; Đối với mỗi lớp được xếp thời khóa biểu vào một khoảng thời gian, phải có một giáo viên Ngoài ra còn có các mục tiêu sư phạm như trải một số lớp ra nguyên tuần, những mục tiêu thuộc cá nhân như những giáo viên hợp đồng

Trang 33

không phải dạy buổi chiều, và các mục tiêu về tổ chức như mỗi giờ có một giáo viên bổ sung sẵn sàng chỗ dạy tạm thời

Biểu diễn nhiễm sắc thể tự nhiên nhất cho bài toán này là biểu diễn ma trận: một ma trận Fij(l < i < m và 1 < j < n), ở đây mỗi hàng tương ứng với

một giáo viên, mỗi cột tương ứng với một giờ, các phần tử của ma trận là các lớp I Các ràng buộc chủ yếu được xử lý bởi các toán tử di truyền và thuật giải sửa chữa được sử dụng để loại bỏ những trường hợp mà có nhiều hơn một giáo viên xuất hiện trong cùng một lớp vào cùng một giờ

2.3.4 Phân hoạch đối tượng và đồ thị

Bài toán phân hoạch là cần chia n đối tượng thành k loại Lớp bài toán này gồm nhiều bài toán nổi tiếng như bài toán đóng thùng (gán các mặt hàng vào các thùng), bài toán tô màu đồ thị (gán các nút của đồ thị vào các màu cụ thể )

Bài toán đóng thùng (Bin Packing - BP) được phát biểu như sau: Cho danh sách gồm n đồ vật L=a1,a2,a3, ,an và các thùng giống nhau với cùng sức chứa B Kích thước của đồ vật Oi là Si thỏa mãn 0 < Si < B với i = 1,2,…,n Vấn đề đặt ra là tìm cách xếp các đồ vật vào các thùng sao cho số lượng thùng cần phải sử dụng là ít nhất

2.3.5 Vạch đường cho Robot di chuyển

Tìm đường là hướng dẫn robot di chuyển đến đích mà không bị lạc hay

va vào những đối tượng khác Trong bài toán này, một lộ trình được lập trước

để robot đi theo, lộ trình này có thể dẫn dắt robot đi tới đích một cách hoàn hảo Tuy nhiên, các nhà khoa học muốn cải tiến hơn bằng cách vạch lộ trình nội tại, phụ thuộc vào tri thức thu được từ việc cảm nhận môi trường cục bộ

để xử lý các chướng ngại chưa biết

Bộ tìm đường tiến hóa (EN) được đề xuất Phần đầu của thuật giải là tìm lộ trình toàn cục tối ưu từ điểm khởi đầu đến đến đích, phần thứ hai có

Ngày đăng: 01/08/2021, 11:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Bùi Việt Hà (2004), “Mô hình bài toán Thời khóa biểu Đại học, Cao đẳng và Trung học chuyên nghiệp”, Tin học &amp; Nhà trường Số 4(55)- 2004, tr. 23-26 Sách, tạp chí
Tiêu đề: Bùi Việt Hà (2004), “Mô hình bài toán Thời khóa biểu Đại học, Cao đẳng và Trung học chuyên nghiệp”
Tác giả: Bùi Việt Hà
Năm: 2004
2. Đồng Văn Tuấn (2014), “Giải thuật di truyền và bài toán lập thời khóa biểu”, Luận văn thạc sĩ Trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên Sách, tạp chí
Tiêu đề: Đồng Văn Tuấn (2014)", “"Giải thuật di truyền và bài toán lập thời khóa biểu
Tác giả: Đồng Văn Tuấn
Năm: 2014
3. Hoàng Xuân Huấn, Nguyễn Việt Thắng (2001), “Một giải pháp tiến hóa cho bài toán thời khóa biểu", Bài gửi đăng tạp chí Tin học và Điều khiển học T.17 số 2 năm 2001, tr. 87-96 Sách, tạp chí
Tiêu đề: Một giải pháp tiến hóa cho bài toán thời khóa biểu
Tác giả: Hoàng Xuân Huấn, Nguyễn Việt Thắng
Năm: 2001
4. Hoàng Kiếm, Lê Hoàng Thới (2000), “Thuật toán di truyền, Cách giải tự nhiên các bài toán trên máy tính”, NXB Giáo dục Sách, tạp chí
Tiêu đề: Hoàng Kiếm, Lê Hoàng Thới (2000), “Thuật toán di truyền, Cách giải tự nhiên các bài toán trên máy tính
Tác giả: Hoàng Kiếm, Lê Hoàng Thới
Nhà XB: NXB Giáo dục
Năm: 2000
5. Nguyễn Hữu Mùi (2000), “Phương pháp tính toán tiến hóa và ứng dụng để giải đa thức”, Luận văn Thạc sĩ Khoa học ĐHQG Hà Nội Sách, tạp chí
Tiêu đề: Nguyễn Hữu Mùi (2000)", “"Phương pháp tính toán tiến hóa và ứng dụng để giải đa thức”
Tác giả: Nguyễn Hữu Mùi
Năm: 2000
6. Nguyễn Đình Thúc (2001), “Lập trình tiến hóa”, NXB Giáo dục . 7. Phạm Anh Tuấn (2012), “Ứng dụng giải thuật di truyền để xếp thờikhóa biểu hệ tín chỉ cho trường đại học”, Luận văn thạc sĩ Trường Đại học Đà Nẵng Sách, tạp chí
Tiêu đề: Nguyễn Đình Thúc (2001)", “"Lập trình tiến hóa”," NXB Giáo dục . 7. "Phạm Anh Tuấn (2012), “Ứng dụng giải thuật di truyền để xếp thời "khóa biểu hệ tín chỉ cho trường đại học”
Tác giả: Nguyễn Đình Thúc (2001), “Lập trình tiến hóa”, NXB Giáo dục . 7. Phạm Anh Tuấn
Nhà XB: NXB Giáo dục . 7. "Phạm Anh Tuấn (2012)
Năm: 2012
8. Trần Quốc Hưng (2004), “Tính toán tiến hóa và ứng dụng lập thời khóa biểu trường trung học phổ thông”, Luận văn thạc sĩ Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Trần Quốc Hưng (2004), “Tính toán tiến hóa và ứng dụng lập thời khóa biểu trường trung học phổ thông”
Tác giả: Trần Quốc Hưng
Năm: 2004
9. Vũ Chí Cường (2017), “Một lớp thuật toán phỏng tiến hóa sinh học giải bài toán tối ưu đa cực trị”, Luận án tiến sĩ Học viện Kỹ thuật Quân sự.Tiếng Anh Sách, tạp chí
Tiêu đề: Vũ Chí Cường (2017), “Một lớp thuật toán phỏng tiến hóa sinh học giải bài toán tối ưu đa cực trị”
Tác giả: Vũ Chí Cường
Năm: 2017
12. Colorny A., Dorigo M., Manieggo V. (1991), Genetic Algorithm and Highly Constrained Problems, the Timetable Case, Problem Solving from Nature, Springer-Velag, Lecture Notes in Computer Science, Vol. 496, pp.55-59 Sách, tạp chí
Tiêu đề: Genetic Algorithm and Highly Constrained Problems, the Timetable Case, Problem Solving from Nature
Tác giả: Colorny A., Dorigo M., Manieggo V
Năm: 1991
11. Ceft R., A new genetic algorithm, Analysis of Applied Probability 6 (3) (1996) pp. 778-817 Khác
13. Davis L. and Comombs S., Genetic Algorithms and Communication Link Speed Design Constraints and Operators, in [130]. pp 257-260 Khác
14. Davis L. and Comombs S., Genetic Algorithms Communication Link Speed Design Theorical Considerations, in [130], pp. 252-256 Khác

TỪ KHÓA LIÊN QUAN

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

w