Xin lỗi tôi không biết thuật ngữ đúng để sử dụng nhưng tôi có một ma trận 3x3 như thế nàyCách tốt nhất để có được số tiền cao nhất từ một ma trận (sử dụng Java nhưng thuật toán là vấn đề ở đây)
1 3 4
5 4 5
2 2 5
và tôi muốn có được điểm số cao nhất bằng cách chọn giá trị từ mỗi hàng/cột nhưng tôi không thể chọn cùng một hàng hoặc cột nhiều lần, do đó câu trả lời trong trường hợp này là
3 + 5 + 5 = 13 (row0, col1 + row1 , col0 + row2, col2)
4 + 5 + 5 = 14 không được phép vì đã chọn hai giá trị từ col 2
Tôi đang sử dụng Java và thường ma trận sẽ có kích thước 15 x 15.
Có một tên cho những gì Im cố gắng để làm, và whats thuật toán
nhờ Paul
EDIT: Lưu ý: các thuật toán hungarian chỉ hoạt động khi không có hàng bằng không của cols, và trong tôi trường hợp này không phải luôn luôn là trường hợp tôi thường xuyên có các trường hợp 10x12 hoặc 11x13. Nhưng nó xuất hiện bạn có thể làm tròn điều này bằng cách thêm các hàng giả.
EDIT hmm, cố gắng ra một trong những implmentations và nó không có vẻ alwasy để làm việc, trừ khi Im hiểu sai nó
100.0,100.0,100.0,100.0,30.0,80.0,80.0,100.0,100.0,80.0, 80.0,100.0,100.0,100.0,80.0,80.0,25.0,100.0,100.0,80.0, 80.0,100.0,100.0,100.0,80.0,25.0,80.0,100.0,100.0,80.0, 100.0,25.0,80.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0, 0.0,100.0,100.0,100.0,100.0,80.0,80.0,100.0,100.0,100.0, 100.0,100.0,100.0,100.0,100.0,100.0,100.0,100.0,25.0,100.0, 100.0,100.0,100.0,25.0,100.0,100.0,100.0,75.0,100.0,100.0, 100.0,80.0,30.0,100.0,75.0,100.0,100.0,100.0,100.0,100.0, 100.0,100.0,100.0,100.0,80.0,80.0,80.0,100.0,100.0,25.0, 100.0,100.0,100.0,75.0,100.0,100.0,100.0,25.0,100.0,100.0, Results calculated 0:4,0, 1:3,1, 2:7,2, 3:6,3, 4:0,4, 5:2,5, 6:1,6, 7:9,7, 8:5,8, 9:8,9,
Đầu ra cung cấp cho bạn các điểm được chọn, như bạn có thể thấy, ở dạng 'solution_nr: hàng, cột' hoặc' solution_nr: cột, hàng' và hàng và cột là duy nhất như bạn đã yêu cầu;) – KillianDS
Cảm ơn KillianDS Tôi đã hiểu lầm nó, mặc dù giải pháp không phải là rowno. Nr giải pháp có nghĩa là bất cứ điều gì, hoặc nó chỉ biểu thị thứ tự mà trong đó câu trả lời chính xác đã được tìm thấy? –