You have to design a framework of a Genetic Algorithm (GA) with basic functionality. The basic functionality includes representation, recombination operators, tness function and selection criteria. You can implement this framework in any language of your choice. You are not allowed to use any available libraries for GA.