Tôi đang làm việc trên một ứng dụng đơn giản sẽ tạo bảng thời gian (kế hoạch hàng ngày) cho các trường học. Tôi đã đọc các khái niệm cơ bản về thuật toán, nhưng bị nhầm lẫn về nơi bắt đầu.
Thuật toán nào để sử dụng để tạo bảng thời gian cho các trường học
Vấn đề:
Phân bổ giáo viên đến các lớp học có tính đến rất nhiều khó khăn như:
1) Chủ đề
2) Chuyên môn của giáo viên
3) Không quá 2 lớp liên tục .. vv
Không cần phải nói rằng không nên trùng lặp. Về cơ bản, tôi cần phải chỉ định N giáo viên cho các lớp M với số giờ làm việc cố định hàng ngày (8).
Đầu vào:
1) Tổng số lớp
2) Giáo viên cùng với chuyên môn chuyên môn của mình
3) Đối tượng/khóa học cho mỗi lớp
4) Số lượng bài giảng mỗi lớp mỗi ngày
5) Các ràng buộc linh hoạt khác như giờ làm việc tối thiểu/tối đa cho giáo viên mỗi ngày, tổng số giờ làm việc cho mỗi giáo viên mỗi tuần, v.v.
Câu hỏi của tôi:
1) Có đúng không để xem nó như là một bài toán gán với nhiều ràng buộc?
2) Tôi nên sử dụng thuật toán nào? (Thuật toán Hungary?)
3) Tôi có nên bắt đầu bằng cách nhận toàn bộ các ràng buộc tại một lần, sau đó tạo bảng hay nó nên được thực hiện trong các bước trung gian?
Tôi là người mới bắt đầu học/triển khai thuật toán, vì vậy mọi trợ giúp đều chỉ cho tôi đúng hướng được đánh giá cao! Cảm ơn.
Tôi đã tìm thấy tệp PostScript nói về thuật toán ** Tabu Search ** (http://en.wikipedia.org/wiki/Tabu_search) để gán giáo viên cho lớp học (http://www.uv.es/sestio /TechRep/tr01-01.ps). Nó chủ yếu là toán học heuristics. Tôi hy vọng nó mang lại cho bạn một số hướng. –
Đây là bản sao. Tôi đã trả lời câu hỏi này một vài tuần trước đây: http://stackoverflow.com/questions/2177836/algorithm-for-creating-a-school-timetable –
@Stefano, liên kết vô giá! Cảm ơn – Checksum