Integrating opposition-based learning into the evolution equation of bare-bones particle swarm optimization