Solving the Knapsack Problem with a Genetic Algorithm in Ruby