Originally posted by: Eumpfenbach
I am a PhD student. I want to be able to publish some work in a good journal (as I'm sure most of the posters on here do). I have a Mixed Integer Problem I am trying to solve efficiently. I used Bender's Decomposition first. CPLEX was still faster. I tried implementing my cuts through callbacks. Still, CPLEX is faster.
I recently tried column generation on my linear problem to see how much I could speed it up. A standard cplex solve takes .29 seconds. If I only track the time spent solving problems, with column generation I can cut the time down to .15 seconds. However, when I track total time (ie solving, getting the duals, iterating over a for loop to calculate the potential each column added has to help the objective function, adding the columns to the master problem, etc...) the total time goes up to 1.5 seconds.
So I guess I am asking for tips on how to be a good programmer with cplex. If I jump from python to C, will there likely to be a nice increase in speed? Is what I described typical? It seems like the decomposition methods in general seem to be effective, but they get killed by all the time spent interfacing and doing things like creating intermediate vectors for the subproblems, whereas cplex generates all its cuts efficiently and internally.
My problem doesn't really have a special structure. I chose one that is outside of the classical problems (ie not a traveling salesman, knapsack, etc...). Since cplex is designed to be an industrial strength general MIP solver, am I likely to ever be able to improve on it?
Any tips or advice would be greatly appreciated. I have spent months trying to beat cplex and can't do it. It's a negative for me and my work, but also a positive reinforcement of how good a tool it is...
#CPLEXOptimizers#DecisionOptimization