Извините, я не знаю правильную терминологию для использования, но у меня есть матрица 3x3, как эта
1 3 4
5 4 5
2 2 5
, и я хочу получить наивысший балл, выбирая значение из каждой строки / столбца, но я не могу выбратьодна и та же строка или столбец более одного раза, поэтому ответ в этом случае будет
3 + 5 + 5 = 13 (row0, col1 + row1, col0 + row2, col2)
4 + 5+ 5 = 14 недопустимо, потому что выбрал бы два значения из col2
Я использую Java, и обычно матрица имеет размер 15 на 15.
Есть ли имя длячто я пытаюсь сделать, и что за алгоритм
спасибо Paul
РЕДАКТИРОВАТЬ: Примечание: венгерский алгоритм работает только тогда, когда ни одна из строк не равна ни одной из столбцов, и в моем случае это не всегдаслучай у меня регулярно бывают случаи 10х12 или 11х13.Но, похоже, вы можете обойти это, добавив дополнительные фиктивные строки.
РЕДАКТИРОВАТЬ хм, попробовав одну из этих имплантаций, и она не всегда работает, если только я не читаю ее
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,