Applying multi-phase particle swarm optimization to solve bulk cargo port scheduling problem