Hãy tưởng tượng một doanh nghiệp địa phương nhỏ (trong trường hợp của tôi là một nhà giữ chó) với vài chục nhân viên bán thời gian. Mục tiêu là tự động tạo lịch trình nhân viên hàng tuần. Câu hỏi của tôi là về những cách tiếp cận thuật toán để khám phá cho vấn đề này.
Có rất nhiều hạn chế cần lưu ý, chủ yếu (1) sự sẵn có của nhân viên và (2) nhu cầu của từng ca, không chỉ có bao nhiêu nhân viên cho mỗi ca mà cả các kỹ năng cần thiết cho mỗi ca (ví dụ cho một ca nhất định, bạn có thể cần một người biết lái xe để đưa đón / thả chó, cho người khác, một người biết cách cho chó tắm, v.v.).
Các ràng buộc khác bao gồm những việc như tránh hoặc yêu cầu một số combo nhân viên nhất định - có thể do mâu thuẫn về tính cách một mặt hoặc do đào tạo bằng thẩm thấu từ cấp cao đến nhân viên cấp dưới.
Ngoài ra, có những ưu tiên để đưa vào tài khoản. Một số nhân viên thích buổi sáng, một số hai ngày liên tiếp thay vì nói thứ Hai và thứ Năm, v.v. Chúng tôi biết rằng chúng tôi không thể luôn đáp ứng sở thích của mọi người. Trong thực tế, chúng tôi có một hệ thống phân cấp trong đó các nhân viên có được những nỗ lực đầu tiên về sự lựa chọn của họ.
Tôi có linh cảm rằng có một cách để giảm hoặc thể hiện vấn đề này thành một thuật toán đã được giải quyết. Nhưng tôi không biết nên tìm thuật toán nào. Những thuật toán hiện có, cụ thể nào sẽ hứa hẹn nhất?