AnsweredAssumed Answered

How to load mip sols during global search (Python API)

Question asked by david.kayanan on Mar 26, 2018



I have an MIQP with binary and continuous variables, and I am using Xpress via Python (v 32.01.03.) Along the search, there are times wherein I can come up with solutions for all binary variables, and I would like Xpress to immediately evaluate this solution (ie, solve the remaining QP). As I have a PreIntSol cb, I expect this to be fired if my soln is feasible. After consulting the documentation, it seems that the proper way to do this is to use problem.addmipsol() within the OptNode cb, but when I do so, the ff. happens:


(These events can be seen from the attached screen shot of the run, where the important msgs are underlined)

1) At OptNode, after using .addmipsol(), Xpress reports that my soln is "stored"

2) Upon exiting this OptNode, Xpress says that my soln is "accepted", and that it is "feasible after reoptimizing with fixed globals"

3) The search proceeds

      a) with no increment to mip sols found, as reported by the global log

      b) without firing my PreIntSol cb


This begs the question, what does Xpress mean when it says it "accepted" the soln? And why does it says that my soln was "feasible after reoptimizing", which I take to mean that the reamining QP was indeed solved? Am I missing something here, or could it be a bug with the Python API?