Mathematical programming formulations for machine scheduling: A survey