Everyone knows that optimization problems can be solved by mathematical programming techniques, whether they are (linear - non-linear - mixture - ...) and also can be solved by heuristic techniques. Now which are better, mathematical programming techniques or metaheuristic techniques?