Simple genetic algorithm implementation with user-defined genome representation and fitness/crossover/mutation schemes