*************************************************************************
 Knapsack solver programs written by Shigeru Imai, 2012

 Dynamic Programming solver is partially taken from the below link:
  http://introcs.cs.princeton.edu/java/96optimization/Knapsack.java.html
  Copyright © 2000–2011, Robert Sedgewick and Kevin Wayne
*************************************************************************

1. Compilation
 $javac knapsack/*.java


2. Running programs
In the same directory you compiled the source code, do the following:

-- GA knapsack solver
 $java knapsack.KnapsackGaSolver <problem file> <# iterations> <# individuals>

 Example execution:
 $java knapsack.KnapsackGaSolver problem.txt 100 1000

-- Dynamic Programming solver
 $java knapsack.KnapsackDpSolver <problem file>

 Example execution:
 $java knapsack.KnapsackDpSolver problem.txt


3. Files
-- GA knapsack solver
knapsack/KnapsackGaSolver: This files gives an approximate solution by Genetic Algorithm.

knapsack/Individual.java: This file represents an individual with a chromosome
                          (a solution to the knapsack problem).

knapsack/Knapsack.java: This file contains an instance of the knapsack problem.

knapsack/Population.java: This file stores a set of individuals and provides a method to
                          create a new generation of individuals.

-- Dynamic Programming solver
knapsack/KnapsackDpSolver: This files gives an optimal solution by Dynamic Programming.

-- Test knapsack problem file
problem.txt: This file contains a knapsack problem, which can be used for both
             GA and Dynamic Programming solver programs.








