evolutionary algorithm skeleton