GA algorithm

This is a regular version of GA algorithm.