I'm using Mathematica 7's NMaximize to solve a linear programming problem with thousands of 0/1 integer variables, thousands of linear constraints and a linear target. I suppose I could use LinearProgramming but building inequalities and using NMaximize is very straightforward.
I was wondering which method is NMaximize using to solve the problems so I did as follows:
- I solve it using the by-default Automatic method. It took 2 minutes.
- The I tried every method listed in the help page (Differential evolution, Nelder-Mead, Simmulated Annealing, Random Search) to check which of them gets the same timing.
To my surprise, none of the manually configured methods could finish in 10 minutes. In addition, StepMonitor and EvaluationMonitor are never evaluated when using the automatic method, not even at the end.
So I suppose it is using another method, not listed in the documentation, to solve the problem.
Is there a way to know which method is being used? Maybe NMaximize has transformed the problem and is solving it with LinearProgramming?