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

Xếp lịch thi học kì bằng cách kết hợp lập trình ràng buộc và giải thuật mô phỏng luyện kim

105 99 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 566,5 KB

Nội dung

Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA LÂM KIM HÒA XẾP LỊCH THI HỌC KỲ BẰNG CÁCH KẾT HP LẬP TRÌNH RÀNG BUỘC VÀ GIẢI THUẬT MÔ PHỎNG LUYỆN KIM (Generating University Examination Timetables by Combining Constraint Programming and Simulated Annealing) Chuyên ngành : Công nghệ thông tin Mã số ngành : 01.02.10 LUẬN VĂN THẠC SĨ TP.Hồ Chí Minh, tháng năm 2003 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Mục Lục Lời cảm ơn i Tóm tắt ii Muïc luïc iv Danh mục hình vi Danh mục bảng viii Chương - Giới Thiệu 1.1 - Mục Tiêu Nghiên Cứu 1.2 - Giới Thiệu Nhiệm Vụ Của Bài Toán 1.2.1 Mục Đích Của Chương Trình Xếp Lịch Thi 1.2.2 Các Yêu Cầu Đặt Ra 1.3 - Những Kết Quả Chính Luận văn 1.4 - Sơ Lược Cấu Trúc Luận Văn Chương - Các Công Trình Liên Quan 2.1 - Các Nghiên Cứu Liên Quan 2.1.1 2.1.2 2.1.3 Phương Pháp Xây Dựng Tuần Tự Lập Trình Ràng Buộc Tìm Kiếm Cục Bộ 2.2 - Các Công Trình Liên Quan Về Giải Thuật Mô luyện kim 2.3 - Phương Hướng Giải Quyết Bài Toán 11 Chương - Cơ Sở Lý Thuyết Phương Pháp 3.1 - Giới Thiệu 13 3.2 - Lập Trình Ràng Buộc 13 3.2.1 3.2.2 3.2.3 3.2.4 Các ng Dụng Lập Trình Ràng Buộc 16 Phân Loại Các Bài Toán Giải Hệ Ràng Buộc 16 Các Tiêu Chuẩn để Phân Loại Ràng Buộc 17 Một Số Giải Thuật giải Bài Toán Hệ Ràng Buộc 18 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 Giới Thiệu 13 So Sánh Mô Phỏng Luyện Kim Hill-Climbing 23 Tiêu Chuẩn Để Chấp Nhaän 24 Mối Liên Hệ Giữa Luyện Kim Thực Sự Và Mô Phỏng Luyện Kim 25 Giải Thuật Mô Phỏng Luyeän Kim (SA) 25 Lịch Biểu Làm Nguội (The Cooling Schedule) 26 Xác Định Nhiệt Độ Khởi Đầu T0 27 3.3 - Mô Phỏng Luyện Kim 23 iv Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim 3.3.8 3.3.9 3.3.10 3.2.11 3.2.12 3.2.13 Aùp Duïng 33 Điều Kiện Dừng 34 Hàm Thu Giảm Nhiệt Độ 35 Kỹ Thuật Xác Định Trước Thời Gian Chạy 37 Số Lần Lặp Lại Mỗi Nhiệt Độ 38 Các Vấn Đề Chuyên Biệt Khác 40 3.4 - Kết Luận 42 Chương - Xây Dựng Chương Trình Giải Quyết Bài Toán Xếp Lịch Thi 4.1 - Giới Thiệu 43 4.2 - Mô Tả Bài Toán 43 4.2.1 4.2.2 Nhiệm Vụ Của Chương Trình Xếp Lịch Thi 44 Các Đặc Điểm Trường Các Yêu Cầu Bài Toánï 44 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 Tìm Lời Giải Khả Thi Ban Đầu 46 Dùng Giải Thuật Mô Phỏng Luyện Kim để Cải Tiến Lời Giải 60 Xác Định Nhiệt Độ ban Đầu 63 Hàm Chi Phí 66 Haøm Delta 69 Kết Quả Thực Nghiệm 71 4.3 - Hiện Thực Chương Trình 46 4.4 - Kết Luận 76 Chương - Kết Luận Và Hướng Phát Triển 5.1 - Các Kết Luận 77 5.2 - Hướng Phát Trieån 79 Thư Mục Tham Khảo 81 Phuï Luïc A A1 Phuï Luïc B B1 Phuï Luïc C C1 v Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Danh Mục Bảng Bảng 3.1 : Bảng thử nghiệm nhiệt độ cuối 35 Bảng 3.2 : Bảng thống kê kết với giá trị khác số lần lặp 39 Bảng 4.1 : Bảng quy định điểm phạt 66 Bảng 4.2 : Bảng kết thử nghiệm thời gian chạy kiếm lời giải ban đầu 71 Bảng 4.3 : Bảng kết thử nghiệm giải thuật SA 72 viii Xeáùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Danh Mục Hình Hình 3.1 : Ví dụ toán CSP 15 Hình 3.2 : Bài toán tô màu ñoà 16 Hình 3.3 : Giải thuật Backtracking 20 Hình 3.4 : Giải thuật Backtracking có kiểm tra hướng tới 22 Hình 3.5 : Giải thuật mô luyện kim cho tối thiểu hoá 26 Hình 3.6 : Giải thuật mô luyện kim với nhiệt độ ước lượng 31 Hình 3.7 : Các hàm sử dụng mô luyện kim với nhiệt độ ước lượng 32 Hình 3.8 : Mối quan hệ nhiệt độ số bước di chuyển SA 36 Hình 4.1 : Giải thuật Backtracking có kiểm tra hướng tới 47 Hình 4.2 : Bảng truy vấn LayKhoa 50 Hình 4.3 : Một mẫu tin từ bảng DataSource 50 Hình 4.4 : Bảng liệu phòng học 51 Hình 4.5 : Lưu đồ giải thuật Backtracking-Kiểm tra hướng tới 53 Hình 4.6 : Cấu trúc liệu dùng để lưu trạng thái miền trị môn 54 Hình 4.7 : Bảng đụng độ 55 Hình 4.8 : Bảng truy vấn BangDungDoQuery 56 Hình 4.9 : Bảng đụng độ dùng ma trận 56 Hình 4.10 : Bảng DungDoQuery 57 Hình 4.11 : Giải thuật tạo ma trận đụng độä 57 Hình 4.12 : Giải thuật xếp phòng cho môn thi 59 Hình 4.13 : Giải thuật mô luyện kim áp dụng cho chương trình 60 Hình 4.14 : Lưu đồ giải thuaät SA 61 Hình 4.15 : Giải thuật tìm lời giải láng giềng 62 Hình 4.16 : Giải thuật xác định nhiệt độ 64 Hình 4.17 : Lưu đồ xác định nhiệt độ ban đầu 65 Hình 4.18 : Giải thuật hàm chi phí 67 Hình 4.19 : Lưu đồ Hàm chi phí 68 vi Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Hình 4.20 : Giải thuật tính Delta 69 Hình 4.21 : Đồ thị biểu diễn mối quan hệ chi phí nghiệm với số bước SA tương ứng (từ đến 70000 bước SA) 73 Hình 4.22 : Đồ thị biểu diễn mối quan hệ chi phí nghiệm với số bước SA tương ứng (từ đến 30000 bước SA) 74 Hình 4.23 : Đồ thị biểu diễn mối quan hệ chi phí nghiệm với số bước SA tương ứng (từ đến 1000 bước SA) 75 vii Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Lời Cảm Ơn Xin cảm ơn hai Thầy TS Nguyễn Văn Hiệp Thầy TS Dương Tuấn Anh hướng dẫn em hoàn thành luận văn Luận văn hoàn thành tốt tận tình hướng dẫn giúp đỡ quý báu Thầy TS Nguyễn Văn Hiệp Thầy TS Dương Tuấn Anh Trong suốt trình hoàn thành luận văn, Thầy truyền đạt kiến thức chuyên môn mà để lại nhiều học phong cách sống làm việc Thầy Xin cho phép bày tỏ lòng biết ơn sâu sắc đến hai Thầy Xin cảm ơn tập thể Thầy Cô nơi đào tạo giảng dạy truyền đạt nhiều kiến thức quý báu cho trình học tập trường Xin cám ơn Phòng Quản lý sau Đại học hỗ trợ tạo điều kiện thuận lợi cho suốt trình đào tạo Cuối cùng, xin cảm ơn gia đình, người thân, bạn bè đồng nghiệp động viên, giúp đỡ trình làm luận văn Tp Hồ Chí Minh, tháng năm 2003 Lâm Kim Hòa i Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Tóm Tắt Xếp lịch thi học kỳ toán tối ưu tổ hợp Luận văn trình bày phương pháp lai tạo mới, kết hợp mạnh hai cách tiếp cận lập trình ràng buộc tìm kiếm cục để tìm lịch biểu thi tối ưu Phương pháp gồm hai giai đoạn: giai đoạn dùng lập trình ràng buộc để tạo lời giải ban đầu thỏa mãn tất ràng buộc cứng chưa tính đến ràng buộc mềm, giai đoạn hai dùng giải thuật mô luyện kim, để cải thiện lời giải khả thi thành lời giải có chất lượng cao, tức lời giải có tính đến ràng buộc mềm Trong giai đoạn một, luận văn trình bày sở lý thuyết giải thuật lập trình ràng buộc việc tìm lời giải khả thi, giai đoạn hai luận văn trình bày cách ứng dụng giải thuật mô luyện kim việc tìm lời giải tối ưu Ngoài luận văn nghiên cứu vận dụng số kỹ thuật tăng độ hữu hiệu giải thuật mô luyện kim chế “Kempe chain” để tìm lời giải láng giềng, chế xác định nhiệt độ khởi đầu dựa xác suất chấp nhận ban đầu kỹ thuật định trước thời gian chạy giải thuật mô luyện kim công bố gần vào việc giải toán xếp lịch thi Cuối ngôn ngữ Visual C++ dùng để viết chương trình xếp lịch thi cho trường Đại học Bách Khoa T.p Hồ Chí Minh ii Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Abstract Examination timetabling is a well – studied combinatorial optimization problem In a thesis, we’d like to present a new hybrid algorithm that combines the strengths of a constraint programming and a local search to find the best solution It consists of two phases : the constraint programming phase and the simulated annealing one In the former phase, we use the constraint programming to produce an initial solution that satisfies all hard constraints without taking the soft ones into account In the latter phase, we use the simulated annealing that bases on the soft constraints to improve the quality of solution Further, in the thesis, we not only present the application of simulated annealing searching the near optimum solution but also apply some specific techniques to increase its efficiency such as the current Kempe Chain neighborhood, starting temperature selection based on initial acceptance, and time predefined local search approach Finally, we use the Visual C++ language to implement examination timetabling program for HCMC University of Technology iii Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Chương Giới thiệu 1.1 - Mục Tiêu Nghiên Cứu Trường Đại Học Bách Khoa Tp HCM, nhiều trường đại học khác thành phố, năm gần liên tục phát triển số lượng khoa số lượng sinh viên vào học Vấn đề xếp lịch thi học kỳ ngày trở nên phức tạp Các chương trình phần mềm tạm sử dụng tuỳ thuộc nặng nề vào thao tác thủ công nhân viên phòng giáo vụ Do cần có chương trình xếp lịch thi hoàn toàn tự động, chạy nhanh, ổn định đồng thời có khả mở rộng, dễ thêm/bớt ràng buộc thay đổi cấu trúc quản lý học vụ nhà trường Xếp lịch thi học kỳ vốn toán tối ưu tổ hợp (combinatorical optimization) thuộc loại khó Đã có tồn nhiều phương pháp khác giới để giải toán Mỗi phương pháp có ưu khuyết điểm khác Mục đích luận văn nghiên cứu phương pháp xếp lịch thi mà kết hợp hai cách tiếp cận lớn để giải hệ ràng buộc: lập trình ràng buộc (constraint programming) tìm kiếm cục (local search) Lập trình ràng buộc giúp tạo lời giải ban đầu thỏa mãn tất ràng buộc cứng chưa tính đến ràng buộc mềm Tìm kiếm cục bộ, mà thông qua giải thuật mô luyện kim (Simulated Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim [10] Carter, M W and Laporte, G, Recent Developments in Practical Examination Timetabling, In: E Burke & P Ross (Eds.) Practice and Theory of Automated Timetabling, First International Conference , Edinburgh, U.K.,August/September 1995 Selected Papers Lecture Notes in Computer Science 1153, Springer-Verlag, 3-21, 1996 [11] Dechter, R., Frost, D., Backjump-based Backtracking for Constraint Satisfaction Problems, Artificial Intelligence, 136, 147-188, 2002 [12] Di Gaspero, L & Schaef, A., Tabu Search Techniques for Examination Timetabling, in: Burke E & Erben W (Eds.): Practice and Theory of Automated Timetabling III Third Int Conference, PATAT 2000, Konstanz, Germany, August 16-18, 2000, Selected Papers, Lectures Notes in Computer Science 2079, Springer Verlag, Berlin Heidelberg New York, 2001, 104-117 [13] Kumar, V., Algorithms for Constraint Satisfaction Problems: A Survey, AIMagazine, 32-44, 1992 [14] Merlot, L T G., Boland N., Hughes, B D., & Stuckey P J., A Hybrid Algorithm for the Examination Timetabling Problem, Proc Practice and Theory of Automated Timetabling (PATAT’2002), 2002 [15] Thompson, J and Dowsland, K A., General Cooling Schedules for a Simulated Annealing Based Timetabling System, In: E Burke & P Ross (Eds.), Practice and Theory of Automated Timetabling, First International Conference (Eds.), Edinburgh, U.K.,August/September 1995 Selected Papers Lecture Notes in Computer Science 1153, Springer-Verlag, 345-363, 1996 [16] David, P., A Constraint-based Approach for Examination Timetabling using Local Repair Techniques, Proc of Practice and Theory of Automated Timetabling, PAPAT’97, Toronto, Canada, August, 1997, 132-145 [17] Sosnowska, D., Rolim, J.,Fleet Scheduling Optimization: A Simulated Annealing Approach, In: E Bruke & W.Erben Practice and Theory of Automated Timetabling III, Third International Conference PATAT 2000, Konstanz, Germany August 2000 Selected Papers 227-241 82 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim [18] Dương Tuấn Anh, Nguyễn Hữu Hải (2001), A Multi-Strategy Approach in University Examination Scheduling School on Scientific Computing and Applications 141-149 [19] Dương Tuấn Anh, Lập trình logic Lập trình ràng buộc, giảng cao học, khoa Công Nghệ Thông Tin, Đại học Báck Khoa Tp.Hồ Chí Minh 2003 [20] Poupaert, E., Deville, Y., Simulated Annealing with estimated temperature AI Communation 13 (2000) 19-26 ISSN 0921-7126 [21] Bùi Bách Đăng, Nguyễn Tín Quang, Ứng dụng lý thuyết giải hệ ràng buộc cho toán xếp lịch thi học kỳ Luận Văn Đại Học, khoa Công Nghệ Thông Tin, Đại Học Bách Khoa Tp.HCM, 2003 [22] Vipin Kumar (1992) Algorithms for Satisfaction Problem : A Survey AlMagazine 32-44 [23] Roman Bartak (2001) Theory and Practice of Constraint Propagation Proceedings : The 3rd Workshop on Constraint Programming in Decision and Control [24] Robert Sedgewick (1988) Algorithms Addison Wesley Publishing Company Canada [25] Mark Allen Weiss (1992) Data Structures and Algorithms Analysis in C The Benjamin/Cummings Publishing Company USA Các tài liệu tham khảo từ internet: [26] Approximation techniques for automated reasoning Irina Rish – IBM T.J Watson Research center Rina Dechter – University of California, Irvine Tên file:aaai2K_tutorial_fưll.pdf url:www.research.ibm.com/people/r/rish/talks/aaai2K-tutorial-full.ppt [27] The Bin Packing Problem Geoffrey G Roy, Murdoch University, 22 February1997 url:eng.murdoch.edu.au/EngModules/m108demo/Section01/Section0102c.html 83 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim [28] Constraint Satisfaction Alan M Frisch – University of York Teân file:Constraint1.pdf url:www-users.cs.york.ac.uk/~fisch/LPA/constainta.pdf [29] Bin Packing Joseph Malkevitch, Mathematics and Computing Department York College (CUNY), Jamaica, NY 11451 url:www.york.cunny.edu/~mal/tidbits/tidbit-bin-packing.html [30] What should we to solve constraint satisfaction problem Dr Joe Culberson, Chinhui Shen, Guang Li Teân file: 671_report_full.pdf url:www.cs.ualberta.ca/∼guang/courses/671/671_report_full.pdf [31] Methods of artificial intelligence Chirstoph Schlieder – University of Osnabruck Teân file: ai06.pdf url:www.cl-ki.uni-osnabrueck.de/∼cschlied/ai07.pdf [32] Constraint Programming: What is behind? Roman Bartak – Charles University, Prague Teân file:CPDC99.ppt url:kti.ms.mff.cuni.cz/~bartak/downloads/CPDC99.ppt url:kti.ms.mff.cuni.cz/~bartak/constraints/propagstion.html [33] Constraint Satisfaction Problem (CSP) – Applications and Job-Shop Scheduling Min, Dai ki Factory Automation Lab SNU Teân file:9911-mdk.ppt url:iefal.snu.ac.kr/~fal/seminar/99/2/9911-mdk.ppk 84 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Phụ lục A Chương trình Xếp lịch thi Các Chức Năng Của Chương Trình a Cho phép lấy liệu thực đăng ký môn học trường Đại học Bách Khoa Tp.HCM phòng giáo vụ cung cấp b Cho phép xếp lịch thi theo khoá học c Cho phép ghép môn thi khoá thi chung với môn thi khoá khác d Cho phép chọn ngày bắt đầu thi ngày kết thúc thi e Cho phép chọn lại đường dẫn file sở liệu(file Access) f Cho phép xác định trước thời gian thi môn thi nhiều khoảng thời gian thời điểm g Cho phép gán tiết bận, ngày bận cho phòng thi h Cho phép thay đổi sức chứa phòng thi i Cho phép chọn số ngày nào, số buổi số tiết bị bận khiến chương trình không xếp lịch thi cho môn thi vào ngày đó, buổi tiết bận A1 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim j Cho phép xác định trước số bước mô luyện kim cần chạy k Cho phép in, lưu bảng kết xếp lịch thi l Cho phép lựa chọn phương thức chạy : theo miền trị, theo tổng số sinh viên, theo số môn đụng độ nhiều m Cho phép quy định thời gian tối thiểu hai môn thi thí sinh n Cho phép chọn chiến lược xếp phòng theo Best Fit, First Fit,chọn ưu tiên theo khoảng cách, tính hao phí phòng o Cho phép khởi động chương trình lại trạng thái mặc định Các Hàm Chính Được Dùng Trong Chương Trình Xếp Lịch Thi Các hàm hàm chương trình a int CXlt::ChayGTSA() : Hàm chương trình, dùng chạy giải thuật mô luyện kim để tìm lời giải tối ưu Đầu vào : thông số nhập chương trình Đầu : lịch biểu thi tối ưu vô nghiệm b int CXlt::NghiemDauTien() : hàm dùng để tìm nghiệm chương trình, hàm chạy giải thuật Backtracking có kiểm tra hướng tới Hàm dùng hàm ChayGTSA() Đầu vào : thông số nhập chương trình Đầu : lịch biểu thi khả thi vô nghiệm c int CXlt::LaytietNgaunhien(int mon, SET_INT &TietDaChon, int &SoTietChonDuoc) : hàm dùng để lấy tiết ngẫu nhiên cho môn ngẫu nhiên, dùng hàm LoigiaiLanggieng() Đầu vào : môn thi Đầu : tiết chọn số tiết chọn, trả –1 thất bại d int CXlt::LoigiaiLanggieng() : hàm dùng tìm lời giải láng giềng, hàm chứa chế tìm lời giải lân cận Đầu vào : lời giải hành Đầu : lời giải láng giềng trả –1 thất bại A2 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim e double CXlt::HamChiphi(CMonhoc &mh) : hàm dùng để đo lường chất lượng lời giải Đầu vào : lời giải khả thi Đầu : Chi phí nghiệm f double CXlt::Delta(int mon,int tiet1,int tiet2) : hàm dùng để tính hiệu chi phí môn thi tiết bắt đầu cũ môn thi tiết bắt đầu Đầu vào : môn thi, tiết bắt đầu cũ tiết bắt đầu Đầu : hiệu chi phí trường hợp cũ g void CXlt::CapNhatLoiGiai() : hàm dùng cập nhật lời giải lời giải chấp nhận h void CXeplt::CapNhatPhong(int mon, int tietbdCu, int tietbdMoi, CStringArray &TenPhong, SET_INT SetPhong) : hàm dùng để cập nhật phòng, dùng hàm CapNhatLoiGiai() lời giải cấp nhận i int CXlt::XacDinhNhietDoDau() : hàm dùng để xác định nhiệt độ giải thuật mô luyện kim Đầu vào : xác suất chấp nhận ban đầu Đầu : nhiệt độ ban đầu j void CXlt::TaoBangDungDoSV() : hàm dùng tạo bảng đụng độ sinh viên Đầu vào : bảng truy vấn đụng độ Đầu : ma trận dụng độ k void CXlt::PhucHoiTrangThaiPhong(int f, int tietbd, int sotietthi) : hàm dùng phục hồi lại trạng thái phòng việc kiếm phòng cho nhóm môn bị thất bại l int CXlt::KiemTraPhong(int soph) : hàm dùng kiểm tra xem có đủ phòng thi cho nhóm môn thi Đầu vào : số phòng Đầu : thành, -1 thất bại m.int CXlt::Bestfit(int sosv, int tbd, int sotiet) : Hàm xếp phòng thi cho nhóm môn theo chiến lược BestFit Đầu vào : số sinh viên, tiết bắt đầu số tiết A3 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Đầu : danh sách phòng thi –1 thất bại n int CXlt::Firstfit(int sosv, int tbd, int sotiet) : Hàm xếp phòng thi cho nhóm môn theo chiến lược FirstFit Đầu vào : số sinh viên, tiết bắt đầu số tiết Đầu : danh sách phòng thi –1 thất bại Cấu Trúc Dữ Liệu Các cấu trúc liệu chương trình a Cấu trúc Môn học class CMh { public: string MaMon; int Sott; int SoTietThi; int SoSinhVien; string Khoahoc; int sodungdo; float Diemut; CMh CMh::operator=(CMh mh); }; b Cấu trúc miền trị môn typedef CArray CIntArray; typedef struct { CIntArray tiet; } STRMientri ; typedef CArray CMientri; typedef struct { CMientri D; } STRTrangthai ; typedef CArray CTrangthai; A4 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim c Cấu trúc trạng thái số phần tử typedef struct{ CUIntArray mon; } TrangthaiSopt; d Cấu trúc nhóm moân typedef struct { string manhom; UINT siso; } Nhom; e Cấu trúc liệu khóa học typedef struct{ string khoa; bool dagan; }Khoahoc; f Cấu trúc liệu phòng typedef struct{ CByteArray tiet; USHORT succhua; USHORT succhuacon; string tenphong; string daynha; } Phonghoc ; A5 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Giao diện chương trình Giao diện chương trình dùng để nhập thông số cho chương trình xếp lịch thi A6 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Phụ lục B Các Giải Thuật Xếp Thùng 1.Giới thiệu Các giải thuật xếp thùng sở lý thuyết cho toán xếp phòng thi cho nhóm môn Các giải thuật áp dụng chương trình thực nghiệm cho thấy giải thuật xếp phòng hiệu số trường hợp chưa tối ưu Sau chiến lược việc xếp thùng ( xem [27],[29]) Giả sử ta có số thùng có kích thước giống nhau, số vật có kích thước khác xếp vào thùng Nhiệm vụ xếp đồ vật vào thùng cho số thùng cần dùng Đối với số vật không nhiều ta xếp thử, số vật nhiều cần phải có giải thuật tổng quát để xử lý máy tính Để thực giải thuật ta cần đưa vật cần xếp vào dãy s (mảng s) Một số chiến lược điển hình cho toán xếp thùng: 2.1 Next fit : Đặt vật cần xếp dãy vào thùng được, không xếp qua thùng B1 Xếùp lịch thi học kỳ cách kết hợp lập trình ràng buộc giải thuật Mô luyện kim Gọi n số vật cần xếp si kích thước vật đó, S kích thước thùng, si ≤ S SucChuaConj sức chứa thùng j M số thùng sử dụng Giải thuaät j:=1; SucChuaConj:=S; For i:=1 to n Begin If si

Ngày đăng: 18/02/2021, 08:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w