Hola estoy realizando un proyecto sobre  el algoritmo  de la mochila 
Alguien me podría explicar en que consiste y además el código en java
			
			
			
				http://es.wikipedia.org/wiki/Problema_de_la_mochila (http://es.wikipedia.org/wiki/Problema_de_la_mochila)
Ahí tienes para rato
			
			
			
				src,bin programa de ejemplo
http://alumno.us.es/s/sjromcas/programas/mochila3.jar
 
Quisas te sirva
http://es.wikibooks.org/wiki/Problema_de_la_mochila_con_programaci%C3%B3n_din%C3%A1mica
public int[][] Mochila(int[] pesos, int[] beneficios, int capacidad){   
		//Creamos la matriz de devoluciones    
		int[][]  matriz_mochila = new int[pesos.length+1][capacidad+1];
		//Rellenamos la 1ª fila de ceros   
		for(int i = 0; i <= capacidad; i++)  
			matriz_mochila[0][i] = 0;    //Rellenamos la 1ª columna de ceros 
		for(int i = 0; i <= pesos.length; i++)           
			matriz_mochila[i][0] = 0;           
		for(int j = 1; j <= pesos.length ; j++)          
			for(int c = 1; c <= capacidad; c++){       
				if(c <  pesos[j-1] ){           
					matriz_mochila[j][c] = matriz_mochila[j-1][c];   
					}else{               
						if(matriz_mochila[j-1][c] > matriz_mochila[j-1][c-pesos[j-1]]+ beneficios[j-1]){    
							matriz_mochila[j][c] = matriz_mochila[j-1][c];           
							}else{                
								matriz_mochila[j][c] = matriz_mochila[j-1][c-pesos[j-1]]+beneficios[j-1]; 
								}           
						}     
				}       return matriz_mochila;    
				}