A hybrid algorithm for the generalized assignment problem