Toán tử đổi chỗ tiết học trong một lớp (khử tiết cụm)

Một phần của tài liệu Tính toán tiến hoá và ứng dụng lập thời khoá biểu trường trung học phổ thông (Trang 59)

Toán tử này có nhiệm vụ đổi chỗ hai gene trong đoạn nhiễm sắc thể biểu diễn thời khóa biểu của một lớp. Phép đổi chỗ này không vi phạm các yêu cầu về nội dung của nhiễm sắc thể nhưng vẫn bảo đảm tính biến dị.

Hỡnh 2: Toỏn tử đổi chỗ hai tiết học trong một lớp

Có thể sử dụng toán tử này để chuyển một tiết học của môn học từ ngày có nhiều tiết sang ngày có ít tiết hơn.

3.4.1.2 Toán tử đổi chỗ giáo viên trong một lớp (khử tiết trựng)

Sử dụng toán tử này để khử tiết trùng của một giáo viên tại nhiều lớp. Khi cú một giỏo viờn A bị trựng tiết dạy trờn hai lớp, giả sử là lớp P và lớp Q vào tiết học T của ngày N. Ta sẽ tỡm tiết T’ vào ngày N’ trong tuần sao cho giỏo viờn A khụng cú tiết dạy. Ta tỡm được giáo viên B dạy tại tiết T’ của ngày N’ của một trong hai lớp đó. Đổi chỗ tiết dạy của hai giáo viên, ta khử được xung đột tại tiết T của giáo viên A.

Vớ dụ: Thứ 2 Thứ 3 …. Thứ 7 T1 Văn Sinh …… …… T2 Văn Húa …… …… T3 Văn Toỏn …… …… T4 Anh Văn …… …… T5 Lý Anh …… …… Thứ 2 Thứ 3 …. Thứ 7 T1 Toỏn Sinh …… …… T2 Văn Húa …… …… T3 Văn Văn …… …… T4 Anh Văn …… …… T5 Lý Anh …… ……

Hỡnh 3: Toỏn tử đổi chỗ giáo viên

3.4.1.3 Toỏn tử chuyển dịch mụn học trong một ngày (khử tiết cỏch):

Sử dụng để khử các tiết học của một môn bị tách rời trong một ngày. Cách giải quyết là chuyển tiết gây tách rời lên trên hoặc xuống dưới Vớ dụ:

3.4.1.4 Toỏn tử dồn tiết của một mụn học của một lớp (khử tiết phõn tỏn):

Một số môn học có nhiều tiết trong một tuần cũng cần phải phân bố tập trung trên từng lớp (nhưng không vượt quá k = 2 tiết cho phép), tránh tỡnh trạng ngày nào cũng cú một tiết của mụn học đó.

10A Thứ 2 Thứ 3 …. Thứ 7 T1 Gv A …… Gv D T2 Gv C …… Gv F T3 Gv C …… Gv B T4 Gv D …… …… T5 Gv D …… …… 10A Thứ 2 Thứ 3 …. Thứ 7 T1 Gv B …… Gv D T2 Gv C …… Gv F T3 Gv C …… Gv A T4 Gv D …… …… T5 Gv D …… …… 10B Thứ 2 Thứ 3 …. Thứ 7 T1 Gv A …… Gv C T2 Gv E …… Gv A T3 Gv E …… Gv E T4 Gv F …… …… T5 Gv G …… …… Thứ 2 Thứ 3 …. Thứ 7 T1 Toỏn Sinh …… …… T2 Văn Húa …… …… T3 Văn Văn …… …… T4 Anh Anh …… …… T5 Lý Văn …… …… Thứ 2 Thứ 3 …. Thứ 7 T1 Toỏn Sinh …… …… T2 Văn Húa …… …… T3 Văn Anh …… …… T4 Anh Văn …… …… T5 Lý Văn …… ……

Cỏch giải quyết là phải kiểm tra các môn học đó tại mỗi ngày của một lớp. Nếu có ngày chỉ có một tiết môn học đó, thỡ tỡm một ngày khỏc cũng chỉ cú một tiết rồi chuyển vào đó. Nếu không tỡm được nghĩa là môn học đó có số tiết là số lẻ.

Vớ dụ:

Môn Anh văn của lớp 10A có 3 tiết bị phân tán vào 3 buổi, chuyển 1 tiết ở thứ bảy vào ngày thứ ba.

Hỡnh 4: Toỏn tử dồn tiết

3.4.1.5 Toán tử thay đổi toàn bộ lớp

Một đặc điểm của giải thuật tiến hóa là khi đó đạt đến giá trị gần tối ưu, quần thể sẽ mất dần tính biến dị và không cũn thụng tin mới nên khó phát triển. Để khắc phục điểm này, ta sẽ cho biến dị mạnh bằng cách thay thế một phần hoặc toàn bộ các cá thể bằng các cá thể hoàn toàn mới. Điều này sẽ cung cấp thông tin mới cho giải thuật, đem lại khả năng có những đột phá mới trong tỡm kiếm để dẫn đến giá trị gần tối ưu hơn.

3.4.2 Cỏc toỏn tử lai ghộp

Chương trỡnh chỉ sử dụng một toỏn tử lai.

Toán tử này thực hiện việc đổi chỗ hai đoạn gene biểu diễn cách lập lịch của cùng một lớp giữa hai cá thể.

10A Thứ 2 Thứ 3 …. Thứ 7 T1 Toỏn Sinh …… ……

T2 Văn Anh …… Húa

T3 Văn Anh …… ……

T4 Anh Văn …… ……

T5 Lý Văn …… ……

10A Thứ 2 Thứ 3 …. Thứ 7 T1 Toỏn Sinh …… ……

T2 Văn Húa …… Anh

T3 Văn Anh …… ……

T4 Anh Văn …… ……

Đầu tiên, ta chọn ngẫu nhiên hai cá thể, và chọn ngẫu nhiên lớp cần đổi và thực hiện đổi chỗ.

Vớ dụ:

Cỏ thể 1 Cỏ thể 1’

Cỏ thể 2 Cỏ thể 2’

Hỡnh 5: Toỏn tử lai toàn bộ lớp

3.5. Quỏ trỡnh chọn lọc

Quỏ trỡnh này dựa vào phương pháp bánh xe xổ số của GA cổ điển (xem mục 1.2.4) với xác suất lựa chọn của mỗi cỏ thể vi được tính theo công thức:

N j j i i v f v f p 1 ) ( ) (

Trong đó, f(vi) là hàm đánh giá cá thể vi trờn tất cả cỏc ràng buộc,

N j

v

f( )là độ thích nghi toàn phần của quần thể, N là số cá thể.

10A Thứ 2 Thứ 3 …. Thứ 7 T1 Gv A …… …… Gv A T2 Gv A …… …… Gv B T3 Gv B …… …… Gv C T4 Gv B …… …… …… T5 Gv C …… …… …… 10A Thứ 2 Thứ 3 …. Thứ 7 T1 Gv D …… …… Gv D T2 Gv D …… …… Gv E T3 Gv E …… …… Gv F T4 Gv E …… …… …… T5 Gv F …… …… …… 10A Thứ 2 Thứ 3 …. Thứ 7 T1 Gv D …… …… Gv D T2 Gv D …… …… Gv E T3 Gv E …… …… Gv F T4 Gv E …… …… …… T5 Gv F …… …… …… 10A Thứ 2 Thứ 3 …. Thứ 7 T1 Gv A …… …… Gv A T2 Gv A …… …… Gv B T3 Gv B …… …… Gv C T4 Gv B …… …… …… T5 Gv C …… …… ……

3.6 Thủ tục tiến húa Procedure EA_for_Schedule; Procedure EA_for_Schedule; Begin Khởi tạo P; Đánh giá P; Repeat Số_lần Random() For i 1 to Số_lần Do Begin Hệ_số Random();

If Hệ_số < PCrs1 then Lai toàn bộ (P, T); Hệ_số Random();

If Hệ_số < PMut1 then Khử tiết trựng của giỏo viờn (P, T); Hệ_số Random();

If Hệ_số < Pmut2 then Khử tiết bị cỏch của mụn học (P, T); Hệ_số Random();

If Hệ_số < PMut3 then Khử tiết cụm của mụn học (P, T); Hệ_số Random();

If Hệ_số < PMut4 then Khử tiết phõn tỏn của mụn học (P, T) Hệ_số Random();

If Hệ_số < PMut5 then Biến dị mạnh(P); End; Lựa_chọn (T, P); Đánh giá P; Until Điều-kiện_kết_thúc; Biểu_diễn_lời_giải; End;

Trước tiên, khởi tạo quần thể P như đó trỡnh bày ở mục 4.2

Sau đó, các cá thể của quần thể P được đánh giá độ thích nghi thông qua thủ tục đánh giá như ở mục 3.3.

Vũng lặp Repeat … Until thực hiện quỏ trỡnh tiến húa cho đến khi thỏa món Điều_kiện_kết_thúc (đạt đến một giá trị đủ lớn của hàm thích nghi). Trong vũng lặp này, quần thể P liờn tục được tái sinh và phát triển thông qua quần thể trung gian T. Các cá thể mới được sinh ra thông qua các toán tử di truyền được lưu trữ tạm thời trong T. Sau khi hoàn thành các toán tử di truyền, thủ tục Lựa_chọn (xem mục 3.5 ) mới thực hiện lựa chọn từ quần thể T các cá thể tốt hơn thông qua hàm thích nghi để đưa vào quần thể P. Cuối cùng P được đánh giá với các cá thể mới để kết thúc một bước lặp.

Trong thủ tục trên, các biến PCrs1, PMut1, PMut2… là các tham số thể hiện xác suất được sử dụng các toán tử. Chúng có thể được cố định hoặc thay đổi giá trị trong quá trỡnh thực hiện chương trỡnh.

Giải thuật trên là tổng quát cho các bài toán thời khóa biểu. Tùy theo từng loại bài toán thời khóa biểu khác nhau, nó cần được điều chỉnh cho phù hợp.

Giải thuật trên được thử nghiệm trên bộ dữ liệu thực của trường Trung Học Phổ Thông Buôn Ma thuột bằng phần mềm được mô tả ở chương kế tiếp.

Chƣơng IV

XÂY DỰNG PHẦN MỀM MINH HỌA

4.1 Tổ chức dữ liệu

- Danh sỏch mụn học

- Bảng phõn bố số tiết học trong mỗi buổi - Danh sỏch lớp học

- Bảng phõn cụng giỏo viờn chủ nhiệm - Bảng phõn cụng giảng dạy

- Số lớp 64, chia thành hai ca. Ca sỏng gồm khối 11 và khối 12, ca chiều chỉ gồm lớp 10.

- Tổng số Giỏo viờn 85

Chương trỡnh sử dụng quần thể gồm từ 20 đến 30 cá thể, mỗi cá thể được thể hiện bởi một nhiễm sắc thể có cấu trúc mảng 2 chiều thể hiện thời khóa biểu của một ca học. Cấu trúc này dễ dàng chuyển về dạng cấu trúc mảng 3 ba chiều như đó mụ tả ở mục 3.1 sau khi tỡm được lời giải đủ tốt. Việc sử dụng mảng 2 chiểu giúp ta có cái nhỡn tổng thể về thời khúa biểu của toàn bộ ca học, đồng thời dễ dàng xõy dựng cỏc toỏn tử di truyền và ớt lóng phớ bộ nhớ.

Để giải quyết vấn đề học hai ca sáng và chiều, ta lập riêng cho khối sáng trước, sau đó lập cho khối chiều. Nếu có giáo viên dạy hai buổi, có thể ghi nhận tiết dạy buổi sáng để tránh phân tiết dạy buổi chiều vào cùng ngày hoặc tránh phân vào tiết đầu của buổi chiều. Cuối cùng, phần mềm cho phép định trước số lời giải đủ tốt muốn có và lưu trữ chúng để có thể chọn ra phương án vừa ý nhất.

4.2. Sơ đồ phân ró chức năng

Hệ thống Lập Thời khúa biểu

1. Nhập dữ liệu 2. Lập TKB 3. Hiển thị TKB

1.1 Danh sỏch mụn học 2.1 Lập TKB cỏc ca học 3.1 Xem Tkb Lớp

1.2 Danh sỏch Gviờn 2.2 Xem các phương án 3.2 Xem Tkb Giỏo viờn

1.3 Danh sỏch lớp 2.3 Chọn phương án 3.3 In Tkb Lớp 1.4 Bảng Phõn cụng 3.4 In Tkb Giỏo viờn 1.5 Đăng ký lịch dạy

Các chức năng trên tương ứng với các Menu Pull Down trong màn hỡnh giao tiếp chớnh.

4.3. Một số chức năng và giao diện của phần mềm

4.3.1. Chức năng “Nhập dữ liệu”

4.3.1.1. Chức năng “Bảng phõn cụng Giảng dạy”

Nhập phõn cụng giảng dạy cho cỏc giỏo viờn tại cỏc lớp.

4.3.1.2 Chức năng “Bảng đăng ký tiết dạy bằng tay”

Nhập bằng tay các tiết cần phân cố đinh theo yêu cầu của giáo viên. Trong chương trỡnh cú kiểm tra Tiết và Lớp đó cú Giỏo viờn khỏc đăng ký.

4.3.2. Chức năng Hiển thị TKB

4.3.2.1 Chức năng “Xem/In Thời khóa biểu Giáo viên”

Mở Combo box để chọn Giáo viên.

Giỏo viờn dạy ca nào thỡ hiển thị thời khúa biểu ca đó. Nếu muốn In thời khúa biểu thỡ bấm nỳt lệnh In

4.3.2.2 Chức năng “In Thời khóa biểu Giáo viên”

Chọn tổ bộ mụn và cú thể chọn in từng giỏo viờn hoặc cả tổ bộ mụn. Nếu giỏo viờn dạy cả hai ca, thỡ in thời khúa biểu cả hai ca.

Vớ dụ: Mẫu in thời khúa biểu của một giỏo viờn dạy cả hai ca sỏng và chiều

THỜI KHểA BIỂU GIÁO VIấN

Họ Tờn Giỏo viờn:Nguyễn Anh Tuấn

Bộ môn: Văn Mó số: 105

Tiết Thứ Hai Thứ Ba Thứ Tu Thứ Năm Thứ Sỏu Thứ Bảy

1 SH / 12K / / / 2 12I / 12I / / / 3 12K / 12I / / / 4 12K / / / / / 5 / / / / / / 1 / 10M 10T 10T 10A / 2 / 10M 10M 10M 10A / 3 / 10A / / 10T / 4 / 10A / / 10T / 5 / / / / / /

4.3.2.3 Chức năng “Xem/In thời khóa biểu Lớp”

Cú 2 Combo box chứa danh sỏch lớp của ca sỏng và ca chiều.

Khi chọn một lớp, sẽ hiển thị tờn giỏo viờn chủ nhiệm, tổ bộ mụn trong dũng Scrolling Text và danh sỏch cỏc giỏo viên dạy lớp đó.

Nếu muốn In thời khúa biểu thỡ bấm nỳt lệnh In. Kết quả cũng đầy đủ thông tin như khi xem.

Vớ dụ: Mẫu in thời khúa biểu của một lớp học

THỜI KHểA BIỂU

Lớp 11A

Ca Sỏng

Gviờn CN: Nguyễn Anh Dũng

Tiết Thứ Hai Thứ Ba Thứ Tu Thứ Năm Thứ Sỏu Thứ Bảy

1 Sinh hoạt Sử Lý Văn Lý Toỏn

2 Toỏn Sinh éịa Toỏn Lý Sinh

3 Húa Kỹ Húa Sử Văn Kỹ Cụng

4 éịa Văn Toỏn Ngoại ngữ Cụng dõn /

5 / Văn Toỏn Ngoại ngữ Ngoại ngữ /

Tờn mụn Tờn Giỏo viờn

Văn Cải Thị Minh Trang Sử Phạm Thị Kim Thu éịa Hoàng Tuấn Ngoại ngữ Phan Thị Kim Anh Toỏn Huỳnh Ngọc Dần Lý Nguyễn Anh Dũng Húa Lê Văn Hoàng Sinh Lờ Thị Yờn

Kỹ Nguyễn Thị Phương Ngọc Cụng dõn Nguyễn Hữu Uyển

4.3.2.4 Chức năng “In thời khóa biểu các lớp”

Sẽ cú màn hỡnh gồm hai thẻ (Tabs) để chọn ca học.

Trong mỗi thẻ có thể chọn từng lớp hoặc các khối lớp cùng ca học hoặc toàn bộ ca học để in.

4.4. Thử nghiệm phần mềm

Phần mềm được chạy thử nhiều lần trên cùng một bộ dữ liệu thực tế, với các tham số biến dị và lai khác nhau, kết quả thu được khá khả quan trong việc giải quyết các ràng buộc cứng và ràng buộc mềm. Qua thử nghiệm cho thấy, sau 100 đến 200 thế hệ tiến hóa với thời gian thực hiện từ 5 – 10 phút có thể cho lời giải đủ tốt hoặc chấp nhận được.

Hạn chế của phần mềm này là tốc độ hội tụ cũn kộm, nếu cải tiến cỏc tham số tĩnh bằng cỏc tham số động thỡ chắc chắn sẽ hiệu quả hơn nhiều.

4.4.1. Kết quả đạt đƣợc của phần mềm: + Cỏc ràng buộc cứng

Giải quyết trọn vẹn cỏc ràng buộc sau: Mỗi lớp có đủ số môn học và số tiết học.

Mỗi lớp có tiết sinh hoạt được phân vào một tiết cố định trong tuần. Khụng cú tiết trựng.

Trong mỗi ngày học của lớp, cú khụng quỏ hai tiết của một mụn.

Trong mỗi ngày học của lớp, cỏc tiết học của cỏc mụn khụng bị tỏch rời.

+ Cỏc ràng buộc mềm

Cho phộp phõn lịch dạy theo yờu cầu (booking) cho một số giỏo viờn. Hạn chế tối đa các vi phạm khác...

4.4.2. Bảng kết quả thử nghiệm

Bộ dữ liệu của trƣờng Trung học Phổ thông Buôn Ma Thuột

- Gồm 3 khối lớp 10, 11 và 12. Tổng cộng 64 lớp. Khối 10 học ca chiều, khối 11 và khối 12 học ca sỏng.

- Khối 10 gồm 22 lớp, khối 11 gồm 21 lớp và khối 12 gồm 21 lớp.

- Khối 10 học 22 tiết/tuần và 1 tiết sinh hoạt, tổng số mụn học là 10 mụn. - Khối 11 học 26 tiết/tuần và 1 tiết sinh hoạt, tổng số mụn học là 11 mụn. - Khối 12 học 23 tiết/tuần và 1 tiết sinh hoạt, tổng số mụn học là 11 mụn. - Tổng số giáo viên là 85, trong đó có một số giáo viên dạy cả hai ca, một số

ít giáo viên dạy tất cả các tiết trong tuần của một ca và một số ít giáo viên dạy hai môn (Môn Sử và môn Giáo dục Cụng dõn), mụn kỹ thuật gồm kỹ thuật khối lớp 11 gồm Kỹ thuật Nụng nghiệp và Kỹ thuật Cụng nghiệp do một hoặc hai giỏo viờn dạy một lớp.

Số thế hệ

Kết quả trung bỡnh Kết quả tốt nhất

Số tiết trựng Số tiết cỏch Số tiết quỏ 2 Số tiết trựng Số tiết cỏch Số tiết quỏ 2 50 25 15 18 20 10 10 100 2 2 5 1 0 0 200 0 0 0 0 0 0

KẾT LUẬN

Giải thuật di truyền và phương pháp tính toán tiến hóa ra đời đó cú những thành tựu nhất định trong hơn hai thập kỷ qua trong việc giải quyết các bài toán loại NP-khó của nhiều lĩnh vực trong thực tế. Giải thuật này vẫn đang được nghiên cứu và phát triển mạnh ở nhiều quốc gia trên thế giới và ngày càng khẳng định được vai trũ của nú trong lĩnh vực cụng nghệ thụng tin.

Trong thời gian hạn hẹp, luận văn đó cố gắng tham khảo các tài liệu để trỡnh bày một cỏch cụ đọng và hệ thống các ý tưởng cơ bản về giải thuật di truyền và phương pháp tính toán tiến hóa.

Để khẳng định khả năng và hiệu quả của phương pháp tính toán tiến hóa, tác giả đó trỡnh bày đầy đủ mô hỡnh giải quyết bài toán lập thời khóa biểu

Một phần của tài liệu Tính toán tiến hoá và ứng dụng lập thời khoá biểu trường trung học phổ thông (Trang 59)

Tải bản đầy đủ (PDF)

(82 trang)