Heuristics and metaheuristics for heavily constrained hybrid flowshop problems