modify ShiEkerhartPSO