A filter-and-fan approach with adaptive neighborhood switching for resource-constrained project scheduling