optimize particle