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

Đồ án môn học lập trình trên môi trường windows phần mềm hỗ trợ sắp xếp thời khóa biểu

49 0 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đồ án môn học lập trình trên môi trường windows phần mềm hỗ trợ sắp xếp thời khóa biểu
Tác giả Nguyễn Văn Hải, Tiết Thanh Minh Hiếu, Triệu Xuân Dũng, Vũ Nguyễn Khánh Dương
Người hướng dẫn Ths. Nguyễn Huy Cường
Trường học Trường Đại Học Công Nghệ TPHCM
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án
Năm xuất bản 2025
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 49
Dung lượng 2,89 MB

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN VÀ GIỚI THIỆU THUẬT TOÁN DI TRUYỀN (10)
    • 1.1. Mở đầu (10)
      • 1.1.1. Lý do chọn đề tài (10)
      • 1.1.2. Mục tiêu nghiên cứu (10)
      • 1.1.3. Ph ạm vi nghiên cứu (10)
    • 1.2. Tổng quan về Thuật toán di truyền (Genetic Algorithm - GA) (11)
      • 1.2.1. Khái niệm về thu ật toán di truyền (11)
      • 1.2.2. Nguyên lý hoạt động của GA (11)
      • 1.2.3. Cấu trúc cơ bản của GA (12)
      • 1.2.4. Ưu điểm và nhược điểm của GA (12)
    • 1.3. Ứng dụng của thuật toán di truyền (13)
      • 1.3.1. Ứng dụng trong lĩnh vực kỹ thu ật và công nghệ (13)
      • 1.3.2. Ứng dụng trong lĩnh vực kinh tế và tài chính (13)
      • 1.3.3. Ứng dụng trong lĩnh vực sinh học và y học (13)
      • 1.3.4. Ứng dụng trong lĩnh vực khoa học máy tính và AI (14)
      • 1.3.5. Ví dụ ứng dụng cụ thể (14)
    • 1.4. Phân loại thuật toán di truyền (14)
      • 1.4.1. Genetic Algorithm (GA) chuẩn (15)
      • 1.4.2. Genetic Algorithm v ới các chiến lược chọn lọc khác nhau (15)
      • 1.4.3. Genetic Algorithm v ới các thuật toán lai ghép, đột biến mới (15)
      • 1.4.4. Genetic Algorithm đa m ục tiêu (15)
      • 1.4.5. Genetic Algorithm thích nghi (16)
    • 1.5. Các yếu tố ảnh hưởng đến hiệu quả của thuật toán di truyền (16)
      • 1.5.1. Tham số của thuật toán di truyền (16)
      • 1.5.2. Đặc tính của bài toán (17)
      • 1.5.3. Môi trường và dữ ệu đầu vào li (17)
      • 1.5.4. Lựa chọn cấu trúc mã hóa (17)
      • 1.5.5. Ch ất lượng quần thể ban đầu (17)
      • 1.5.6. ời gian chạy và giới hạn ngừng Th (0)
    • 1.6. Tóm tắt chương 1 (18)
  • CHƯƠNG 2. CƠ SỞ DỮ LIỆU (20)
    • 2.1. Mô tả Class (20)
      • 2.1.1. Lược đồ CSDL quan hệ và vẽ mô hình lược đồ CSDL quan hệ (20)
      • 2.1.2. Thiết kế bảng (21)
    • 2.2. Tóm tắt chương 2 (28)
  • CHƯƠNG 3. MÔ HÌNH THỰC NGHIỆM (29)
    • 3.1. Form (29)
      • 3.1.1. Form quản lý niên khoá ( Form Session ) (30)
      • 3.1.2. Form quản lý chuyên ngành ( Program ) (33)
      • 3.1.3. Form quản lý học kỳ ( Semester ) (34)
      • 3.1.4. Form quản lý phòng ( Room ) (35)
      • 3.1.5. Form quản lý phòng thực hành ( Lab ) (36)
      • 3.1.6. Form quản lý môn học ( Course ) (37)
      • 3.1.7. Form quản lý giảng viên ( Lecturer ) (38)
      • 3.1.8. Form quản lý ngày, khung giờ (Form Day, Form DayTimeSlot) (0)
      • 3.1.9. Form phân công giảng dạy ( Lecture Subject ) (41)
      • 3.1.10. Các form về chương trình bài giảng trong học kỳ (43)
    • 3.2. Kết quả sắp xếp (46)
    • 3.3. Tóm tắt chương 3 (47)
  • TÀI LIỆU THAM KHẢO (49)

Nội dung

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

TỔNG QUAN VÀ GIỚI THIỆU THUẬT TOÁN DI TRUYỀN

Mở đầu

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

Trong bối cảnh khoa học và công nghệ phát triển nhanh chóng, việc tìm kiếm phương pháp tối ưu hóa để giải quyết các bài toán phức tạp trở nên cấp thiết Thuật toán di truyền (GA) nổi bật như một công cụ mạnh mẽ cho 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à phương pháp truyền thống không hiệu quả Các bài toán tối ưu hóa trong kỹ thuật, kinh tế, sinh học và nhiều lĩnh vực khác thường có tính phức tạp cao, đòi hỏi nhiều nguồn lực và thời gian để giải quyết Do đó, việc áp dụng thuật toán di truyền để tìm kiếm giải pháp tối ưu, hiệu quả và nhanh chóng là một lựa chọn hấp dẫn Lý do chọn thuật toán di truyền là khả năng thích nghi và linh hoạt trong việc giải quyết các bài toán phức tạp, đặc biệt 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.

Mục tiêu nghiên cứu này là ứ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 phức tạp, nhằm tìm ra giải pháp tối ưu nhất Đề tài sẽ tập trung vào xây dựng và phát triển mô hình dựa trên thuật toán di truyền để giải quyết các vấn đề thực tế như tối ưu hóa hàm mục tiêu, thiết kế hệ thống và tối ưu hóa trong mạng lưới Qua việc phân tích và áp dụng thuật toán di truyền, nghiên cứu hướng đến 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 Hơn nữa, việc so sánh với các phương pháp tối ưu hóa khác sẽ làm rõ ư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ể.

Phạm vi nghiên cứu của tài liệ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 trong các lĩnh vực kỹ thuật và khoa học Các lĩnh vực cụ thể sẽ được đề cập 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 đang ngày càng áp dụng trí tuệ nhân tạo (GA) để tối ưu hóa danh mục đầu tư, giảm thiểu chi phí sản xuất, và cải thiện quy trình vận hành trong doanh nghiệp.

Trong lĩnh vực sinh học và y học, thuật toán di truyền (GA) được ứng dụng để mô hình hóa và tối ưu hóa các hệ thống sinh học phức tạp, đặc biệt trong nghiên cứu gene Nghiên cứu sẽ tập trung vào việc sử dụng GA để giải quyết các 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.

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 hiệu quả dựa trên nguyên lý tiến hóa tự nhiên, được phát triể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, trong đó các cá thể mạnh hơn có khả năng sinh tồn và phát triển tốt hơn Bắt đầu từ một quần thể ban đầu, GA áp dụng các nguyên tắc sinh học như lựa chọn, lai ghép và đột biến để tạo ra thế hệ mới với khả năng tối ưu hóa cao hơn Mỗi cá thể trong GA thường được biểu diễn bằng một chuỗi mã hóa, có thể là mã nhị phân, số thực hoặc các dạng khác tùy thuộc vào bài toán Quá trình này diễn ra qua nhiều thế hệ, cho đến khi tìm ra giải pháp tối ưu hoặc đạt được sự hội tụ.

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 cá thể trong quá trình sinh sản là rất quan trọng, nhằm ưu tiên những cá thể có giá trị di truyền tốt và khả năng sinh tồn cao Điều này giúp tăng cường chất lượng của thế hệ sau, đảm bảo rằng những cá thể mạnh mẽ và phù hợp sẽ được chọn lọc, từ đó nâng cao hiệu quả của quá trình chọn giống.

Lai ghép (Crossover) là quá trình chọn lựa các cá thể ưu tú nhất để kết hợp với nhau Qua giao phối, thế hệ cá thể con được sinh ra sẽ mang những đặc điểm tốt nhất từ cả cha và mẹ, giúp cải thiện chất lượng giống.

Đột biến là một quá trình ngẫu nhiên tạo ra các biến thể mới, từ đó làm tăng sự phong phú trong quần thể và cải thiện khả năng thích nghi của các cá thể với môi trường.

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) là một tập hợp các cá thể, mỗi cá thể đại diện cho một bộ mã hóa giải pháp tiềm năng cho bài toán Quần thể này có vai trò khởi đầu, tạo điều kiện cho quá trình tiến hóa tìm kiếm giải pháp tối ưu.

Các cá thể trong quần thể được xem như những giải pháp khả thi cho bài toán, và chúng được đánh giá dựa trên giá trị hàm mục tiêu (fitness value).

Đánh giá (Fitness Function) là bước quan trọng trong thuật toán di truyền (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ọc và lai ghép, từ đó nâng cao hiệu quả của quá trình tìm kiếm giải pháp tối ưu.

Chọn lọc (Selection) là quá trình quan trọng trong việc chọn ra những cá thể có đặc điểm tốt nhất để đưa vào thế hệ tiếp theo Điều này không chỉ giúp tăng cường sức mạnh của quần thể mà còn cải thiện chất lượng di truyề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 là quá trình tạo ra những biến đổi ngẫu nhiên trong cấu trúc của các cá thể, giúp 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 của GA cho phép áp dụng cho nhiều loại bài toán, từ tối ưu hóa hàm cho đến tìm kiếm và 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 giúp 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]

Thời gian chờ lâu trong GA (Genetic Algorithm) là một vấn đề đáng lư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 Điều này khiến cho việc tìm kiếm các giải pháp tối ưu trở nên khó khăn và tốn nhiều thời gian hơn.

Khả năng hội tụ không hoàn hảo của GA khiến nó không đảm bảo tìm ra lời giải tối ưu, mà chỉ có thể cung cấp giải pháp gần đúng, dễ dẫn đến việc rơi vào điểm cực trị địa phương.

Để tối ưu hóa hiệu quả của thuật toán, cần điều chỉnh các tham số như tỷ lệ giao phó, tỷ lệ đột biến và kích thước quần thể Những yếu tố này có ảnh hưởng lớn đến kết quả cuối cùng của quá trình tối ưu hóa.

Ứ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ệ

Trong lĩnh vực kỹ thuật và công nghệ, thuật toán di truyền (GA) đã được áp dụng rộng rãi và chứng minh hiệu quả trong việc tối ưu hóa các hệ thống phức tạp GA giúp cải thiện từ các hệ thống kỹ thuật cho đến mạng lưới và thiết kế quy trình, mang lại những giải pháp tối ưu cho các thách thức trong ngành.

Tối ưu hóa thiết kế hệ thống là một ứng dụng quan trọng của GA, giúp tìm ra các cấu trúc tối ưu cho hệ thống kỹ thuật như giao thông, mạng điện và hệ thống phân phối Chẳng hạn, GA có thể được áp dụng để cải thiện mạng lưới đường giao thông, nhằm giảm chi phí vận hành và nâng cao 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 là một ứng dụng quan trọng của GA, giúp cải thiện hiệu suất, phân phối và kiểm soát chất lượng Việc áp dụng GA có thể tối ưu hóa vị trí của các máy móc trong dây chuyền sản xuất, từ đó giảm thiểu chi phí vận hành và nâng cao hiệu quả của quy trình.

Thiết kế cấu trúc vật liệu là một ứng dụng quan trọng của GA, giúp tìm kiếm các cấu trúc tối ưu cho vật liệu, từ đó giảm trọng lượng và cải thiện các đặc tính cơ học hoặc nhiệt của vật liệu.

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ò then chốt trong việc tối ưu hóa danh mục đầu tư, giảm thiểu chi phí và cải thiện các quyết định quản lý tài chính.

Tối ưu hóa danh mục đầu tư bằng cách áp dụng GA 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 và giá trị hiện tại của tài sản.

Tối ưu hóa chi phí vận hành là một trong những lợi ích chính của GA, đặc biệt trong lĩnh vực logistics và quản lý chuỗi cung ứng GA có khả năng tìm ra các tuyến vận chuyển tối ưu, phân bố hàng hóa hiệu quả và giảm thiểu chi phí quản lý Việc ứng dụng GA giúp doanh nghiệp nâng cao hiệu suất hoạt động và tối ưu hóa quy trình vận hành.

Tối ưu hóa mô hình kinh tế là một ứng dụng quan trọng của GA, giúp dự báo và phân tích dữ liệu tài chính, đồng thời tìm ra các phương pháp quản lý tài chính hiệu quả hơn.

1.3.3 Ứng dụng trong lĩnh vực sinh học và y học

Thuật toán di truyền đã thể hiện giá trị to lớn trong sinh học và y học, đặc biệt trong việc 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.

Mô hình hóa và tối ưu hóa hệ sinh học là một ứng dụng quan trọng của thuật toán di truyền (GA), giúp cải thiện các mô hình sinh học như mạng gene và hệ thống sinh lý GA hỗ trợ tối ưu hóa quy trình sinh học bằng cách tìm kiếm các cấu trúc gene và protein tối ưu, từ đó thúc đẩy nghiên cứu trong lĩnh vực di truyền học và sinh học phân tử.

Phân tích dữ liệu di truyền học là một lĩnh vực quan trọng, trong đó GA (Genetic Algorithm) đóng vai trò then chốt Công nghệ này giúp phát hiện các đột biến gen, phân tích dữ liệu gene và tìm kiếm các đột biến có khả năng gây bệnh Việc ứng dụng GA trong di truyền học không chỉ nâng cao hiệu quả phân tích mà còn mở ra nhiều cơ hội mới trong nghiên cứu và điều trị bệnh.

Tối ưu hóa điều trị y tế với GA giúp xác định các phương pháp điều trị hiệu quả bằng cách điều chỉnh liều lượng thuốc, mô hình hóa tác động của thuốc lên cơ thể con người, và cải thiện 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 lĩnh vực khoa học máy tính và trí tuệ nhân tạo (AI), thuật toán di truyền (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.

Genetic Algorithm (GA) được sử dụng để tối ưu hóa các thuật toán tìm kiếm, bao gồm cả các thuật toán học máy như mạng nơ-ron, phân cụm dữ liệu và họ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 này, tăng cường khả năng học và xử lý dữ liệu hiệu quả hơn.

Hệ thống thông minh và trí tuệ nhân tạo (AI) có thể được tối ưu hóa thông qua việc áp dụng thuật toán di truyền (GA) GA hỗ trợ thiết kế các hệ thống thông minh, bao gồm tối ưu hóa hệ thống đề xuất, tự động hóa và nhiều ứng dụng khác trong lĩnh vực AI.

1.3.5 Ví dụ ứng dụng cụ thể

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: ụ ủ

Phân loại thuật toán di truyền

Thuật toán di truyền (GA) có nhiều biến thể và loại hình khác nhau, không phải là một phương pháp cố định, nhằm phục vụ cho các bài toán và ứng dụng cụ thể Bài viết này sẽ 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.

GA chuẩn, còn gọi là GA ẩn, 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 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 để tạo ra th h mế ệ ớ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ác biện pháp điều chỉnh và thay đổi phương pháp lai ghép và đột biến đang được tập trung nhằm nâng cao khả năng tìm kiếm tối ưu trong lĩnh vực GA.

Lai ghép h n h p (Hybrid Crossover) là phương pháp kết hợp nhiều kỹ thuật lai ghép khác nhau, bao gồm lai ghép một chốt, hai chốt và đa chốt Phương pháp này giúp nâng cao sự đa dạng của các cá thể trong quá trình nhân giống, từ đó cải thiện chất lượng và tính năng của giống cây trồng.

Đột biến mờ (Fuzzy Mutation) là một phương pháp được áp dụng nhằm giảm bớt sự thay đổi quá lớn trong quá trình tối ưu hóa, từ đó giúp giảm thiểu 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

GA đa mục tiêu được áp dụng để giải quyết các bài toán tối ưu hóa với nhiều mục tiêu cùng một lúc Thay vì chỉ 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ối ưu giữa các hàm mục tiêu khác nhau.

‒ 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 ể ả ệ ụ ả ụ

NSGA-II (Non-dominated Sorting Genetic Algorithm II) is an advanced evolutionary algorithm that enhances the traditional Genetic Algorithm (GA) by efficiently identifying Pareto optimal solutions This algorithm improves the selection process for Pareto solutions, resulting in higher optimization effectiveness.

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.

GA thích nghi là một phương pháp trong thuật toán di truyền, 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 dữ liệu đầu vào hoặc quá trình thực thi 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 với phản hồi từ môi trường bằng cách điều chỉnh các tham số dựa trên feedback từ các cá thể Điều này giúp nâng cao hiệu suất tìm kiếm và cải thiện khả năng tối ưu hóa.

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 công cụ hiệu quả để giải quyết các bài toán tối ưu hóa phức tạp, nhưng hiệu quả của nó chịu ảnh hưởng từ nhiều yếu tố, bao gồm các tham số, chiến lược áp dụng và môi trường thực hiện Các yếu tố này đóng vai trò quan trọng trong việc tối ưu hóa kết quả của GA.

1.5.1 Tham số của thuật toán di truyền

Mô hình 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ể đóng vai trò quan trọng trong việc xác định độ phong phú và đa dạng của giải pháp Quần thể lớn có khả năng dẫn đến sự hội tụ nhanh chóng vào một điểm cực trị, trong khi quần thể nhỏ 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 ra thế hệ mới Tỷ lệ này cần được điều chỉnh một cách cân bằng để tránh sự tập trung quá mức hoặc quá ít vào các cá thể mạnh.

Tỷ lệ đột biến (Mutation rate) là chỉ số phản ánh mức độ thay đổi di truyền của cá thể nhằm duy trì sự đa dạng trong quần thể Một tỷ lệ đột biến quá thấp có thể dẫn đến sự suy giảm sự sống, trong khi tỷ lệ quá cao có thể tạo ra các cá thể không phù hợp với môi trường.

Lựa chọn chiến lược chơi là yếu tố quan trọng ảnh hưởng đến chất lượng và tốc độ của trò chơi Việc sử dụng các chiến lược như xếp hạng, roulette wheel và tournament có thể cải thiện hiệu suất chơi và mang lại trải nghiệm tốt hơn cho người chơi.

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

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, và sự hiện diện của nhiều điểm cực trị đều ảnh hưởng đến khả năng tìm kiếm tối ưu của Thuật toán di truyền (GA).

Không gian tìm kiếm phức tạp: Các bài toán với không gian tìm kiếm rộng lớn và phức tạp yêu cầu thuật toán di truyền (GA) phải có khả năng khám phá tốt hơn, nhằm tránh tình trạng hội tụ sớm.

Hàm mục tiêu không tuyến tính cho phép GA xử lý hiệu quả các bài toán phức tạp hơn so với các phương pháp truyền thống Điều này giúp cải thiện 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àoli

Môi trường và dữ liệu đầu vào đóng vai trò quan trọng trong hiệu quả của GA Dữ liệu không chính xác, không đầy đủ 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 kiếm được.

Độ chính xác của dữ liệu là yếu tố quan trọng trong GA, yêu cầu dữ liệu đầu vào phải chính xác và đầy đủ Nếu dữ liệu không đồng nhất hoặc thiếu sót, việc tìm kiếm giải pháp tối ưu sẽ gặp nhiều khó khăn.

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ý hiệu quả trong quá trình tối ưu hóa bằng thuật toán di truyền (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 trực tiếp đến hiệu quả của thuật toán di truyền (GA) trong việc tìm kiếm giải pháp tối ưu Một cấu trúc mã hóa hợp lý giúp GA khám phá các giải pháp khả thi hơn, trong khi một cấu trúc không hợp lý có thể dẫn đến sự hội tụ không mong muốn hoặc mất mát thông tin quan trọng.

Cấu trúc mã hóa hiệu quả là yếu tố quan trọng trong việc lựa chọn mã hóa phù hợp như nhị phân, số thực hoặc chuỗi bit Điều này đảm bảo rằng mọi khả năng đều được đại diện một cách chính xác cho một giải pháp khả thi trong bài toán cụ thể.

Độ phức tạp của cấu trúc mã hóa ảnh hưởng đến khả năng tìm kiếm thông tin Một cấu trúc quá phức tạp có thể làm giảm hiệu quả tìm kiếm, trong khi cấu trúc quá đơn giản có thể dẫn đến việc bỏ sót các giải pháp tốt.

1.5.5 Chất lượng quần thể ban đầu

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 (Genetic Algorithm) là một phương pháp tối ưu hóa được phát triển để giải quyết các bài toán phức tạp trong nhiều lĩnh vực như kỹ thuật, y học, kinh tế và trí tuệ nhân tạo Phương pháp 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ý hiệu quả các hàm mục tiêu không tuyến tính hoặc đa mục tiêu, vượt qua những hạn chế của các phương pháp tối ưu hóa truyền thống.

Phần tiếp theo sẽ khám phá các thành phần cơ bản cấu thành thuật toán di truyền (GA), bao gồm mã hóa, quần thể, lựa chọn, lai ghép và đột biến Những 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 khéo léo 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ướng tới việc tìm ra 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 tiễn đã chứng minh giá trị to lớn trong nhiều lĩnh vực 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, GA đã mang lại những giải pháp hiệu quả 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 phứ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 tiến các thuật toán hệ thống học máy, thiết kế mạng nơ-ron và phát triển các hệ thống thông minh.

Chương trình bày các phân loại của thuật toán di truyền (GA), bao gồm GA truyền thống, GA đa mục tiêu, GA thích nghi và GA lai Mỗi loại GA 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.

Chương này thảo luận về các yếu tố ảnh hưởng đến hiệu quả của thuật toán di truyền (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 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ối ưu trong không gian tìm kiếm.

Chương 1 đã xây dựng nền tảng lý thuyết cho toàn bộ đồ án, cung cấp cái nhìn chi tiết 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 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.

CƠ SỞ DỮ LIỆU

Mô tả Class

2.1.1 Lược đồ CSDL quan hệ và vẽ mô hình lược đồ CSDL quan hệ a Lược đồ CSDL quan hệ:

‒ CourseTable: (CourseID, Tittle, IsActive, CrHrs, RoomTypeID)

‒ DayTimeSlotTable: (DayTimeSlotID, SlotTitle, StartTime, EndTime, DayID, IsActive)

‒ LabTable: (LabID, LabNo, Capacity, IsActive)

‒ LectureTable: (LectureID, FullName, ContactNo, IsActive)

‒ LectureSubjectTable: (LectureSubjectID, Title, LectureID, CourseID, IsActive)

‒ ProgramSemesterTable: (ProgramSemesterID, Title, ProgramID, SemesterID, IsActive, SessionID, Capacity)

‒ RoomTable: (RoomID, RoomNo, Capacity, IsActive)

‒ TimeTblTable: (TimeTableID, SessionID, ProgramSemesterID, StartDate, EndDate, IsActive, SessionTitle, TimeTableTitle, SemesterTitle)

ProgramSemesterSubjectID, SubjectTitle, RoomID, LabID, DayTimeSlotID, DayID, LectureID, IsActive, SessionID,SessionTitle) b 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

2 TypeName NVARCHAR(10) NOT NULL Tên loại phòng

14 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)

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho khóa học

2 Tittle NVARCHAR(150) NOT NULL Tên khóa học

3 IsActive BIT DEFAULT(1) Trạng thái hoạt động của khóa học (1 = Active, 0 Inactive) Mặc định là 1 (hoạt động)

4 CrHrs INT NOT NULL Số tín chỉ của khóa học

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

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

Primary Key Mã định danh cho mỗi ngày

2 Name NVARCHAR(50) NOT NULL Tên ngày(VD: Thứ 2)

3 IsActive BIT DEFAULT(1) Trạng thái hoạ động củt a ngày (1 = Active, 0 Inactive) Mặc định là 1 (hoạt động) d DayTimeSlotTable: (DayTimeSlotID, SlotTitle, StartTime, EndTime,

Bảng này lưu trữ thông tin các khung giờ học trong ngày

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

Primary Key Mã định danh cho khung giờ học

2 SlotTitle NVARCHAR(50) NOT NULL Tên khung giờ (VD:

3 StartTime TIME(7) NOT NULL Thời gian bắt đầu của khung giờ

4 EndTime TIME(7) NOT NULL Thời gian kết thúc của khung giờ

Foreign Key Liên kết đến ngày từ

6 IsActive BIT DEFAULT(1) Trạng thái hoạt động e LabTable: (LabID, LabNo, Capacity, IsActive)

Bảng này lưu trữ thông tin về các phòng thí nghiệm

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho phòng thí nghiệm

2 LabNo NVARCHAR(30) NOT NULL Số hiệu của phòng thí nghiệm

3 Capacity INT NOT NULL Sức chứa tố đa củi a phòng thí nghiệm

4 IsActive BIT DEFAULT(1) Trạng thái hoạt động của phòng thí nghiệm

(1 = Active, 0 Inactive) Mặc định là

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

Bảng thuộc tính: g LectureSubjectTable: (LectureSubjectID, Title, LectureID, CourseID, IsActive)

Bảng này liên kết giảng viên với các môn học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho giảng viên

2 FullName NVARCHAR(150) NOT NULL Họ và tên giảng viên

3 ContactNo NVARCHAR(50) NULL Số điện thoại của giảng viên

4 IsActive BIT DEFAULT(1) Trạng thái hoạt động của giảng viên

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho liên kết

2 Title NVARCHAR(150) NOT NULL Tên môn học giảng dạy

Foreign Key Liên kết đến giảng viên từ LectureTable

Foreign Key Liên kết đến môn học từ CourseTable

5 IsActive BIT DEFAULT(1) Trạng thái hoạt động

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,

Bảng này liên kết các chương trình học với các học kỳ

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho chương trình học

2 Name NVARCHAR(150) NOT NULL Tên của chương trình học

3 IsActive BIT DEFAULT(1) Trạng thái hoạt động của chương trình học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho học kỳ

2 SemesterName NVARCHAR(50) NOT NULL Tên học kỳ (VD:

3 IsActive BIT DEFAULT(1) Trạng thái hoạt động của học kỳ

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

INT IDENTITY(1,1) Primary Key Mã định danh cho liên kết

2 Title NVARCHAR(150) NOT NULL Tên của chương trình học kỳ

Foreign Key Liên kết đến chương trình từ ProgramTable

Foreign Key Liên kết đến học kỳ từ SemesterTable

Trạng thái hoạt động của liên kết

6 SessionID INT Indentity(1,1) Foreign Key Liên kết đến chương trình từ SessionTable

7 Capacity INT NOT NULL Sức chứa tối đa của bảng học kỳ k RoomTable: (RoomID, RoomNo, Capacity, IsActive)

Bảng này lưu trữ thông tin về các phòng học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho phòng học

2 RoomNo NVARCHAR(10) NOT NULL Số hiệu của phòng học

3 Capacity INT NOT NULL Sức chứa tối đa của phòng học

4 IsActive BIT DEFAULT(1) Trạng thái hoạt động của phòng học (1 Active, 0 = Inactive) Mặc định là 1 (hoạt động) l TimeTblTable: (TimeTableID, SessionID, ProgramSemesterID, StartDate, EndDate, IsActive, SessionTitle, TimeTableTitle, SemesterTitle)

Bảng này lưu trữ thông tin về lịch học chính thức

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

Primary Key Mã định danh cho lịch học

Foreign Key Liên kết đến phiên học từ bảng SessionTable Đây là

ID của một phiên học

Foreign Key Liên kết đến chương trình học kỳ từ bảng ProgramSemesterTable Đây là ID của chương trình học kỳ

4 StartDate DATE NOT NULL Ngày bắt đầu lịch học

5 EndDate DATE NOT NULL Ngày kết thúc lịch học

1) Trạng thái hoạt động của lịch học (1 = Active, 0 Inactive) Mặc định là 1 (hoạt động)

R(255) NOT NULL Tiêu đề của phiên học

R(255) NOT NULL Tiêu đề của lịch học

R(255) NOT NULL Tiêu đề của học kỳ

Bảng này lưu trữ thông tin về các phiên học

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

IDENTITY(1,1) Primary Key Mã định danh cho từng phiên học

2 Title NVARCHAR(255) NOT NULL Tên phiên học

4 IsActive BIT DEFAULT(1) Trạng thái hoạt động của phiên học (1 Active, 0 = Inactive) Mặc định là 1 (hoạt động) n ProjectTable: (ProgramSemesterSubjectID, ProgramSemesterID,

Bảng này lưu trữ thông tin về các dự án

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

INT IDENTITY(1,1) Primary Key Mã định danh cho từng môn học trong chương trình học kỳ

Foreign Key Liên kết đến chương trình học kỳ từ bảng ProgramSemesterTable Đây là ID của chương trình học kỳ mà môn học thuộc về

Foreign Key Liên kết đến môn học từ bảng LectureSubjectTable Đây là ID của môn học được ảng dạy trong gi học kỳ

4 SSTitle NVARCHAR(255) NOT NULL Tiêu đề của môn học trong chương trình học kỳ

) Trạng thái hoạt động của môn học trong học kỳ (1 = Active, 0 Inactive) Mặc định là

1 (hoạt động) o TimeTableDetailTable: (TimeTableDetailID, TimeTableID,

ProgramSemesterSubjectID, SubjectTitle, RoomID, LabID, DayTimeSlotID, DayID, LectureID, IsActive, SessionID,SessionTitle)

Bảng này lưu trữ chi tiết thời khóa biểu

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

INT IDENTITY(1,1) Primary Key Mã định danh cho từng phiên học trong bảng chi tiết lịch học

IDENTITY(1,1) Foreign Key Liên kết đến bảng

TimeTblTable, xác định lịch học mà phiên học này thuộc về.

IDENTITY(1,1) Foreign Key Liên kết đến môn học trong chương trình học kỳ từ bảng ProgramSemesterSubje ctTable

NOT NULL Tiêu đề của môn học trong phiên học

Foreign Key Liên kết đến bảng

RoomTable, xác định phòng học nơi diễn ra phiên học

Foreign Key Liên kết đến bảng

LabTable, xác định phòng thí nghiệm nếu có

Foreign Key Liên kết đến bảng

DayTimeSlotTable, xác định khung giờ và ngày của phiên học

Foreign Key Liên kết đến bảng

DayTable, xác định ngày cụ ể trong tuần th mà phiên học diễn ra

Foreign Key Liên kết đến bảng

LectureTable, xác định giảng viên tham gia phiên học

Trạng thái hoạt động của phiên học (1 Active, 0 = Inactive) Mặc định là 1 (hoạt động)

IDENTITY(1,1) Foreign Key Liên kết đến bảng

SessionTable, xác định phiên học mà chi tiết này thuộc về

) NOT NULL Tiêu đề của phiên học.

Tóm tắt chương 2

Chương 2 trình bày chi tiết quá trình chuyển đổi mô hình Class (lý thuyết đối tượng) thành mô hình cơ sở dữ liệu quan hệ thông qua các b ng và m i quan hả ố ệ giữa chúng Các b ng này bao g m thông tin vả ồ ề loại phòng, khóa h c, gi ng viên, môn ọ ả học, chương trình học, học kỳ, phòng học, phòng thí nghi m, khung gi và các chi ệ ờ tiết về thời khóa bi u M i bể ỗ ảng được thiết kế với các thuộc tính, kiểu dữ liệu và các ràng buộc như khóa chính và khóa ngoại để đảm b o tính toàn vả ẹn và kh năng truy ả v n hi u qu Các b ng quan tr ng bao gấ ệ ả ả ọ ồm RoomTypeTable (loại phòng h c và ọ phòng thí nghi m), CourseTable (khóa h c và tín ch ), ệ ọ ỉ DayTable và DayTimeSlotTable (ngày và khung gi h c), LabTable (phòng thí nghi m), ờ ọ ệLectureTable (gi ng viên), LectureSubjectTable (liên k t gi ng viên v i môn h c), ả ế ả ớ ọProgramTable (chương trình học), SemesterTable (học k ), ProgramSemesterTable ỳ(liên kết chương trình học với h c k ), RoomTable (phòng h c), TimeTblTable và ọ ỳ ọTimeTableDetailTable (chi ti t th i khóa bi u), và ProjectTable ế ờ ể (dự án trong chương trình h c kọ ỳ) Vi c thi t kệ ế ế h ệthống cơ sở d ữliệu này giúp qu n lý hi u qu các thông ả ệ ả tin liên quan đến thời khóa bi u h c tể ọ ập, đảm b o tính toàn vả ẹn dữ li u và hỗ trợ việc ệ truy v n và c p nh t thông tin m t cách chính xác và linh hoấ ậ ậ ộ ạt.

MÔ HÌNH THỰC NGHIỆM

Form

Đây là cấu trúc dự án của toàn bộ mô hình thực nghiệm, mô phỏng quá trình thiết kế cơ sở dữ ệu quan hệ: li

Hình 3.1: Cấu trúc dự án

Tiếp đó là hình 3.2 thể hiện giao diện chính của mô hình thực nghiệm củ ứng dụng a sắp xếp thời khóa biểu:

3.1.1 Form quản lý niên khoá ( Form Session )

Lớp Session được phát triển với nhiều tính năng hỗ trợ quản lý tr niên khóa trong cơ sở dữ liệu Nó khởi tạo kết nối với cơ sở dữ liệu thông qua lớp TKBContext, hoạt động như một DbContext để quản lý bảng SessionTable, cho phép thực hiện các thao tác như thêm, cập nhật và xóa dữ liệu hiệu quả.

Khi form được tải, phương thức Session_Load sẽ tự động gọi FillGrid để hiển thị danh sách niên khóa hiện có trong bảng SessionTable Danh sách này được trình bày trong một bảng DataGridView với các cột như mã niên khóa (SessionID), tên niên khóa (Title) và trạng thái hoạt động (IsActive), được định dạng cẩn thận nhằm tối ưu giao diện người dùng Phương thức FillGrid cũng hỗ trợ lọc dữ liệu theo tên niên khóa thông qua ô tìm kiếm txt_timkiem, giúp người dùng nhanh chóng tìm thấy thông tin cần thiết.

Người dùng có thể thêm niên khóa mới thông qua phương thức btn_save_Click, trong đó thực hiện các kiểm tra để đảm bảo tính hợp lệ của dữ liệu nhập vào và ngăn chặn việc trùng lặp tên niên khóa bằng cách xác minh dữ liệu trong cơ sở dữ liệu.

Chức năng thêm niên khóa trong hệ thống cho phép người dùng dễ dàng chỉnh sửa dữ liệu bằng cách chọn một dòng trong DataGridView Thông tin niên khóa sẽ tự động được điền vào các ô nhập liệu để người dùng chỉnh sửa Sau khi chọn chỉnh sửa, các tính năng xoá và cập nhật sẽ được hiển thị Người dùng có thể cập nhật thông tin thông qua phương thức btn_update_Click, trong đó có cơ chế kiểm tra tính hợp lệ và kiểm tra trùng lặp dữ liệu Mọi thay đổi sẽ được lưu vào cơ sở dữ liệu thông qua một giao dịch để đảm bảo tính nhất quán.

Hình 3.5: Chức năng chỉnh sửa (F1)

Thực hiện chỉnh sửa niên khoá từ “K022.2022-2026” thành “K022.2022- 2028”, và thực hiện thay đổi trạng thái của niên khoá này

Hình 3.6: Thực hiện cập nhật thành công

Tính năng xóa niên khóa được thực hiện qua phương thức btn_xoa_Click, cho phép người dùng xóa niên khóa sau khi xác nhận Nếu niên khóa không tồn tại hoặc xảy ra lỗi, hệ thống sẽ hiển thị thông báo để hướng dẫn người dùng khắc phục Các phương thức hỗ trợ như ClearForm và DisableComponents giúp giao diện dễ sử dụng, đồng thời đặt lại các ô nhập liệu khi cần, tạo ra một luồng thao tác thuận tiện và logic cho người dùng.

Hình 3.7: Thự hiện xoá khoá “K2022.2022-2028c ”

Tính năng tìm kiếm được cải tiến với sự kiện txt_timkiem_TextChanged, cho phép cập nhật dữ liệu theo thời gian thực dựa trên nội dung người dùng nhập vào.

3.1.2 Form quản lý chuyên ngành ( Program )

Chương trình Form được thiết kế để quản lý thông tin chuyên ngành một cách hiệu quả Người dùng có thể thực hiện các chức năng như thêm mới, chỉnh sửa, tìm kiếm và xóa chuyên ngành dễ dàng Giao diện thân thiện với các trường nhập liệu như tên chuyên ngành và trạng thái hoạt động, cùng với bảng hiển thị dữ liệu (DataGridView) hỗ trợ tìm kiếm nhanh theo từ khóa và cho phép chỉnh sửa trực tiếp Các nút thao tác như Lưu, Hủy, Xóa và Chỉnh sửa giúp người dùng quản lý chuyên ngành một cách chính xác Hệ thống cũng tích hợp kiểm tra dữ liệu nhập và thông báo lỗi khi có vấn đề, đảm bảo tính nhất quán và ổn định cho dữ liệu.

26 các chức năng được triển khai đảm bảo tính nhất quán dữ ệu và xử lý lỗi hiệu quảli , tương tự form Session

Hình 3.9: Thực hiện thêm chuyên ngành

3.1.3 Form quản lý học kỳ ( Semester )

Form Semester được phát triển tương tự như form Session, với các chức năng chính như hiển thị danh sách học kỳ, tìm kiếm, thêm mới, chỉnh sửa và xóa dữ liệu trong bảng SemesterTable.

Khi tải form, phương thức Semester_Load sẽ gọi FillGrid để hiển thị danh sách học kỳ và hỗ trợ tìm kiếm theo từ khóa từ ô txt_timkiem Tính năng thêm mới học kỳ được thực hiện trong phương thức btn_save_Click, với các kiểm tra tính hợp lệ dữ liệu và kiểm tra trùng lặp trong cơ sở dữ liệu Phương thức btn_update_Click cho phép người dùng chỉnh sửa thông tin học kỳ đã chọn, với cơ chế kiểm tra tương tự để đảm bảo cập nhật đúng mục Việc xóa học kỳ được thực hiện qua phương thức btn_xoa_Click, có thêm xác nhận từ người dùng trước khi thực hiện xóa.

Form hỗ trợ các thao tác giao diện như xóa trắng ô nhập liệu (ClearForm) và chuyển đổi trạng thái các nút cũng như ô nhập liệu (EnableComponents và DisableComponents), nhằm tạo ra giao diện trực quan và dễ sử dụng Tất cả các chức năng được triển khai đảm bảo tính nhất quán của dữ liệu và xử lý lỗi hiệu quả, tương tự như form Session.

Hình 3.10: Thực hiện nhập dữ ệu cho học kỳ.li

3.1.4 Form quản lý phòng ( Room )

Form Room được thiết kế nhằm hỗ trợ người dùng trong việc quản lý thông tin phòng họp hiệu quả Form này bao gồm các trường nhập liệu như tên phòng, sức chứa và trạng thái, giúp người dùng dễ dàng thêm mới, chỉnh sửa hoặc xóa thông tin phòng Đặc biệt, textbox sức chứa sử dụng sự kiện Key Press để ngăn chặn việc nhập ký tự, cho phép người dùng chỉ nhập số.

Danh sách phòng hiển thị trong bảng dữ liệu bao gồm thông tin chi tiết về tên phòng, sức chứa và trạng thái, cho phép người dùng chỉnh sửa trực tiếp bằng cách chọn dòng Tất cả các thao tác đều được kiểm tra tính hợp lệ và xử lý lỗi, nhằm đảm bảo dữ liệu chính xác và tránh các sự cố không mong muốn trong quá trình sử dụng Các chức năng được triển khai đảm bảo tính nhất quán của dữ liệu và xử lý lỗi hiệu quả, tương tự như các form Session và Semester.

Hình 3.11: Thực hiện nhập dữ ệu cho phòng.li

3.1.5 Form quản lý phòng thực hành ( Lab )

Trong quản lý phòng Lab, việc sử dụng MaskedTextBox để định dạng tên phòng theo mẫu A0-00.00/A0 giúp đảm bảo tính chính xác trong quá trình nhập liệu, giảm thiểu sai sót Đồng thời, sự kiện KeyPress được áp dụng cho trường sức chứa để ngăn chặn việc nhập ký tự không hợp lệ, chỉ cho phép nhập số Những cải tiến này không chỉ nâng cao độ chính xác trong quản lý mà còn cải thiện trải nghiệm người dùng Các chức năng thêm, xoá, sửa, cập nhật và tìm kiếm được triển khai nhằm đảm bảo tính nhất quán dữ liệu và xử lý lỗi hiệu quả, tương tự như form Roomli.

Hình 3.12: Thực hiện nhập các phòng lab

3.1.6 Form quản lý môn học ( Course )

Form quản lý môn học cung cấp các tính năng tương tự như các form khác, bao gồm khả năng thêm mới, cập nhật và xóa môn học Ngoài ra, nó còn hỗ trợ tìm kiếm theo tên môn học, giúp người dùng dễ dàng quản lý thông tin.

Trong form này, tính năng load dữ liệu vào các ComboBox giúp người dùng dễ dàng chọn lựa Ví dụ, số tiết học được load vào ComboBox cmb_giohoc từ danh sách giá trị từ 1 đến 7, mỗi giá trị tương ứng với số giờ học Đồng thời, loại phòng học được lấy từ bảng RoomTypeTable trong cơ sở dữ liệu, cho phép người dùng chọn phòng học phù hợp với môn học, bao gồm phòng học và phòng lab Việc này không chỉ đảm bảo tính nhất quán của dữ liệu mà còn giúp người dùng dễ dàng lựa chọn thông tin cần thiết cho môn học.

Hình 3.13: Thực hiện thêm các môn học

3.1.7 Form quản lý giảng viên ( Lecturer )

Kết quả sắp xếp

Thuật toán di truyền được sử dụng để tối ưu hóa việc sắp xếp thời khóa biểu, nhằm phân bổ lớp học vào thời gian và phòng học một cách hiệu quả Kết quả của thuật toán được đánh giá dựa trên các yếu tố như số lượng xung đột thời gian, mức độ sử dụng hợp lý của phòng học và khả năng đáp ứng các yêu cầu đặc thù của bài toán.

Hình 3.28: Kết quả thuật toán di truyền.

Chúng ta sẽ tiến hành sắp xếp thời khóa biểu thông qua form GenerateTKB, cho phép người dùng dễ dàng chọn ngày bắt đầu và ngày kết thúc bằng công cụ DateTime Picker, giúp nhập ngày tháng và thời gian một cách trực quan và thuận tiện.

Hình 3.29: Thực hiện sắp xếp với form GenerateTKB.

Tóm tắt chương 3

Chương 3 đã trình bày chi tiết về việc thi t kế và tri n khai các form trong h ế ể ệ thống quản lý thời khóa biểu, bao gồm các chức năng quản lý niên khóa, chuyên ngành, h c k , phòng h c, gi ng viên, môn h c, và phân công gi ng d y Các form ọ ỳ ọ ả ọ ả ạ này được phát triển với các tính năng chủ ếu như thêm mớ y i, chỉnh sửa, xóa, và tìm kiếm dữ liệu T t cấ ả các thao tác được thực hi n thông qua các sệ ự kiện và phương thức ki m tra tính h p l c a d ể ợ ệ ủ ữliệu, đảm b o tính nh t quán và ả ấ ổn định cho h ệthống

Thuật toán di truyền được áp dụng hiệu quả trong việc sắp xếp thời khóa biểu, với mục tiêu tối ưu hóa phân bổ thời gian và phòng học Kết quả cho thấy thuật toán này có khả năng giải quyết hiệu quả các xung đột về thời gian và sử dụng phòng học, đồng thời đáp ứng các yêu cầu đặc thù của bài toán.

Chương 3 trình bày các form và tính năng hữu ích giúp quản lý thời khóa biểu trong môi trường giáo dục, từ đó tiết kiệm thời gian và nâng cao hiệu quả công việc cho người quản lý.

Kết luận, đồ án "Phần mềm hỗ trợ sắp xếp thời khóa biểu" đã hoàn thành với mục tiêu xây dựng một ứng dụng giúp các trường học, đại học và các tổ chức giáo dục sắp xếp thời gian học tập một cách hợp lý và hiệu quả Phần mềm đã thực hiện được các chức năng chính như nhập liệu thông tin môn học, giảng viên, phòng học, và các yêu cầu khác từ phía người dùng, đồng thời tự động sắp xếp lịch học một cách tối ưu dựa trên các thông số đầu vào.

Thông qua đồ án, người dùng có thể tạo ra một thời khóa biểu cho học kỳ, giúp tiết kiệm thời gian và giảm thiểu các xung đột về lịch học Các tính năng như chọn phòng học, phân công giảng viên và tự động phân bổ thời gian học đã được triển khai thành công, đáp ứng các yêu cầu cơ bản trong việc quản lý lịch học của sinh viên và giảng viên.

Trong tương lai, đồ án "Phần mềm hỗ trợ sắp xếp thời khóa biểu" sẽ phát triển mạnh mẽ với nhiều hướng đi quan trọng Đầu tiên, phần mềm sẽ được cải tiến với giao diện thân thiện, giúp người dùng dễ dàng nhập liệu và theo dõi tiến trình sắp xếp lịch học Tiếp theo, khả năng xử lý các bài toán sắp xếp lớn hơn sẽ được tăng cường thông qua việc mở rộng thuật toán và thêm các ràng buộc phức tạp Để nâng cao độ chính xác, phần mềm sẽ kết hợp thuật toán di truyền với các kỹ thuật khác như lập trình ràng buộc, đồng thời tối ưu hóa tốc độ xử lý và khả năng hội tụ Việc triển khai thực tế tại các trường học và tổ chức giáo dục sẽ giúp đánh giá hiệu suất phần mềm và điều chỉnh tính năng cho phù hợp Cuối cùng, phần mềm sẽ được mở rộng ứng dụng không chỉ trong giáo dục mà còn trong các lĩnh vực khác như quản lý lịch học trong doanh nghiệp và trung tâm đào tạo, đáp ứng nhu cầu thực tiễn ngày càng cao.

Ngày đăng: 09/02/2025, 17:01

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Goldberg, D. E. (1989). Genetic algorithms in search, optimization, and machine learning. Addison-Wesley Khác
[2]. Mitchell, M. (1998). An introduction to genetic algorithms. MIT Press Khác
[3]. Deb, K. (2001). Multi-objective optimization using evolutionary algorithms.Wiley Khác
[4]. De Jong, K. A. (2006). Evolutionary computation: A unified approach. MIT Press Khác
[5]. Bọck, T., Fogel, D. B., & Michalewicz, Z. (1997). Handbook of evolutionary computation. Oxford University Press Khác
[6]. Michalewicz, Z. (1996). Genetic algorithms + data structures = evolution programs (3rd ed.). Springer Khác