Originally posted by: Eumpfenbach
Pardon me if I am not understanding correctly, but retaining the whole basis matrix is equivalent to having the problem solved (or at least, the column generating part of it). I only start with the nonzero variables as a way of testing my script. Really, I need to be able to start with any suboptimal guess and find the optimal solution.
My question is, is there any way of determining whether a variable will be nonzero before I bring it in to the master problem? Even if I bring it in and it takes a zero value, I can't guarantee that bringing in other variables later won't make it nonzero, correct? If it is zero over a certain number of iterations I could
probably remove it, but nothing is for certain.
I have a basis of 200,000 variables, only about 3000 of which are nonzero. I only really care about the nonzero ones. Having to spend a ton of time pricing and bringing in the extra variables will kill my algorithm time. Maybe the best algorithm would be something like this:
1) price in the variables
2) if a variable takes on a zero value over so many iterations, remove it into a separate pool
3) hopefully find an optimal or near optimal solution quickly without a large number of the basic, but zero-valued columns taking up computation time
4) bring in all the basic columns (to prove optimality). There should be very little pivoting needed and it should hopefully converge quickly.
I realize I wrote a lot in this message. Just trying to get my thoughts out there so that the experts can tell me if any of my assumptions are wrong or there are better ways of doing things. Thanks!
#CPLEXOptimizers#DecisionOptimization