Forum Discussion

FICO's avatar
FICO
Community Manager
1 year ago

I'd like to increase the diagnostics to know the cause of an infeasibility.

Hi. I am trying to optimize the attached model. However, it is infeasible. When running the diagnostics, the displayed information is not useful. I would like to see the cause of the infeasibility, e.g. which row or column, or due to X bound, etc.

4 Replies

  • FICO's avatar
    FICO
    Community Manager

    Dear Raul,

    I might be missing something, but that is exactly what is printed in the log at the end of your solve.: 59 constraints and 26 bounds alone make the problem infeasible (out of over a thousand each). They are listed by their name, type and bound.

    Would you expect to see this information presented in a different way, or would you need some other kind of information? Or would you expect a smaller IIS?

    You can use the iis -w call to print out an lp file of just the variables and bounds that cause the infeasibility.

  • FICO's avatar
    FICO
    Community Manager

    Hi. I remember that, in some other ocassions, I have seen messages saying something like "Problem is infeasible due to upper bound on row XXXX because column YYYY has a lower bound of #### implied by row ZZZZ". I was expecting to see messages like that.

  • FICO's avatar
    FICO
    Community Manager

    Ah, I see what you mean.

    That message is emitted by the presolver if it discovers the problem to be infeasible. This is for simple infeasibilities, and it indicates that the presolver deduced conflicting bounds on the row or variable.

    In your case the infeasibility is more complicated and it requires several rows and columns together, so you need to run an IIS algorithm to see it.

  • FICO's avatar
    FICO
    Community Manager

    It looks like you've already used FindIIS().