Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
  • 1.  CPXgetray to get the unbounded ray of an infeasible LP

    Posted Fri September 19, 2025 12:34 PM
    Edited by CPLEX User Fri September 19, 2025 12:35 PM

    (typo in subject which is uneditable. Please read as "unbounded" LP)

    Hello,

    The documentation (https://www.ibm.com/docs/en/icos/22.1.2?topic=g-cpxxgetray-cpxgetray) states that this is available only if the LP after being solved returns a status of CPX_STAT_UNBOUNDED

    With preprocessor turned on (default), for an unbounded LP, the returned status is CPX_STAT_INForUNBD (https://www-eio.upc.edu/lceio/manuals/cplex-11/html/refcallablelibrary/html/macros/CPX_STAT_INForUNBD.html). I have confirmed that CPXgetray does not return a ray here as it has not found an extreme ray.

    Once an LP has been deemed CPX_STAT_INForUNBD (and I know from context that it can never be infeasible), is there a way to efficiently use some sort of "warm start" or inform CPLEX that the LP is infact unbounded so that it can return the extreme ray quickly?

    I know that I can turn presolve off via : CPXsetintparam(env, CPXPARAM_Preprocessing_Presolve, CPX_OFF);

    and solve the problem from scratch via primal simplex to get the extreme ray. But I would like to take advantage of presolve and somehow "inform" CPLEX so that it can use some sort of "advance start" or something equivalent to quickly return the unbounded ray of the original primal LP. Is something like this possible?

    Thanks.



    ------------------------------
    CPLEX User
    ------------------------------



  • 2.  RE: CPXgetray to get the unbounded ray of an infeasible LP

    Posted Mon September 22, 2025 11:25 AM

    Unfortunately, there is no way to reuse the presolve operations that has determined that the model was infeasible or unbounded to find the unbounded direction when it is not infeasible. There are several places in presolve where this detection occur and the engine just stops when this is detected.

    There is some more information here : https://www.ibm.com/support/pages/presolve-and-statuses-cpxstatinforunbd-or-ilocplexinforunbd but given your understading of the meaning of the status CPX_STAT_INForUNBD  you are probaly aware of all this.

    Regards 

    Philippe

    -------------------------------------------



  • 3.  RE: CPXgetray to get the unbounded ray of an infeasible LP

    Posted Mon September 22, 2025 11:46 AM
    Edited by CPLEX User Mon September 22, 2025 11:55 AM

    Thank you Philippe.

    The wording in https://www.ibm.com/docs/en/icos/22.1.2?topic=g-cpxxgetray-cpxgetray is a bit ambiguous. Is it guaranteed that cpxgetray returns an extreme ray of the convex cone? I ask because from the documentation the following conditions will be satisfied by the returned ray

     c'z < 0

    Az = 0

    z >= 0

    But this will be satisfied by a nontrivial nonextremal convex combination of two distinct extreme rays as well. I am aware that theoretically the simplex direction of movement are all extreme directions, but I just want to confirm that this is true of what CPLEX returns as well.

    Thanks.

    PS: The link you have specified does not work for me. It asks me to login and once I do it indicates that I am not authorized to view the page.

    ------------------------------
    CPLEX User
    ------------------------------