Phát triển thuật toán tối ưu hóa cho các bài toán phân công giảng dạy Phát triển thuật toán tối ưu hóa cho các bài toán phân công giảng dạy Phát triển thuật toán tối ưu hóa cho các bài toán phân công giảng dạy luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ KỸ THUẬT Phát triển thuật tốn tối ưu hóa cho tốn phân cơng giảng dạy NGUYỄN TRUNG KIÊN Ngành Công nghệ thông tin Giảng viên hướng dẫn: TS Phạm Quang Dũng Viện: Công nghệ thông tin truyền thông HÀ NỘI, 2020 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ KỸ THUẬT Phát triển thuật tốn tối ưu hóa cho tốn phân công giảng dạy NGUYỄN TRUNG KIÊN Ngành Công nghệ thông tin Giảng viên hướng dẫn: TS Phạm Quang Dũng Viện: Công nghệ thông tin Truyền thông Chữ ký GVHD HÀ NỘI, 2020 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn : Nguyễn Trung Kiên Đề tài luận văn: Phát triển thuật toán tối ưu hóa cho tốn phân cơng giảng dạy Chun ngành: Công nghệ thông tin Mã số SV: CA180137 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 27/6/2020 với nội dung sau: # Nội dung chỉnh sửa Mục lục Trang Thêm ví dụ phần toán tối ưu tổ hợp 1.1 4, Bổ sung nội dung chương 2.2 23, 24 Trình bày làm rõ ý tưởng thuật toán 3.1, 3.2, 3.3, 3.4, 3.5, 3.6 25-33 Bổ sung làm rõ chỉnh sửa lời thích thuật 3.3, 3.4, 3.5 toán tham lam số 3, số 4, số 28-32 Mô tả rõ cột, thông số β bảng kết 4.2 Bổ sung phần nhận xét kết thực nghiệm 35,36, 53, 54 Bổ sung thêm phần tài liệu tham khảo 56 Chỉnh sửa chỉnh lỗi tả Giáo viên hướng dẫn Ngày 10 tháng năm 2020 Tác giả luận văn TS Phạm Quang Dũng Nguyễn Trung Kiên CHỦ TỊCH HỘI ĐỒNG TS Vũ Tuyết Trinh ĐỀ TÀI LUẬN VĂN Phát triển thuật tốn tối ưu hóa cho tốn phân công giảng dạy Học viên: Nguyễn Trung Kiên Người hướng dẫn khoa học: TS Phạm Quang Dũng Giáo viên hướng dẫn Ký ghi rõ họ tên Lời cảm ơn Em xin gửi lời cảm ơn chân thành tri ân sâu sắc thầy cô trường Đại học Bách Khoa Hà Nội, đặc biệt thầy cô Viện Công nghệ Thông tin truyền thông trường tạo điều kiện cho em học tập nghiên cứu chuyên ngành công nghệ thông tin Và em xin chân thành cảm ơn thầy TS Phạm Quang Dũng nhiệt tình hướng dẫn, giúp đỡ em hồn thành khóa luận tốt nghiệp Với điều kiện thời gian kinh nghiệm hạn chế học viên, luận văn tránh thiếu sót Em mong nhận bảo, đóng góp ý kiến thầy để em có điều kiện bổ sung, nâng cao kiến thức mình, phục vụ tốt cơng việc thực tế Em xin chân thành cảm ơn! Tóm tắt nội dung luận văn Luận văn chia thành chương không kể phần mở đầu kết luận: Chương trình bày sở lý thuyết toán tối ưu tổ hợp, phương pháp quy hoạch tuyến tính, hướng tiếp cận thư viện Chương trình bày tốn phân cơng giảng dạy, mơ hình tốn học tốn Chương trình bày thuật toán để giải toán chiến lược thuật tốn Chương trình bày kết thử nghiệm đánh giá liệu với kích thước đặc điểm khác HỌC VIÊN Ký ghi rõ họ tên Nguyễn Trung Kiên CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn : Nguyễn Trung Kiên Đề tài luận văn: Phát triển thuật tốn tối ưu hóa cho tốn phân cơng giảng dạy Chun ngành: Công nghệ thông tin Mã số SV: CA180137 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 27/6/2020 với nội dung sau: # Nội dung chỉnh sửa Mục lục Trang Thêm ví dụ phần tốn tối ưu tổ hợp 1.1 4, Bổ sung nội dung chương 2.2 23, 24 Trình bày làm rõ ý tưởng thuật toán 3.1, 3.2, 3.3, 3.4, 3.5, 3.6 25-33 Bổ sung làm rõ chỉnh sửa lời thích thuật 3.3, 3.4, 3.5 toán tham lam số 3, số 4, số 28-32 Mô tả rõ cột, thông số β bảng kết 4.2 Bổ sung phần nhận xét kết thực nghiệm 35,36, 53, 54 Bổ sung thêm phần tài liệu tham khảo 56 Chỉnh sửa chỉnh lỗi tả Giáo viên hướng dẫn Ngày 10 tháng năm 2020 Tác giả luận văn TS Phạm Quang Dũng Nguyễn Trung Kiên CHỦ TỊCH HỘI ĐỒNG TS Vũ Tuyết Trinh MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT ii DANH MỤC CÁC HÌNH VẼ iv DANH MỤC CÁC GIẢI MÃ iv LỜI MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Bài toán tối ưu tổ hợp ứng dụng 1.2 Các hướng tiếp cận giải toán tối ưu tổ hợp 1.3 Công nghệ OR-Tools 13 1.4 Thư viện choco 15 CHƯƠNG 2: BÀI TỐN PHÂN CƠNG GIẢNG DẠY 21 2.1 Mô tả toán 21 2.2 Mơ hình tốn học tốn phân cơng giảng dạy 23 CHƯƠNG 3: PHÁT TRIỂN THUẬT TOÁN GIẢI QUYẾT BÀI TỐN PHÂN CƠNG GIẢNG DẠY 25 3.1 Thuật toán 25 3.2 Thuật toán 26 3.3 Thuật toán 28 3.4 Thuật toán 30 3.5 Thuật toán 31 3.6 Thuật toán 33 CHƯƠNG 4: THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 35 4.1 Dữ liệu đầu vào 35 4.2 Kết kiểm thử đánh giá 36 TÀI LIỆU THAM KHẢO 56 i DANH MỤC CÁC CHỮ VIẾT TẮT Chữ viết tắt Tên đầy đủ CBLS Constraint Based Local Search LP Ý nghĩa Tìm kiếm cục dựa ràng buộc Linear Programing Quy hoạch tuyến tính QHTT Quy hoạch tuyến tính Quy hoạch tuyến tính PATU Phương án tối ưu Phương án tối ưu Solving Constraint Integer Chương trình giải ràng Programs buộc số nguyên Constraint Programming Quy hoạch ràng buộc SCIP CP ii DANH MỤC CÁC BẢNG Bảng 1: Bảng mô tả liệu 36 Bảng 2: Kết thử nghiệm với thuật toán 39 Bảng 3: Kết thử nghiệm với thuật toán 42 Bảng 4: Kết thử nghiệm với thuật toán 44 Bảng 5: Kết thử nghiệm với thuật toán 47 Bảng 6: Kết thử nghiệm với thuật toán 50 Bảng 7: Kết thử nghiệm với thuật toán 51 Bảng So sánh kết thuật toán liệu input_20182 53 iii DANH MỤC CÁC HÌNH VẼ Figure 1: Ví dụ tốn thỏa mãn ràng buộc 16 DANH MỤC CÁC GIẢI MÃ Giải mã 1: Thuật toán số 26 Giải mã 2: Thuật toán số 28 Giải mã 3: Thuật toán số 29 Giải mã 4: Thuật toán số 31 Giải mã 5: Thuật toán số 33 Giải mã 6: Thuật toán số 34 iv input_20191 _ttmt 24 47 56 1.96 315 1.71 41 Bảng 3: Kết thử nghiệm với thuật toán Kết kiểm thử thuật toán với trường hợp β (phần nguyên trung bình số mơn cộng trung bình số mơn cộng 6): Tên liệu Số giáo viên Số tiết Cận Số cặp trung mơn bình β Số khơng ước (số môn phân công lượng môn) cho giáo cho viên giáo Thời gian thực Số Kết môn pc (ms) viên input_20182 input_20182_ attt input_20182_ cnpm input_20182_ httt input_20182_ khmt input_20182_ ktmt input_20182_ ttmmt input_20182_ ttmt 106 283 3521 2.67 2413 1.29 137 10 0.9 77 0.7 71 67 177 0.94 426 0.21 15 71 55 121 0.77 410 0.21 15 63 65 197 1.03 513 0.4 25 59 55 165 0.93 422 0.19 11 64 41 56 0.64 352 0.19 12 169 247 21.13 22 371 3.13 25 42 input_20191 input_20191_ attt input_20191_ cnpm input_20191_ httt input_20191_ khmt input_20191_ ktmt input_20191_ ttmmt input_20191_ ttmt input_20182 input_20182_ attt input_20182_ cnpm input_20182_ httt input_20182_ khmt input_20182_ ktmt 110 332 4579 3.02 2692 2.0 220 17 13 0.76 97 0.53 58 66 180 1.14 415 0.62 36 71 66 175 0.93 432 0.3 31 67 69 229 1.03 435 0.45 30 72 57 106 0.79 418 0.21 15 46 74 197 1.61 406 0.7 32 24 47 56 1.96 196 0.42 10 106 283 3521 2.67 2466 2.56 271 10 0.9 74 0.9 71 67 177 0.94 495 0.87 62 71 55 121 0.77 412 0.77 55 63 65 197 1.03 433 1.02 64 59 55 165 0.93 411 0.81 48 43 input_20182_ ttmmt input_20182_ ttmt input_20191 input_20191_ attt input_20191_ cnpm input_20191_ httt input_20191_ khmt input_20191_ ktmt input_20191_ ttmmt input_20191_ ttmt 64 41 56 0.64 400 0.64 41 169 247 21.13 27 365 3.75 30 110 332 4579 3.02 2687 2.97 327 17 13 0.76 95 0.76 13 58 66 180 1.14 440 1.14 66 71 66 175 0.93 429 0.85 60 67 69 229 1.03 514 1.03 69 72 57 106 0.79 429 0.74 53 46 74 197 1.61 419 1.41 65 24 47 56 1.96 196 1.38 33 Bảng 4: Kết thử nghiệm với thuật toán Kết kiểm thử thuật toán với trường hợp β (phần nguyên trung bình số mơn cộng trung bình số mơn cộng 6): Tên liệu Số giáo viên Số cặp Số tiết Cận mơn trung Số khơng bình β môn phân công ước (số cho giáo lượng môn) viên cho Thời gian thực Số Kết môn pc (ms) 44 giáo viên input_20182 input_20182_ attt input_20182_ cnpm input_20182_ httt input_20182_ khmt input_20182_ ktmt input_20182_ ttmmt input_20182_ ttmt input_20191 input_20191_ attt input_20191_ cnpm input_20191_ httt input_20191_ khmt 106 283 3521 2.67 2490 1.35 143 10 0.9 85 0.7 71 67 177 0.94 443 0.16 11 71 55 121 0.77 402 0.2 14 63 65 197 1.03 431 0.33 21 59 55 165 0.93 421 0.22 13 64 41 56 0.64 325 0.17 11 169 247 21.13 22 351 3.13 25 110 332 4579 3.02 2645 1.56 172 17 13 0.76 98 0.53 58 66 180 1.14 433 0.53 31 71 66 175 0.93 748 0.2 14 67 69 229 1.03 517 0.21 14 45 input_20191_ ktmt input_20191_ ttmmt input_20191_ ttmt input_20182 input_20182_ attt input_20182_ cnpm input_20182_ httt input_20182_ khmt input_20182_ ktmt input_20182_ ttmmt input_20182_ ttmt input_20191 input_20191_ attt input_20191_ cnpm 72 57 106 0.79 466 0.17 12 46 74 197 1.61 451 0.26 12 24 47 56 1.96 213 0.25 106 283 3521 2.67 2992 2.07 219 10 0.9 92 0.9 71 67 177 0.94 531 0.63 45 71 55 121 0.77 446 0.69 49 63 65 197 1.03 461 0.6 38 59 55 165 0.93 463 0.53 31 64 41 56 0.64 448 0.5 32 169 247 21.13 27 400 3.75 30 110 332 4579 3.02 2568 2.2 242 17 13 0.76 102 0.76 13 58 66 180 1.14 446 0.82 48 46 input_20191_ httt input_20191_ khmt input_20191_ ktmt input_20191_ ttmmt input_20191_ ttmt 71 66 175 0.93 482 0.56 40 67 69 229 1.03 511 0.54 36 72 57 106 0.79 476 0.51 37 46 74 197 1.61 406 0.87 40 24 47 56 1.96 204 0.5 12 Bảng 5: Kết thử nghiệm với thuật toán Kết kiểm thử thuật toán với trường hợp β (phần nguyên trung bình số tiết cộng trung bình số tiết cộng 10): Tên liệu Số giáo viên Số tiết Cận Số cặp trung môn bình β Số khơng ước (số mơn phân cơng lượng tiết) cho giáo cho viên giáo Thời gian thực Số Kết môn pc (ms) viên input_20182 input_20182_ attt input_20182_ cnpm input_20182_ httt 106 283 3521 7.04 2555 4.5 186 10 2.3 77 1.7 71 67 177 2.35 1174 0.97 29 71 55 121 618 0.94 27 47 input_20182_ khmt input_20182_ ktmt input_20182_ ttmmt input_20182_ ttmt input_20191 input_20191_ attt input_20191_ cnpm input_20191_ httt input_20191_ khmt input_20191_ ktmt input_20191_ ttmmt input_20191_ ttmt input_20182 input_20182_ attt 63 65 197 2.7 684 0.78 20 59 55 165 2.5 393 0.83 20 64 41 56 1.5 330 0.31 10 169 247 23.625 24 353 110 332 4579 7.66 3106 4.83 217 17 13 1.88 94 0.7 58 66 180 2.76 427 1.04 26 71 66 175 2.4 483 0.99 28 67 69 229 2.82 591 0.81 22 72 57 106 2.04 439 0.61 19 46 74 197 3.98 494 1.52 31 24 47 56 5.2 187 1.54 18 106 283 3521 7.04 17 2482 6.14 251 10 2.3 12 69 2.3 NA (3.0) 48 21 input_20182_ cnpm input_20182_ httt input_20182_ khmt input_20182_ ktmt input_20182_ ttmmt input_20182_ ttmt input_20191 input_20191_ attt input_20191_ cnpm input_20191_ httt input_20191_ khmt input_20191_ ktmt input_20191_ ttmmt 71 67 177 2.35 12 421 2.28 65 71 55 121 12 472 1.9 52 63 65 197 2.7 12 495 2.16 53 59 55 165 2.5 12 395 2.02 45 64 41 56 1.5 11 447 1.44 39 169 247 23.625 33 376 4.13 28 110 332 4579 7.66 17 2610 6.88 303 17 13 1.88 11 96 1.88 13 58 66 180 2.76 12 400 2.45 58 71 66 175 2.4 12 475 2.13 59 67 69 229 2.82 12 473 2.39 59 72 57 106 2.04 12 421 1.93 54 46 74 197 3.98 13 389 2.99 58 49 input_20191_ ttmt 24 47 56 5.2 15 193 2.5 27 Bảng 6: Kết thử nghiệm với thuật toán Kết kiểm thử thuật toán 6: Số cặp môn Tên liệu Số giáo viên Số môn không phân công cho giáo viên input_20182 input_20182_ attt input_20182_ cnpm input_20182_ httt input_20182_ khmt input_20182_ ktmt input_20182_ ttmmt input_20182_ ttmt Số tiết Cận trung bình β ước (số lượng tiết) cho Thời gian thực Số Kết môn pc (ms) giáo viên 106 283 3521 7.04 15 33906 7.04 283 10 2.3 998 2.3 71 67 177 2.35 12 4601 2.35 67 71 55 121 12 3830 55 63 65 197 2.7 N/A N/A 59 55 165 2.5 N/A N/A 64 41 56 1.5 169 247 23.625 2141 1.5 N/A 41 N/A 50 input_20191 input_20191_ attt input_20191_ cnpm input_20191_ httt input_20191_ khmt input_20191_ ktmt input_20191_ ttmmt input_20191_ ttmt 110 332 4579 7.66 11 47922 7.66 332 17 13 1.88 689 1.88 13 58 66 180 2.76 3146 2.76 66 71 66 175 2.4 4556 2.4 66 67 69 229 2.82 72 57 106 2.04 11 3905 204 57 46 74 197 3.98 15 31011 3.98 74 24 47 56 5.2 N/A N/A N/A N/A Bảng 7: Kết thử nghiệm với thuật toán Nhận xét: Kết thực nghiệm cho thấy thời gian thực liệu khác phụ thuộc vào số lượng giáo viên số lượng môn học file liệu Đa số liệu sử dụng hàm mục tiêu β (số môn số tiết tối đa giáo viên) không phân công hết môn học cho giáo viên số ngun nhân sau: - Có mơn khơng phân cơng mơn thuộc cặp môn không phân công cho giáo viên cặp mơn lại có giáo viên dạy - Số lượng môn dạy giáo viên liệu có chênh lệch, có giáo viên giảng dạy nhiều mơn, có giáo viên giảng dạy đến môn Để tăng số lượng mơn phân cơng ta điều chỉnh tham số β (giá trị trung bình số mơn học trung bình số tiết giáo viên cộng thêm 51 số lượng cụ thể), phân cơng hết mơn học số lượng tiết môn học giáo viên chênh lệch nhau, có giáo viên dạy giáo viên dạy nhiều đặc điểm liệu có mơn giáo viên dạy Đối với thuật toán số số sử dụng lập trình quy hoạch tuyến tính cơng nghệ Or Tools Dựa vào bảng kết thu thực kiểm thử liệu thuật toán số ta thấy kết số môn phân cơng cho giáo viên có so với thuật tốn số (có 20182_khmt 20182_ttmmt có kết tốt hơn), mặt thời gian ta thấy thuật tốn số có thời gian thực liệu Lý việc thuật toán số sử dụng mục tiêu phân công cho giáo viên dựa vào số môn học nên khơng cần kiểm tra tính tốn số tiết tiết kiệm thời gian thực thao tác Kết thử nghiệm thuật toán số (phân cơng giảng dạy sử dụng lập trình quy hoạch tuyến tính thư viện Choco) cho kết tồn môn phân công cho giáo viên số tiết chênh lệch phân công cho giáo viên lớn Đối với thử nghiệm thư viện Choco số liệu thời gian thực lâu không cho kết (input_20182_khmt, input_20182_ktmt, input_20182_ttmt, input_20191_khmt, input_20191_ttmt) Thời gian thực thuật tốn phân cơng giảng dạy thư viện Choco tốn nhiều thời gian thực thuật toán khác Đối với thuật toán tham lam (thuật toán số 3,4,5) dựa kết thực nghiệm ta thấy số lượng mơn học phân cơng so với thuật toán số nhiên thời gian thực thuật tốn lại Trong thuật tốn 3,4,5, thuật tốn số có số lượng môn học phân công cho giáo viên thời gian thực Lý cho khác thuật toán thuật toán số khơng xếp giáo viên có số lượng mơn học dạy theo thứ tự giảm dần (các giáo viên dạy nhiều mơn đưa lên đầu mảng) Thuật toán số cho kết tương đối tốt so với thuật toán số số mặt thời gian số lượng mơn học phân cơng Trong thuật tốn có sử dụng xếp mảng phân cơng giáo viên theo thứ tự giảm dần sử dụng số tiết trung bình giáo viên làm hàm mục tiêu Bảng so sánh thuật toán liệu input_20182: 52 Tên thuật toán Số giáo viên Số tiết Cận Số cặp trung mơn bình β Số khơng ước môn phân công lượng cho giáo cho viên giáo Thời gian thực Kết Số môn pc (ms) viên Thuật toán Thuật toán Thuật toán Thuật toán Thuật toán Thuật toán Thuật toán Thuật toán 106 283 3521 7.04 4443 6.75 272 106 283 3521 2.67 4221 2.5 265 106 283 3521 2.67 2413 1.29 137 106 283 3521 2.67 2490 1.35 143 106 283 3521 7.04 2555 4.5 186 106 283 3521 7.04 15 33906 7.04 283 106 283 3521 7.04 15 5387 7.04 283 106 283 3521 2.67 4591 2.67 283 Bảng So sánh kết thuật toán liệu input_20182 Trong bảng so sánh thuật toán số số hàm mục tiêu dựa vào số tiết phân công cho giáo viên, thuật toán số 2,3,4 hàm mục tiêu số môn phân công cho giáo viên Quan sát bảng so sánh với trường hợp thông số β nhỏ số lượng mơn phân cơng thuật tốn so với thuật tốn số 6, 53 ta tăng thơng số β thuật tốn số số tổng số môn phân công cho giáo viên thuật toán ngang với thuật toán thời gian thực nhiều 54 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong luận văn này, chúng tơi khảo sát tốn phân cơng giảng dạy, cài đặt, thử nghiệm đánh giá thuật toán tham lam khác giải toán đặt Các kết đạt bao gồm: • Tìm hiểu tốn tối ưu hóa tổ hợp hướng tiếp cận giải tốn tối ưu tổ hợp • Tìm hiểu tốn phân cơng giảng dạy, u cầu tốn mơ hình hóa tốn học tốn • Tìm hiểu lập trình quy hoạch tuyến tính cơng cụ Or Tools google để hỗ trợ giải tốn • Tìm hiểu thư viện Choco chạy thực nghiệm thuật tốn • Đề xuất thuật toán xây dựng lời giải cho u cầu tốn • Xây dựng thuật toán đề xuất thử nghiệm liệu Kết thử nghiệm cho thấy thuật toán số 1,2 cho kết tốt nhất, nhiên thời gian thực chương trình lại lâu Trong thuật tốn số tỏ hiệu việc tiết kiệm mặt thời gian kết tương đối tốt cho việc phân công Hướng phát triển nghiên cứu thuật toán khác để giải tốn từ đánh giá xây dựng nên phương án tối ưu cho tốn phân cơng giảng dạy 55 TÀI LIỆU THAM KHẢO [1] Chris Groer, Bruce Golden, and Edward Wasil A library of local search heuristics for the vehicle routing problem Math Prog Comp vol 2, pages 79-101, 2010 [2] Bruce Golden, S Raghavan, Edward Wasil The vehicle routing problem: latest advances new challenges Springer, 2008 [3] M D Moffitt and M E Pollack Optimal rectangle packing: A meta-CSP approach In Proceedings of the 16th International Conference on Automated Planning and Scheduling, 2006 [4] M Dincbas, H Simonis, and P Van Hentenryck Solving the Car Sequencing Problem in Constraint Logic Programming In European Conference on Artificial Intelligence (ECAI-88, 1988 [5] Michael Marte Models and Algorithms for School Timetabling – A ConstraintProgramming Approach PhD thesis, 2002 [6] F.Rossi, P.VanBeek and T.Walsh “Handbook of Constraint Programming”, Elsevier, 2006 [7] Pascal Van Hentenryck and Laurent Michel Constraint-based Local Search The MIT Press, 2005 [8] A Le Bouthillier and T G Crainic A cooperative parallel meta-heuristic forthe vehicle routing problem with time windows Computers Operations Research, 32(7):1685_1798, 2005 [9] M Barkaoui J Berger and O Br_aysy A route-directed hybrid genetic approach for the vehicle routing problem with time windows INFOR, 41:179_194, 2003 [10] Or-tools https://developers.google.com/ [11] Choco http://choco-solver.org/ [12] M Dincbas, H Simonis, and P Van Hentenryck Solving the Car Sequencing Problem in Constraint Logic Programming In European Conference on Artificial Intelligence (ECAI-88, 1988) [13] F.Rossi, P.VanBeek and T.Walsh “Handbook of Constraint Programming”, Elsevier, 2006 56 ... tốn phân cơng giảng dạy 23 CHƯƠNG 3: PHÁT TRIỂN THUẬT TỐN GIẢI QUYẾT BÀI TỐN PHÂN CƠNG GIẢNG DẠY 25 3.1 Thuật toán 25 3.2 Thuật toán 26 3.3 Thuật toán. .. thuật toán tổng số môn phân công cho giáo viên lớn + Một giáo viên khơng phân công giảng dạy cặp môn không phân công + Một môn học không phân công cho hai giáo viên + Tổng số môn phân công cho. .. 3: Thuật toán số 29 3.4 Thuật toán Ý tưởng thuật toán 4: Ý tưởng giải toán thuật toán gần giống với ý tưởng thuật tốn 3, tiến hành phân cơng tồn mơn cho giáo viên giảng dạy điểm khác thuật toán