operation research numerical simulated annealing heuristics optimization multiobjective optimization mathematical programming simulation linear programming algorithm development