ga for constrained optimization