mochila backtracking revursividad
Publicado por the_fustred (1 intervención) el 12/12/2005 03:25:51
hola buenas,
estoy destrozandome el cerebro pensando como sacar el famoso problema de la mochila binaria con backtracking y de forma recursiva.
el entorno son una serie de funciones que te pasan parametros y 2 ficheros de texto que te pasan los datos de 2 mchilas diferentes para testear.
se debe implementar una funcion recursiva :
public void AvaluaMotxilla(int index, int peso_actual, int valor_actual, int [] solucion_actual)
que debe funcionar recursivamente, sin funciones adicionales con los parametros q se le pasan y sacar la solucion, numero de veces q se da esa solucion.
lo estoy intentando pensar y solo se me ocurren que bucles for, cosa que para la recursividad no me conviene y más que backtracking me sale fuerza bruta
¿alguien se ve con ánimos de ayudarme?
un ejemplo de fichero de entrada con los datos de la mochila sería:
9
6
2 3 4 5 6 7
3 5 6 10 11 13
donde el primer nº será capacidad, el 2º elementos, vector peso y vector valor respectivamente
muchas gracias de antemano
estoy destrozandome el cerebro pensando como sacar el famoso problema de la mochila binaria con backtracking y de forma recursiva.
el entorno son una serie de funciones que te pasan parametros y 2 ficheros de texto que te pasan los datos de 2 mchilas diferentes para testear.
se debe implementar una funcion recursiva :
public void AvaluaMotxilla(int index, int peso_actual, int valor_actual, int [] solucion_actual)
que debe funcionar recursivamente, sin funciones adicionales con los parametros q se le pasan y sacar la solucion, numero de veces q se da esa solucion.
lo estoy intentando pensar y solo se me ocurren que bucles for, cosa que para la recursividad no me conviene y más que backtracking me sale fuerza bruta
¿alguien se ve con ánimos de ayudarme?
un ejemplo de fichero de entrada con los datos de la mochila sería:
9
6
2 3 4 5 6 7
3 5 6 10 11 13
donde el primer nº será capacidad, el 2º elementos, vector peso y vector valor respectivamente
muchas gracias de antemano
Valora esta pregunta


0