A double-multiplicative dynamic penalty approach for constrained evolutionary optimization