UPDATE: I have realized the problem below is not possible to answer in its current form because of the large amount of data involved(15k+ items). I just found out, the
If you do not have to have exhaustive and precise solution, you can try to approximate the problem. The program will then run in pseudo-polynomial or even polynomial time.
See http://en.m.wikipedia.org/wiki/Knapsack_problem#Approximation_algorithms