Originally posted by: 8699oriel
Daniel,
Sorry I didn't answer your question properly last time. I get the model via CPXXgetcallbacknodelp() and then, using the local (callback) CPXCENVptr and CPXLPptr objects, write the sav file to compare.
You are right that I'm probably expecting things to look too much the same and I'm beginning to mentally set there. I think a couple of my concerns are still valid though - but maybe I'm not on the right track?:
1. My old MIP-only problem (TSP constraints but strictly linear in obj func and constraints), using 12.2, goes straight to a cut callback before reaching the incumbent callback. Now, both the strictly linear MIP and with my new MIQCP model, the incumbent callback is reached first. Is this a new path through CPLEX that I simply must adapt to?
2. I get that CPLEX has its internal constraint names at callbacks but here's what I'm seeing:
-before call to mipopt: "Constraint1: A1*x <= b1" and "Constraint2: A2x <= b2"
-at first cut callback, the node lp has "Constraint1: A2*x <= b2" and "Constraint2: A1x <= b1"
i.e. it's using my constraint names but pointing them at different constraints. This just seems wrong rather than odd.
You can see this in the .sav files I sent.
BTW - my old code was on a 32-bit machine and used the CPX interface. Now that I have a 64-bit machine, I updated to CPXX interface and changed to CPXDIM and CPXINT where appropriate to avoid compiler warnings/errors. One of my tests in the next few days is to create a copy of the code that only uses the CPX interface (not CPXX) in case somehow I've screwed things up there.
Thank you for your patience and help.
-William
#CPLEXOptimizers#DecisionOptimization