Lý do chọn đề tài Trong bối cảnh khoa học và công nghệ ngày càng phát triển, việc tìm kiếm các phương pháp tối ưu hóa và giải quyết bài toán phức tạp ngày càng trở nên cấp thiết.. Thuật
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
Đồ án môn học Lập trình trên môi trường Windows
Phần mềm hỗ ợ sắp xếp thời khóa biểu tr
Sinh viên thực hiện:
Giảng viên hướng dẫn: Ths Nguyễn Huy Cường
Thành phố Hồ Chí Minh, tháng 01 năm 2025
1.Nguyễn Văn Hải 2280600816
2.Tiết Thanh Minh Hiếu 2280600975
3.Triệu Xuân Dũng 2280600424
4.Vũ Nguyễn Khánh Dương 2280600538
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
Đồ án môn học Lập trình trên môi trường Windows
Phần mềm hỗ ợ sắp xếp thời khóa biểu tr
Sinh viên thực hiện:
Giảng viên hướng dẫn: Ths Nguyễn Huy Cường
Thành phố Hồ Chí Minh, tháng 01 năm 2025
1.Nguyễn Văn Hải 2280600816
2.Tiết Thanh Minh Hiếu 2280600975
3.Triệu Xuân Dũng 2280600424
4.Vũ Nguyễn Khánh Dương 2280600538
Trang 3LỜI CAM ĐOAN
Chúng tôi xin cam đoan đồ án môn học Lập trình trên môi trường Windows với đề tài "Phần mềm hỗ ợ sắp xếp thời khóa biểu" này là thành quả có được từ trviệc nghiên cứu, tìm hiểu và thảo luận của chúng tôi dưới sự hướng dẫn cuả Ths Nguyễn Huy Cường, Trường Đại học Công nghệ Thành phố Hồ Chí Minh Một số tài liệu từ sách và các báo khoa học chính thống được tham khảo, đều được trích dẫn đầy đủ Chúng tôi cam đoan bài nghiên cứu này không vi phạm và xâm phạm đến vấn đề bản quyền về nội dung Nếu có bất kì vấn đề nào về vi phạm sao chép, bản quyền thì chúng tôi xin chịu hoàn toàn trách nhiệm trước khoa và nhà trường
TP.HCM, ngày 10 tháng 01 năm 2025
Người cam đoan
Nguyễn Văn Hải Triệu Xuân Dũng
Vũ Nguyễn Khánh Dương
Trang 4ii
MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC ii
DANH MỤC CÁC HÌNH VẼ v
LỜI MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VÀ GIỚI THIỆU THUẬT TOÁN DI TRUYỀN 2
1.1 Mở đầu 2
1.1.1 Lý do chọn đề tài 2
1.1.2 Mục tiêu nghiên cứu 2
1.1.3 Ph ạm vi nghiên cứu 2
1.2 Tổng quan về Thuật toán di truyền (Genetic Algorithm - GA) 3
1.2.1 Khái niệm về thu ật toán di truyền 3
1.2.2 Nguyên lý hoạt động của GA 3
1.2.3 Cấu trúc cơ bản của GA 4
1.2.4 Ưu điểm và nhược điểm của GA 4
1.3 Ứng dụng của thuật toán di truyền 5
1.3.1 Ứng dụng trong lĩnh vực kỹ thu ật và công nghệ 5
1.3.2 Ứng dụng trong lĩnh vực kinh tế và tài chính 5
1.3.3 Ứng dụng trong lĩnh vực sinh học và y học 5
1.3.4 Ứng dụng trong lĩnh vực khoa học máy tính và AI 6
1.3.5 Ví dụ ứng dụng cụ thể 6
1.4 Phân loại thuật toán di truyền 6
1.4.1 Genetic Algorithm (GA) chuẩn 7
1.4.2 Genetic Algorithm v ới các chiến lược chọn lọc khác nhau 7
Trang 51.4.3 Genetic Algorithm v ới các thuật toán lai ghép, đột biến mới 7
1.4.4 Genetic Algorithm đa m ục tiêu 7
1.4.5 Genetic Algorithm thích nghi 8
1.5 Các yếu tố ảnh hưởng đến hiệu quả của thuật toán di truyền 8
1.5.1 Tham số của thuật toán di truyền 8
1.5.2 Đặc tính của bài toán 9
1.5.3 Môi trường và dữ ệu đầu vào li 9
1.5.4 Lựa chọn cấu trúc mã hóa 9
1.5.5 Ch ất lượng quần thể ban đầu 9
1.5.6 ời gian chạy và giới hạn ngừng Th 10
1.6 Tóm tắt chương 1 10
CHƯƠNG 2 CƠ SỞ DỮ LIỆU 12
2.1 Mô tả Class 12
2.1.1 Lược đồ CSDL quan hệ và vẽ mô hình lược đồ CSDL quan hệ 12
2.1.2 Thiết kế bảng 13
2.2 Tóm tắt chương 2 20
CHƯƠNG 3 MÔ HÌNH THỰC NGHIỆM 21
3.1 Form 21
3.1.1 Form quản lý niên khoá ( Form Session ) 22
3.1.2 Form quản lý chuyên ngành ( Program ) 25
3.1.3 Form quản lý học kỳ ( Semester ) 26
3.1.4 Form quản lý phòng ( Room ) 27
3.1.5 Form quản lý phòng thực hành ( Lab ) 28
3.1.6 Form quản lý môn học ( Course ) 29
3.1.7 Form quản lý giảng viên ( Lecturer ) 30
Trang 6iv
3.1.8 Form quản lý ngày, khung giờ (Form Day, Form DayTimeSlot) 31
3.1.9 Form phân công giảng dạy ( Lecture Subject ) 33
3.1.10 Các form về chương trình bài giảng trong học kỳ 35
3.2 Kết quả sắp xếp 38
3.3 Tóm tắt chương 3 39
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40
TÀI LIỆU THAM KHẢO 41
Trang 7DANH MỤC CÁC HÌNH VẼ
Hình 2.1: Mô hình CSDL quan hệ 13
Hình 3.1: Cấu trúc dự án 21
Hình 3.2: Giao diện chính 21
Hình 3.3: Models 22
Hình 3.4: Chức năng thêm niên khoá 23
Hình 3.5: Chức năng chỉnh sửa (F1) 23
Hình 3.6: Thực hiện cập nhật thành công 24
Hình 3.7: Thực hiện xoá khoá “K2022.2022-2028” 25
Hình 3.8: Tìm kiếm khoá “K018” 25
Hình 3.9: Thực hiện thêm chuyên ngành 26
Hình 3.10: Thực hiện nhập dữ ệu cho học kỳ 27li Hình 3.11: Thực hiện nhập dữ ệu cho phòng 28li Hình 3.12: Thực hiện nhập các phòng lab 29
Hình 3.13: Thực hiện thêm các môn học 30
Hình 3.14: Thực hiện thêm giảng viên 30
Hình 3.15: Thực hiện thêm ngày 31
Hình 3.16: Chức năng lựa chọn ngày và số tiết 31
Hình 3.17: Sau khi thêm các tiết học sẽ được tính toán và chia đều 32
Hình 3.18: Chức năng chỉnh sửa 33
Hình 3.19: Load dữ ệu giảng viên và môn họli c 33
Hình 3.20: Thực hiện thêm lịch phân công giảng dạy 34
Hình 3.21: Load chuyên ngành và học kỳ từ ProgramTable và SemesterTable 35
Hình 3.22: Thực hiện tự tạo tên chương trình học 35
Trang 8vi
Hình 3.23: Thực hiện thêm chương trình học 36
Hình 3.24: Load chương trình học trong phân lớp học kỳ 36
Hình 3.25: Thêm phân lớp học kỳ 25
Hình 3.26: Load chương trình học và lịch phân công giảng dạy 37
Hình 3.27: Thực hiện thêm mới chủ đề bài giảng 38
Hình 3.28: Kết quả thuật toán di truyền 38
Hình 3.29: Thực hiện sắp xếp với form GenerateTKB 39
Trang 9LỜI MỞ ĐẦU
Trong ngành khoa h c máy tính, tìm ki m l i gi i tọ ế ờ ả ối ưu cho các bài toán là
vấn đề được các nhà khoa học máy tính đặc bi t quan tâm Mệ ục đích chính của các thuật toán tìm ki m l i gi i là tìm ra l i gi i tế ờ ả ờ ả ối ưu nhất cho bài toán trong th i gian ờ
ng n nh t Các thuắ ấ ật toán như tìm kiếm không có thông tin (vét cạn) và tìm ki m có ếthông tin s d ng heuriử ụ stics được áp d ng rụ ộng rãi Tuy nhiên, các phương pháp này thường ch hi u qu trong không gian tìm ki m nh và gỉ ệ ả ế ỏ ặp khó khăn khi xử lý không gian tìm ki m l n ế ớ
Trong th c ti n, nhi u bài toán tự ễ ề ối ưu với không gian tìm ki m r t l n cế ấ ớ ần được giải quyết Điều này đòi hỏi các thu t toán chậ ất lượng cao và s d ng kử ụ ỹ thuật trí tu ệnhân t o Thu t gi i di truy n (Genetic Algorithm - GA) là m t trong nh ng kạ ậ ả ề ộ ữ ỹ thuật tìm ki m l i gi i tế ờ ả ối ưu đã chứng minh được tính hi u qu trong nhi u bài toán và ệ ả ề ứng dụng th c t ự ế
Thuật gi i di truyả ền được phát tri n d a trên vi c mô ph ng quá trình ti n hóa ể ự ệ ỏ ế
tự nhiên Ý tưởng này đã thu hút sự chú ý của John Holland (Đại h c Michigan) t ọ ừnhững năm 1970 Holland tin rằng s mô ph ng quá trình ti n hóa trong thu t toán ự ỏ ế ậmáy tính có th t o ra m t kể ạ ộ ỹ thuật giúp gi i quy t các vả ế ấn đề phức t p giạ ống như cách t nhiên tìm ra gi i pháp thông qua ch n l c và biự ả ọ ọ ến đổi di truy n ề
GA hiện nay được ứng d ng r ng rãi trong nhiụ ộ ều lĩnh vực khoa h c, kinh doanh ọ
và gi i trí M t trong nh ng ng d ng ph bi n nh t là gi i quy t các bài toán tả ộ ữ ứ ụ ổ ế ấ ả ế ối ưu, bao g m tồ ối ưu số và tối ưu tổ ợ h p Ví dụ điển hình là bài toán người du lịch (Travelling Salesman Problem - TSP) Ngoài ra, GA còn được sử dụng trong thi t kế ế
và điều khiển robot Các quốc gia có ngành công ngh thông tin phát triệ ển đang tập trung nghiên cứu lĩnh vực này để giúp con người tiết ki m sệ ức lao động và tránh các công vi c nguy hiệ ểm
Bên cạnh đó, sự kết hợp gi a GA và logic mữ ờ đã chứng minh hi u quệ ả trong các vấn đề ph c tứ ạp, nơi mà các phương pháp truyền thống khó có thể đưa ra lời giải tối ưu Nhờ khả năng đánh giá và lượng giá k t qu , GA tr thành mế ả ở ột công c quan ụtrọng trong việc gi i quy t các bài toán tả ế ối ưu trong thực tế
Với những ưu điểm vượt tr i, thu t gi i di truy n không ch là mộ ậ ả ề ỉ ột đề tài nghiên cứu h p dấ ẫn mà còn đem đến nhiều ứng d ng th c ti n, góp ph n gi i quy t các bài ụ ự ễ ầ ả ếtoán tối ưu trong thế giới hiện đại Với những lí do trên chúng tôi nghiên c u ng ứ ứdụng thu t gi i di truy n s p x p th i khoá bi u ậ ả ề ắ ế ờ ể
Trang 102
CHƯƠNG 1 TỔNG QUAN VÀ GIỚI THIỆU THUẬT
TOÁN DI TRUYỀN 1.1 Mở đầu
1.1.1 Lý do chọn đề tài
Trong bối cảnh khoa học và công nghệ ngày càng phát triển, việc tìm kiếm các phương pháp tối ưu hóa và giải quyết bài toán phức tạp ngày càng trở nên cấp thiết Thuật toán di truyền (Genetic Algorithm - GA) được xem như một công cụ mạnh mẽ trong việc giải quyết các bài toán tối ưu hóa không tuyến tính, đặc biệt trong những lĩnh vực mà các phương pháp truyền thống không hiệu quả Bài toán tối ưu hóa trong các lĩnh vực kỹ thuật, kinh tế, sinh học, và nhiều lĩnh vực khác đã trở thành một thách thức lớn Những bài toán này thường mang tính phức tạp cao, yêu cầu nhiều nguồn lực và thời gian để ải quyết Do đó, việc áp dụng thuật toán gi
di truyền nhằm tìm kiếm các giải pháp tối ưu, hiệu quả và nhanh chóng trở thành một giải pháp hấp dẫn Lý do chọn thuật toán di truyền làm trọng tâm của đề tài là
do khả năng thích nghi và linh hoạt của nó trong việc giải quyết các bài toán phức tạp, đặc biệt là khi không thể sử dụng phương pháp giải chính xác hay các thuật toán truyền thống
1.1.2 Mục tiêu nghiên cứu
Mục tiêu của nghiên cứu này là ứng dụng thuật toán di truyền để ải quyếgi t các bài toán tối ưu hóa phức tạp, nhằm tìm ra các giải pháp tối ưu nhất Cụ thể, đề tài sẽ tập trung vào việc xây dựng và phát triển một mô hình dựa trên thuật toán di truyền để ải quyết các bài toán thực tế như tối ưu hóa hàm mục tiêu, thiết kế hệ githống, hoặc tối ưu hóa trong mạng lưới Thông qua việc phân tích và áp dụng thuật toán di truyền, mục tiêu của nghiên cứu là cải thiện hiệu suất và độ chính xác của các giải pháp so với phương pháp truyền thống Ngoài ra, việc so sánh với các phương pháp tối ưu hóa khác cũng sẽ giúp làm sáng tỏ ưu điểm và hạn chế của thuật toán di truyền trong từng bài toán cụ ể th
1.1.3 Phạm vi nghiên cứu
Trang 11Phạm vi nghiên c u c a tài ch y u t p trung vào viứ ủ đề ủ ế ậ ệc ứng d ng thu t toán ụ ậ
di truyền để giải quy t các bài toán tế ối ưu hóa liên quan đến các lĩnh vực kỹ thuật và khoa học Các lĩnh vực cụ thể sẽ bao gồm:
‒ Lĩnh vực kỹ thuật và công ngh : Tệ ối ưu hóa thiết kế hệ thống, mạng lưới, và quy trình v n hành ậ
‒ Lĩnh vực kinh t và tài chính: Áp dế ụng GA để ối ưu hóa danh mục đầu tư, giả t m chi phí s n xu t, ho c tả ấ ặ ối ưu hóa quy trình vận hành trong doanh nghi p ệ
‒ Lĩnh vực sinh học và y học: Ứng dụng GA trong mô hình hóa và tối ưu hóa các
mô hình sinh h c, họ ệ thống y sinh h c, ho c tọ ặ ối ưu hóa các mô hình phức t p ạtrong nghiên c u gene Ph m vi nghiên c u sứ ạ ứ ẽ được giới hạn trong vi c s d ng ệ ử ụthuật toán di truy n nh m gi i bài toán tề ằ ả ối ưu hóa mà không đi sâu vào các khía cạnh lý thuyết quá ph c tứ ạp
1.2 Tổng quan về Thuật toán di truyền (Genetic Algorithm - GA)
1.2.1 Khái niệm về thu ật toán di truyền
Thuật toán di truyền (Genetic Algorithm - GA) là một phương pháp tối ưu hóa mạnh mẽ dựa trên nguyên lý tiến hóa tự nhiên Được phát triển lần đầu tiên bởi John Holland vào những năm 1960, GA mô phỏng quá trình chọn lọc tự nhiên của sinh học, trong đó các cá thể mạnh hơn sẽ có khả năng sinh tồn và phát triển mạnh
mẽ hơn Thuật toán di truyền bắt đầu từ một tập hợp các cá thể (quần thể ban đầu)
và áp dụng các nguyên tắc của sinh học như lựa chọn, lai ghép, và đột biến để tạo
ra thế hệ mới, nhằm tìm kiếm các cá thể có khả năng tối ưu hơn Cụ thể, một cá thể trong GA thường được đại diện bằng một chuỗi mã hóa (biểu diễn dưới dạng mã nhị phân, số ực, hoặc các dạng khác tùy thuộc vào bài toán) Cơ chế th chọn lọc, lai ghép, và đột biến trong GA giúp tạo ra những thế hệ cá thể mới có khả năng tối ưu hóa hơn so với thế hệ trước Quá trình này diễn ra qua nhiều thế hệ, cho đến khi giải pháp tối ưu được tìm thấy hoặc đạt được sự hội tụ [1]
1.2.2 Nguyên lý hoạt động của GA
Thuật toán di truy n hoề ạt động dựa trên ba nguyên lý cơ bản:
‒ Lựa ch n (Selection): Các cá th có giá tr t t nh t sọ ể ị ố ấ ẽ có khả năng sinh tồn cao hơn và có khả năng được lựa chọn để tham gia vào th hế ệ sau Đây là bước giúp
ưu tiên những cá thể mạnh, phù hợp v i bài toán [2] ớ
‒ Lai ghép (Crossover): Sau khi ch n l c, các cá th mọ ọ ể ạnh nhất được chọn để lai ghép v i nhau Thông qua giao ph i, các cá th con sinh ra s mang nhớ ố ể ẽ ững đặc điểm t t nhất c a cả cha mẹ [2] ố ủ
Trang 124
‒ Đột biến (Mutation): Đây là một bước ngẫu nhiên, giúp t o ra các bi n th mới ạ ế ểcho các cá th , tể ừ đó làm tăng sự phong phú trong qu n th và khầ ể ả năng thoát khỏi các điểm c c trự ị địa phương [2]
1.2.3 Cấu trúc cơ bản của GA
Một GA cơ bản gồm các thành ph n chính sau: ầ
‒ Quần th (Population): Qu n th ể ầ ể ban đầu chứa một tập h p các cá th , mợ ể ỗi cá thể
là m t bộ ộ mã hóa đại di n cho m t gi i pháp tiệ ộ ả ềm năng của bài toán Quần thể này đóng vai trò khởi tạo, tạo điều kiện cho quá trình ti n hóa tìm ki m tế ế ối ưu [2]
‒ Các cá th (Individual): M i cá th trong qu n thể ỗ ể ầ ể được coi như một gi i pháp ảcủa bài toán và được đánh giá bằng giá trị hàm mục tiêu (fitness value)
‒ Đánh giá (Fitness Function): Đây là bước quan trọng trong GA, giúp đo lường chất lượng c a các cá th Nh ng cá th có giá tr ủ ể ữ ể ị fitness cao sẽ được ưu tiên chọn
l a và lai ghép [2] ự
‒ Chọ ọn l c (Selection): Th c hi n vi c ch n ra nh ng cá th t t nh t t qu n th ự ệ ệ ọ ữ ể ố ấ ừ ầ ể để đưa vào thế hệ tiếp theo, giúp qu n thầ ể trở nên mạnh hơn qua từng th h ế ệ
‒ Lai ghép (Crossover): Thực hiện kết hợp gi a các cá thể mạnh nhữ ất để ạo ra các t
cá th m i, tích hể ớ ợp các đặc điểm t t nh t c a cha mố ấ ủ ẹ [2]
‒ Đột biến (Mutation): Tạo ra s biự ến đổi ngẫu nhiên trong cấu trúc c a các cá thể ủ
nh m duy trì sằ ự đa dạng trong qu n th và thoát khầ ể ỏi các điểm cực tr ịđịa phương
1.2.4 Ưu điểm và nhược điểm của GA
Ưu điểm:
‒ Khả năng tìm kiếm toàn c u: GA có th khám phá không gian tìm ki m r ng l n ầ ể ế ộ ớ
và thoát khỏi các điểm c c trự ị địa phương
‒ Tính linh hoạt: GA có th áp d ng cho nhi u lo i bài toán, t tể ụ ề ạ ừ ối ưu hóa hàm, bài toán tìm kiếm, đến các bài toán phức tạp không tuy n tính ế
‒ Hiệu qu về thời gian: B ng cách mô ph ng quá trình ch n l c t nhiên, GA có ả ằ ỏ ọ ọ ựthể tìm ki m các gi i pháp tế ả ối ưu nhanh hơn so với các phương pháp chính xác truyền th ng ố
‒ Không c n ki n th c chuyên sâu vầ ế ứ ề bài toán: GA không yêu c u thông tin chi tiầ ết
v bài toán cề ụ thể, dễ dàng ng d ng trong nhiứ ụ ều lĩnh vực [2]
Nhược điểm:
‒ Thời gian ch y lâu: GA có th mạ ể ất nhiều thời gian để tìm ki m các gi i pháp tế ả ối
ưu, đặc biệt khi không gian tìm ki m quá l n ho c khi bài toán ph c t p ế ớ ặ ứ ạ
‒ Khả năng hội tụ không hoàn hảo: GA không đảm bảo tìm được lời gi i tả ối ưu mà chỉ tìm được gi i pháp kh thi, d bả ả ễ ị rơi vào điểm cực trị địa phương
‒ Cần các tham số điều ch nh: Vi c lựỉ ệ a ch n các tham sọ ố như tỷ ệ l giao ph i, t l ố ỷ ệđột bi n, và ế kích thước qu n th có th ầ ể ể ảnh hưởng lớn đến hi u qu c a thuệ ả ủ ật toán [2]
Trang 131.3 Ứng dụng của thuật toán di truyền
1.3.1 Ứng dụng trong lĩnh vực kỹ thu ật và công nghệ
M t trong nhộ ững lĩnh vực phổ bi n nh t mà thu t toán di truyế ấ ậ ền (GA) được áp dụng là trong lĩnh vực kỹ thuật và công nghệ GA đã chứng minh được tính hiệu quả trong vi c tệ ối ưu hóa các hệ thống ph c t p, t các hứ ạ ừ ệ thống kỹ thuật đến mạng lưới
và thi t k quy trình ế ế
‒ Tối ưu hóa thiết kế hệ thống: GA được sử dụng để tìm các cấu trúc hoặc thiết kế
tối ưu cho các hệ thống kỹ thuật như hệ thống giao thông, mạng điện, và các hệ thống phân ph i Ví d , GA có thể được áp dố ụ ụng để ối ưu hóa mạng lưới đườ t ng giao thông, nh m gi m thi u chi phí vằ ả ể ận hành và tăng cường khả năng đáp ứng nhu c u giao thông ầ
‒ Tối ưu hóa quy trình s n xu t: Trong ngành công nghi p, GA giúp tả ấ ệ ối ưu hóa quy trình s n xu t, phân ph i, ho c ki m soát chả ấ ố ặ ể ất lượng Ví d , GA có thụ ể được áp dụng để ối ưu hóa việ t c b trí các máy móc trong dây chuy n s n xu t, gi m thiố ề ả ấ ả ểu chi phí vận hành và tăng cường hi u qu c a quy trình ệ ả ủ
‒ Thiết kế ấ c u trúc v t liậ ệu: GA cũng được sử dụng để tìm ki m các c u trúc tế ấ ối ưu cho vật li u, giúp gi m trệ ả ọng lượng và tối ưu hóa các đặc tính cơ học hoặc nhiệt của v t liậ ệu [3]
1.3.2 Ứng dụng trong lĩnh vực kinh tế và tài chính
Trong lĩnh vực kinh tế và tài chính, GA đóng vai trò quan trọng trong vi c tệ ối
ưu hóa danh mục đầu tư, giảm chi phí, và tối ưu hóa các quyết định liên quan đến
qu n lý tài chính ả
‒ Tối ưu hóa danh mục đầu tư: GA có thể được áp dụng để tìm ra danh mục đầu tư
tối ưu, giúp gi m thi u r i ro và tả ể ủ ối đa hóa lợi nhuận trong các bài toán đầu tư tài chính GA cho phép cân nh c nhi u y u tắ ề ế ố như tỷ lệ rủi ro-lợi nhuận, dòng ti n, ề
Thuật toán di truyền đã chứng minh được giá tr lị ớn trong lĩnh vực sinh h c và ọ
y học, đặc bi t là trong mô hình hóa, phân tích d ệ ữ liệu, và tối ưu hóa các mô hình sinh học ph c t p ứ ạ
Trang 14‒ Phân tích dữ liệu di truy n hề ọc: GA đóng vai trò quan trọng trong vi c phân tích ệ
d u l n tronữ liệ ớ g lĩnh vực di truyền học, như phát hiện đột biến, phân tích d ữ liệu gene, và tìm kiếm các đột bi n gen có th gây b nh ế ể ệ
‒ Tối ưu hóa điều trị y tế: GA giúp tìm ra các phương pháp điều trị tối ưu trong y
h c, tọ ừ việc xác định liều lượng thu c, mô hình hóa tác ố động c a thuủ ốc đến cơ thể người, đến vi c tệ ối ưu hóa các quy trình chẩn đoán và điều trị
1.3.4 Ứng dụng trong lĩnh vực khoa học máy tính và AI
Trong khoa h c máy tính và trí tu nhân tọ ệ ạo (AI), GA đóng vai trò quan trọng trong vi c tìm ki m các gi i pháp tệ ế ả ối ưu cho các bài toán h c máy, tọ ối ưu hóa thuật toán, và thi t k các hế ế ệ thống thông minh
‒ Tối ưu hóa thuật toán: GA được sử dụng để ối ưu hóa các thuậ t t toán tìm ki m, ếcác thu t toán hậ ọc máy như mạng nơ-ron, phân c m dụ ữ liệu, ho c phân lo i d ặ ạ ữliệu GA giúp c i thi n hi u su t c a các thuả ệ ệ ấ ủ ật toán, tăng cường khả năng học và
M t s ví dộ ố ụ điển hình về ứng d ng c a thuật toán di truyền bao gồm: ụ ủ
‒ Tối ưu hóa thiết kế mạng lưới: GA được áp dụng trong tối ưu hóa cấu trúc mạng lưới, ví dụ như thiế ế ạt k m ng vi n thông, mễ ạng điện, ho c mặ ạng thông tin để ối t
ưu hóa băng thông và giảm chi phí vận hành
‒ Tối ưu hóa hệ thống điều khiển: GA cũng được sử dụng để ối ưu hóa hệ t thống điều khi n t ể ự động, t ừ điều khiển giao thông, điều khiển nhà máy, đến điều khiển robot
‒ Tối ưu hóa chiến lược kinh doanh: GA giúp tối ưu hóa các chiến lược kinh doanh như tối ưu hóa quy trình sản xuất, giảm chi phí, và tối ưu hóa các mô hình quản
lý chu i cung ng [5] ỗ ứ
1.4 Phân loại thuật toán di truyền
Thuật toán di truyền (GA) không phải là một phương pháp cố định mà có nhiều biến thể và loại hình khác nhau, nhằm đáp ứng các bài toán và ứng dụng cụ thể Dưới đây là phân loại các dạng cơ bản của GA dựa trên các chiến lược, mục tiêu, và phương pháp khác nhau
Trang 151.4.1 Genetic Algorithm (GA) chu ẩn
GA chu n, còn g i là GA ẩ ọ truyền th ng, là dố ạng cơ bản nhất của thuật toán di truyền GA chu n hoẩ ạt động theo cấu trúc cơ bản gồm ba bước chính:
‒ Lựa ch n (Selection): Ch n các cá th t t nh t t qu n thọ ọ ể ố ấ ừ ầ ể để đưa vào thế hệ ế ti p theo
‒ Lai ghép (Crossover): Kết hợp các cá th mạể nh nhất để o ra th h m tạ ế ệ ới
‒ Đột biến (Mutation): Tạo ra các cá thể mới t các biừ ến đổi ngẫu nhiên nhằm duy trì sự đa dạng trong qu n thầ ể [5]
GA chu n t p trung vào vi c tìm ki m các gi i pháp toàn cẩ ậ ệ ế ả ầu, nhưng có thể gặp khó khăn trong việc thoát khỏi các điểm cực trị địa phương
1.4.2 Genetic Algorithm với các chiến lược chọn lọc khác nhau
M t bi n th c a GA chu n là vi c s d ng các chiộ ế ể ủ ẩ ệ ử ụ ến lược ch n l c khác nhau ọ ọ
để cải thiện hiệu quả M t s chiến lược chọn lọc phổ biến bao gồm: ộ ố
‒ Chọn l c xếp hạng (Rank Selection): Cá thể đượọ c ch n d a trên th h ng cọ ự ứ ạ ủa chúng theo giá trị fitness
‒ Chọn l c ru i b ọ ồ ọ (Roulette Wheel Selection): Cá thể có kh ả năng lớn hơn sẽ được chọn với xác suất cao hơn, giúp tăng cường khả năng hộ ụi t
‒ Chọn lọc ưu tiên (Tournament Selection): Một nhóm cá th ể ngẫu nhiên được chọn
và so sánh, cá th có fitness cao nhể ất được chọn [6]
Những chiến lược này giúp c i thi n khả ệ ả năng thoát khỏi các điểm c c trự ị địa phương và nâng cao chất lượng giải pháp
1.4.3 Genetic Algorithm với các thuật toán lai ghép, đột biến mới
C i ti n tả ế ừ GA chu n, các bi n thẩ ế ể này t p trung vào viậ ệc điều chỉnh hoặc thay đổi các phương pháp lai ghép và đột biến nhằm tăng cường kh ả năng tìm kiếm tối ưu
‒ Lai ghép h n h p (Hybrid Crossover): K t h p nhiỗ ợ ế ợ ều phương pháp lai ghép khác nhau như lai ghép một chốt, hai chốt, hoặc lai ghép đa chốt, giúp cải thiện sự đa
d ng c a các cá th mạ ủ ể ới
‒ Đột bi n mế ờ (Fuzzy Mutation): Áp dụng đột bi n mế ờ để giảm b t sớ ự thay đổi quá
l n, tớ ừ đó giảm r i ro dủ ẫn đến việc rơi vào điểm cực trị địa phương
‒ Đột biến có hướng (Directional Mutation): Đột biến không ngẫu nhiên mà theo
một hướng nhất định, giúp tăng cường khả năng khám phá không gian tìm kiếm
1.4.4 Genetic Algorithm đa mục tiêu
Trang 168
GA đa mục tiêu được sử dụng để giải quyết các bài toán có nhi u mề ục tiêu cần
tối ưu hóa cùng m t lúc Thay vì tộ ối ưu hóa một hàm m c tiêu duy nhụ ất, GA đa mục tiêu tìm ki m các gi i pháp cân b ng t t gi a các hàm mế ả ằ ố ữ ục tiêu
‒ GA Pareto: Một dạng của GA đa mục tiêu, s d ng lý thuyử ụ ết Pareto để tìm các giải pháp không th c i thi n m c tiêu này mà làm gi m m c tiêu khác ể ả ệ ụ ả ụ
‒ GA NSGA-II (Non-dominated Sorting Genetic Algorithm II): M t thu t toán cộ ậ ải tiến c a GA Pareto, giúp ch n ra các gi i pháp Pareto tủ ọ ả ối ưu với hi u quệ ả cao hơn
GA đa mục tiêu thường được áp dụng trong các lĩnh vực như thiết k h ế ệ thống,
l p k ho ch, và tậ ế ạ ối ưu hóa sản xuất
1.4.5 Genetic Algorithm thích nghi
GA thích nghi là d ng GA có khạ ả năng tự điều ch nh các tham sỉ ố như tỷ ệ l chọn l c, t l lai ghép, và t lọ ỷ ệ ỷ ệ đột bi n d a trên các dế ự ữ liệu đầu vào ho c ti n trình ặ ếchạy c a thuủ ật toán
‒ GA thích nghi biến động theo th i gian: Các tham s ờ ố thay đổi theo th i gian hoờ ặc theo các ch sỉ ố đánh giá hiệu qu c a cá th ả ủ ể
‒ GA thích nghi theo feedback từ môi trường: GA điều chỉnh các tham số dựa vào feedback từ các cá th , giúp nâng cao hi u su t tìm ki m và khể ệ ấ ế ả năng tối ưu
1.5 Các yếu tố ảnh hưởng đến hiệu quả của thuật toán di truyền
Thuật toán di truyền (GA) là một phương pháp mạnh mẽ để ải quyết các bài gitoán tối ưu hóa phức tạp Tuy nhiên, hiệu quả của GA phụ thuộc vào nhiều yếu tố, bao gồ các tham số, chiến lược, cũng như môi trường áp dụng Dưới đây là các yếm u
tố ảnh hưởng đến hiệu quả của GA:
1.5.1 Tham số của thuật toán di truyền
M t trong nh ng y u t quan tr ng nhộ ữ ế ố ọ ất ảnh hưởng đến hi u qu c a GA là ệ ả ủcác tham s mà thu t toán s d ng Các tham s này cố ậ ử ụ ố ần đượ ực l a chọn và điều ch nh ỉphù h p v i t ng bài toán cợ ớ ừ ụ thể Mộ ốt s tham s chính bao gố ồm:
‒ Kích thước quần thể (Population size): Kích thước của quần thể ảnh hưởng đến
độ phong phú và đa dạng c a gi i pháp Qu n th quá nh có th dủ ả ầ ể ỏ ể ẫn đến s hự ội
t nhanh vào mụ ột điểm c c tr , trong khi qu n th quá l n có th làm gi m tự ị ầ ể ớ ể ả ốc độtìm kiếm
‒ Tỷ lệ giao ph i (Crossover rate): Là t l cá thố ỷ ệ ể được chọn để lai ghép nh m tằ ạo thế h m i T l này cệ ớ ỷ ệ ần được cân bằng để tránh sự tập trung quá mức ho c quá ặ
Trang 17‒ Lựa ch n chiọ ến lược ch n l c: S d ng các chiọ ọ ử ụ ến lược ch n lọ ọc như xếp hạng, roulette wheel, tournament sẽ ảnh hưởng lớn đến chất lượng và tốc độ ộ ụ ủa h i t c
GA
1.5.2 Đặc tính của bài toán
Đặc tính c a bài toán c n tủ ầ ối ưu hóa cũng ảnh hưởng đáng kể đến hiệu qu cả ủa
GA Các y u t ế ố như tính phức t p c a không gian tìm ki m, tính không tuy n tính cạ ủ ế ế ủa hàm m c tiêu, ho c s hi n di n c a nhiụ ặ ự ệ ệ ủ ều điểm c c trự ị đề ảnh hưởng đếu n khả năng tìm ki m tế ối ưu của GA
‒ Không gian tìm ki m ph c t p: Các bài toán có không gian tìm ki m r ng và phế ứ ạ ế ộ ức
t p sạ ẽ đòi hỏi GA có khả năng khám phá tốt hơn, tránh tình trạng hội tụ sớm
‒ Hàm mục tiêu không tuyến tính: GA có khả năng xử lý các bài toán không tuyến tính tốt hơn so với các phương pháp truyền th ng nh vào kh ố ờ ả năng tìm kiếm toàn cầu và duy trì sự đa dạng trong quần thể
1.5.3 Môi trường và dữ ệu đầu vào li
Môi trường và dữ liệu đầu vào cũng ảnh hưởng đến hiệu quả của GA Các dữ liệu không chính xác, không đủ hoặc không đồng nhất có thể làm gi m chả ất lượng của các giải pháp tìm được
‒ Độ chính xác c a d liệu: GA yêu c u dủ ữ ầ ữ liệu đầu vào chính xác và đầy đủ, nếu
dữ liệu không đồng nh t ho c nhi u, vi c tìm ki m gi i pháp tấ ặ ễ ệ ế ả ối ưu sẽ ặ g p nhiều khó khăn
‒ Điều ki n ràng bu c: Các bài toán có nhiệ ộ ều điều ki n ràng bu c, ch ng hệ ộ ẳ ạn như giới h n v tài nguyên, th i gian ho c các ràng bu c kạ ề ờ ặ ộ ỹ thuật khác, cần được x ử
lý t t trong quá trình tố ối ưu hóa bằng GA
1.5.4 Lựa chọn cấu trúc mã hóa
C u trúc mã hóa c a cá thấ ủ ể ảnh hưởng đến hi u qu c a GA trong vi c tìm ệ ả ủ ệkiếm gi i pháp tả ối ưu Mộ ất c u trúc mã hóa t t s giúp GA có th khám phá các giố ẽ ể ải pháp khả thi hơn, trong khi mộ ất c u trúc mã hóa không h p lý có th dợ ể ẫn đến s hự ội
t không mong mu n ho c m t thông tin quan tr ng ụ ố ặ ấ ọ
‒ Cấu trúc mã hóa hi u quả: Các mã hóa như nhị phân, số thực, hoặc chuỗi bit cần ệđượ ực l a ch n phù hợp vọ ới bài toán, đảm b o r ng m i cá thả ằ ỗ ể đại di n cho mệ ột giải pháp khả thi
Trang 1810
Quần thể ban đầu đóng vai trò quan trọng trong quá trình tìm ki m c a GA ế ủMột qu n thầ ể khởi đầu tốt sẽ t o tiạ ền đề cho quá trình ti n hóa di n ra hi u quế ễ ệ ả hơn Quần thể ban đầu cần phải đủ đa dạng, đảm bảo có đủ các cá thể g n tầ ối ưu để tránh việc GA b m c kị ắ ẹt tại các điểm c c trự ị địa phương
‒ Đa dạng ban đầu: Một quần thể ban đầu có sự đa dạng cao sẽ giúp tăng cường khả năng khám phá không gian tìm kiếm r ng lộ ớn hơn
1.5.6 Thời gian chạy và giới hạn ngừng
Thời gian ch y c a GA và các gi i h n ngạ ủ ớ ạ ừng là yếu t quyố ết định ảnh hưởng đến chất lượng c a gi i pháp cuủ ả ối cùng Đặt th i gian ch y quá ng n ho c quá dài có ờ ạ ắ ặthể làm gi m hi u qu tả ệ ả ối ưu
‒ Giới hạn th i gian: Th i gian ch y cờ ờ ạ ần được cân nhắc để tránh vi c lãng phí tài ệnguyên hoặc không đạt được kết qu như mong đợi ả
‒ Điểm h i t : Nộ ụ ếu không xác định được điểm h i t h p lý, GA có thộ ụ ợ ể p t c tìm tiế ụkiếm vô hạn định mà không mang l i thêm giá trạ ị [4]
1.6 Tóm tắt chương 1
Chương 1 của đồ án t p trung cung c p m t cái nhìn t ng quan toàn di n v ậ ấ ộ ổ ệ ềthuật toán di truy n (Genetic Algorithm - GA), m t trong nhề ộ ững phương pháp tối ưu hóa mạnh mẽ và phổ bi n dựa trên cơ chế ti n hóa t nhiên Thuế ế ự ật toán di truy n, ềđược xây d ng trên nguyên t c di truy n và chự ắ ề ọ ọ ựn l c t nhiên của Darwin, đã ch ng ứminh kh ả năng giải quyết hiệu qu các bài toán tả ối ưu hóa phức tạp, đặc biệt là nh ng ữbài toán mà các phương pháp truyền thống gặp khó khăn hoặc không thể áp dụng Nội dung chương bắt đầu bằng phần gi i thi u v ngu n g c và t m quan tr ng cớ ệ ề ồ ố ầ ọ ủa
GA trong khoa h c và th c tiọ ự ễn GA được phát triển từ nhu cầu gi i quy t các bài ả ếtoán khó trong nhiều lĩnh vực khác nhau như kỹ thuật, y học, kinh tế, và trí tu nhân ệ
t o Thu t toán này n i b t v i khạ ậ ổ ậ ớ ả năng tìm kiếm các giải pháp toàn cầu và x lý tử ốt các hàm mục tiêu không tuy n tính hoế ặc đa mục tiêu, vượt qua các h n ch c a nh ng ạ ế ủ ữphương pháp tối ưu hóa truyền thống
Phần tiếp theo đi sâu vào các thành phần cơ bản c u thành GA, bao gấ ồm mã hóa, qu n ầthể, l a chự ọn, lai ghép, và đột biến Các thành phần này được thiết kế để mô ph ng ỏquá trình ti n hóa t nhiên, tế ự ừ việ ạc t o ra các cá thể ban đầu đến vi c c i ti n chúng ệ ả ếqua các th h S k t h p cế ệ ự ế ợ ủa các cơ chế này giúp GA duy trì sự đa dạng c a quủ ần thể, đồng th i h i t dờ ộ ụ ần đến gi i pháp tả ối ưu
Một ph n quan tr ng khác cầ ọ ủa chương là việc gi i thi u các ng d ng r ng rãi cớ ệ ứ ụ ộ ủa
GA trong th c t T tự ế ừ ối ưu hóa thiết kế kỹ thuật, cải ti n quy trình s n xu t trong ế ả ấcông nghiệp, đến phân tích dữ liệu tài chính, l p k ho ch logistics, và tậ ế ạ ối ưu hóa
mạng lưới giao thông, thu t toán di truyậ ền đã chứng minh giá trị thực ti n lễ ớn lao Trong sinh h c và y họ ọc, GA được sử dụng để mô hình hóa các hệ thống sinh học
Trang 19ph c t p, phân tích dứ ạ ữ liệu gene, và tối ưu hóa các liệu pháp điều trị Trong lĩnh vực trí tu nhân tệ ạo, GA đóng vai trò quan trọng trong vi c c i thi n các thu t toán hệ ả ệ ậ ọc máy, thi t k mế ế ạng nơ-ron, và phát tri n các hể ệ thống thông minh
Bên cạnh đó, chương cũng trình bày các phân loại của GA, từ thuật toán di truyền truyền thống đến các bi n th hiế ể ện đại như GA đa mục tiêu, GA thích nghi, và GA lai M i loỗ ại đều có những đặc điểm và ưu điểm riêng, được thiết kế để giải quy t các ếbài toán cụ thể ộ m t cách hiệu quả hơn
Cuối cùng, chương thảo luận các y u tế ố ảnh hưởng đến hiệu quả của GA, bao gồm kích thước quần thể, t lỷ lai ghép, t l t bi n, cệ ỷ ệ độ ế ấu trúc mã hóa, và đặc tính c a bài ủtoán Hi u qu c a thu t toán phệ ả ủ ậ ụ thuộc r t l n vào vi c l a ch n các tham s phù ấ ớ ệ ự ọ ốhợp và điều chỉnh chúng theo t ng tình hu ng c ừ ố ụ thể Đồng th i, chờ ất lượng qu n th ầ ểban đầu và dữ liệu đầu vào cũng là những y u t quan trế ố ọng để đảm bảo GA có th ểtìm ra các gi i pháp t t nh t trong không gian tìm kiả ố ấ ếm
Tóm lại, chương 1 đã xây dựng n n t ng lý thuy t v ng ch c cho toàn b ề ả ế ữ ắ ộ đồ án, cung cấp cái nhìn chi ti t và toàn di n vế ệ ề thuật toán di truy n N i dung không ch làm rõ ề ộ ỉcách th c hoứ ạt động c a GA mà còn minh ch ng tính ủ ứ ứng d ng r ng rãi và tiụ ộ ềm năng phát tri n c a thu t toán này trong khoa h c và th c ti n Nh ng phân tích và thể ủ ậ ọ ự ễ ữ ảo luận trong chương này sẽ là cơ sở quan trọng để triển khai các nghiên c u và ng ứ ứdụng cụ thể trong các chương tiếp theo
Trang 20‒ RoomTypeTable: (RoomTypeID, TypeName)
‒ CourseTable: (CourseID, Tittle, IsActive, CrHrs, RoomTypeID)
‒ DayTable: (DayID, Name, IsActive)
‒ DayTimeSlotTable: (DayTimeSlotID, SlotTitle, StartTime, EndTime, DayID, IsActive)
‒ LabTable: (LabID, LabNo, Capacity, IsActive)
‒ LectureTable: (LectureID, FullName, ContactNo, IsActive)
‒ LectureSubjectTable: (LectureSubjectID, Title, LectureID, CourseID, IsActive)
‒ ProgramTable: (ProgramID, Name, IsActive)
‒ SemesterTable: (SemesterID, SemesterName, IsActive)
‒ ProgramSemesterTable: (ProgramSemesterID, Title, ProgramID, SemesterID, IsActive, SessionID, Capacity)
‒ RoomTable: (RoomID, RoomNo, Capacity, IsActive)
‒ TimeTblTable: (TimeTableID, SessionID, ProgramSemesterID, StartDate, EndDate, IsActive, SessionTitle, TimeTableTitle, SemesterTitle)
‒ SessionTable: (SessionID, Title, IsActive)
‒ ProjectTable: (ProgramSemesterSubjectID, ProgramSemesterID,
LectureSubjectID, SSTitle, IsSubjectActive)
‒ TimeTableDetailTable: (TimeTableDetailID, TimeTableID,
ProgramSemesterSubjectID, SubjectTitle, RoomID, LabID, DayTimeSlotID, DayID, LectureID, IsActive, SessionID,SessionTitle)
Trang 21b Vẽ lược đồ CSDL quan hệ
Hình 2.1: Mô hình CSDL quan hệ
2.1.2 Thiết kế bảng
a RoomTypeTable: (RoomTypeID, TypeName)
Bảng này lưu trữ thông tin các loại phòng (phòng học, phòng thí nghiệm) Bảng thuộc tính:
STT Tên thuộc tính Kiểu dữ ệu li Ràng buộc Diễn giải
IDENTITY(1,1) Primary Key Mã định danh cho từng loại phòng
(VD: Room,Lab)
Trang 2214
b CourseTable: (CourseID, Tittle, IsActive, CrHrs, RoomTypeID)
Bảng này lưu trữ thông tin các khóa học (môn học)
Bảng thuộc tính:
IDENTITY(1,1) Primary Key Mã định danh cho khóa học
khóa học (1 = Active, 0 = Inactive) Mặc định là 1 (hoạt động)
IDENTITY(1,1)
Foreign Key Liên kết đến loại phòng từ
RoomTypeTable
c DayTable: (DayID, Name, IsActive)
Bảng này lưu trữ thông tin về các ngày trong tuần
ngày (1 = Active, 0 = Inactive) Mặc định là 1 (hoạt động)
d DayTimeSlotTable: (DayTimeSlotID, SlotTitle, StartTime, EndTime,
Trang 23e LabTable: (LabID, LabNo, Capacity, IsActive)
Bảng này lưu trữ thông tin về các phòng thí nghiệm
Bảng thuộc tính:
IDENTITY(1,1) Primary Key Mã định danh cho phòng thí nghiệm
1 (hoạt động)
f LectureTable: (LectureID, FullName, ContactNo, IsActive)
Bảng này lưu trữ thông tin về các giảng viên
viên
của giảng viên
1 LectureSubjectID INT
IDENTITY(1,1) Primary Key
Mã định danh cho liên kết
Trang 2416
h ProgramTable: (ProgramID, Name, IsActive)
Bảng này lưu trữ thông tin các chương trình học
Bảng thuộc tính:
i SemesterTable: (SemesterID, SemesterName, IsActive)
Bảng này lưu trữ thông tin về các học kỳ
Bảng thuộc tính:
j ProgramSemesterTable: (ProgramSemesterID, Title, ProgramID,
SemesterID, IsActive, SessionID, Capacity)
Bảng này liên kết các chương trình học với các học kỳ
6 SessionID INT Indentity(1,1) Foreign Key Liên kết đến chương
trình từ SessionTable
bảng học kỳ