Lo siento, no sé la terminología correcta de usar, pero tengo una matriz de 3x3 como estomejor manera de conseguir la mayor suma de una matriz (utilizando Java, pero el algoritmo es el tema aquí)
1 3 4
5 4 5
2 2 5
y quiero obtener el puntaje más alto al elegir un valor de cada fila/columna, pero no puedo elegir la misma fila o columna más de una vez, por lo que la respuesta en este caso es
3 + 5 + 5 = 13 (fila0, col1 + fila1 , col0 + fila2, col2)
4 + 5 + 5 = 14 no está permitido porque habría elegido dos valores de col 2
Estoy usando Java, y normalmente la matriz sería de 15 por 15 en tamaño.
¿Hay un nombre para lo que estoy tratando de hacer, y cuál es el algoritmo
gracias Paul
EDIT: Nota: el algoritmo húngaro sólo funciona cuando ninguna de filas es igual a ninguna de las cols, y en mi Si este no es siempre el caso, regularmente tengo casos de 10x12 o 11x13. Pero parece puede solucionar esto agregando filas ficticias adicionales.
EDITAR hmm, probar uno de estos implmentations y no se parece alwasy a trabajar, a menos que Im leer mal
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,
El resultado le da los puntos que se eligieron, como puede ver, están en forma de 'solution_nr: row, column' o' solution_nr: column, row' y la fila y las columnas son únicas tal como lo solicitó;) – KillianDS
Gracias KillianDS Lo malentendí, pensé que la solución no era rowno. ¿La solución Nr significa algo, o simplemente denota el orden en el que se encontró la respuesta correcta? –