Tôi đang đối mặt với một vấn đề Tôi không biết làm thế nào để tiếp cận. Tôi phải tạo lịch cho nhân viên, mỗi người trong số họ có những hạn chế công việc cụ thể (một số cá nhân, một số phổ biến)
Những gì tôi đang làm việc với:
- Tôi có bác sĩ
- Mỗi bác sĩ phải làm việc 5 ngày / tuần.
- Mỗi bác sĩ phải làm việc 1 đêm / tuần
- Mỗi bác sĩ phải làm việc với số lượng đêm bằng nhau so với các bác sĩ khác (hoặc càng gần càng tốt)
- Mỗi bác sĩ phải làm việc với số lượng đêm thứ năm và đêm chủ nhật tương đương với các bác sĩ khác (hoặc càng gần càng tốt)
- Một số bác sĩ không thể làm việc một số ngày / đêm nhất định (đầu vào của người dùng)
- Một số bác sĩ muốn làm việc một số ngày / đêm nhất định (đầu vào của người dùng)
- Một số bác sĩ muốn không làm việc một số ngày / đêm nhất định (đầu vào của người dùng)
Người dùng trong câu hỏi là người giao dịch với lịch, tôi đang cố gắng xây dựng một giải pháp sẽ tự động tạo ra một lịch tuân theo tất cả các ràng buộc. Giải pháp chỉ là một cài đặt lớn nhập "thêm bác sĩ" và "thêm ràng buộc" cho mỗi bác sĩ, sau đó nhấn nút "tạo lịch". Nó thực sự cơ bản cho người dùng.
Vấn đề của tôi :
Tôi không chắc chắn làm thế nào để tạo kế hoạch thực tế, tôi đã đọc về Mạng thần kinh, Thuật toán di truyền, v.v. và tất cả chúng có vẻ là một giải pháp phù hợp nhưng thực sự không phải vậy.
Khi tôi nhìn vào GA, họ được tạo ra để tìm giải pháp với một dân số nhất định (vấn đề của tôi), nhưng dân số bắt đầu phải tuân theo tập các ràng buộc nhất định, sau đó sẽ được tối ưu hóa. Trong trường hợp đó, dân số bắt đầu của tôi đã là giải pháp. Tôi không cần nó để được "tối ưu hóa". Không có vấn đề gì khi một người làm việc 3 đêm thứ hai liên tiếp, miễn là nó thực sự chính xác và những người khác làm việc như nhau, điều đó có nghĩa là những người khác cũng sẽ làm việc 3 đêm vào một lúc nào đó và không sao cả. Điều này khiến tôi nghĩ rằng GA quá "tiên tiến" đối với tôi, vì vấn đề của tôi đã được giải quyết với điểm khởi đầu của GA.
Nhưng một lần nữa, GA thực sự trông giống như chúng được tạo ra cho điều này, vì vậy tôi có thể không hiểu chính xác?
Dù sao, vì tôi chưa bao giờ sử dụng GA (hoặc mạng thần kinh, hoặc bất cứ thứ gì tương tự), tôi muốn chắc chắn rằng tôi sẽ tìm cách tiếp cận chính xác trước khi tham gia vào một đường cong học tập như thế.
Câu hỏi của tôi :
Bạn nghĩ gì về một cách tiếp cận / thuật toán / kỹ thuật tốt cho một vấn đề như của tôi? Khí ga? Mạng lưới thần kinh? Một cái gì đó khác hoàn toàn?
Tôi là tất cả các tai và mở để biết thêm chi tiết nếu cần thiết, nhưng tôi nghĩ rằng tôi đã làm cho mình khá rõ ràng :)