Solving the multi-dimensional knapsack problem with a genetic algorithm