Effective heuristics for permutation and non-permutation flow shop scheduling with missing operations