Solving discrete lot-sizing and scheduling by simulated annealing and mixed integer programming