Chúng tôi đã phát triển một thuật toán tùy thuộc vào thời gian đăng ký của một số công nhân và nơi sinh sống của họ, tính toán cách để nhóm chúng vào một số phương tiện và tuyến đường phải theo các phương tiện để đưa họ đến nơi làm việc. Điều này đã được thực hiện bằng thuật toán TSP (Bài toán nhân viên bán hàng du lịch) và một số tùy chỉnh khác.
Chúng tôi muốn đi xa hơn và cải thiện nó. Hiện tại, sức chứa chỗ ngồi của xe được cố định ở 4 (5 vị trí nhưng một người lái bị chiếm dụng) và chúng tôi muốn làm cho số tiền này "biến". Nói cách khác, chúng tôi muốn, trước khi thực hiện thuật toán chính, xác định sự kết hợp của các phương tiện (và chỗ ngồi miễn phí của chúng) có thể cần thiết. Điều quan trọng cần biết là khi tôi nói về xe cộ, tôi nói về các loại phương tiện, ví dụ Xe A có 4 chỗ, Xe B là 7 chỗ, v.v. Vì vậy, tôi không nói về việc có một chiếc Audi A8 5 chỗ, Ghế Ibiza 5 chỗ, một Xe buýt 20 chỗ, nói.
Cho đến nay, những gì tôi nghĩ là như sau:
- Xác định nhóm công nhân.
- Xác định có bao nhiêu phương tiện sẽ cần và chỗ ngồi (miễn phí) của họ. Đó là những gì tôi đang hỏi trong câu hỏi đó [a].
- Người dùng chọn kết hợp ưa thích và tiếp tục.
- Áp dụng thuật toán đã được phát triển bằng cách sử dụng kết hợp các phương tiện và xem liệu nó có đạt được giải pháp khả thi hay không.
Câu hỏi của tôi là làm thế nào để phát triển thuật toán [a]. Ví dụ sau đây sẽ cho bạn thấy kết quả của việc thực hiện [a]:
Hãy tưởng tượng chúng ta có những người sau đây để nhóm vào các phương tiện 4, 7, 10 chỗ miễn phí.
Sau khi thực hiện [a], chúng ta sẽ có kết quả:
- G3 (2 công nhân): Một xe 4 chỗ miễn phí (xe có nhiều chỗ trống hơn sẽ bị loại bỏ).
- G2 (2 công nhân): một xe 4 chỗ miễn phí (xe có nhiều chỗ trống hơn sẽ bị loại bỏ).
G1 (9 công nhân):
- Phương án A: 3 xe 4 chỗ.
- Tùy chọn B: 1 xe 4 chỗ và một trong 7 xe.
- Tùy chọn C: 2 xe 7 chỗ.
- Tùy chọn D: một xe 10 chỗ.
Tôi đã nghĩ về một xấp xỉ:
- Tạo các loại phương tiện và thêm chúng vào danh sách được sắp xếp (tiêu chí sắp xếp phải là chỗ ngồi).
- Đối với mỗi nhóm công nhân, hãy làm:
- Tính kết hợp [b].
- Kết quả in trên màn hình.
Vì vậy, vấn đề chính là làm thế nào để phát triển [b].
Bất kỳ đề xuất? Xin lỗi nếu tôi đã giải thích bản thân mình xấu.