Skip to main content

Error: Dual/Infeasible Linear Program - Not making sense

Comments

5 comments

  • Daniel Espinoza

    Hi Faraz,

     

    I am guessing (since you did not provide an MPS or LP) that you expect any finite number not to be infinity, whereas any bound around 1e20 is already considered as infinity (see the bound attribute documentation), so for sure, a problem with very large bounds can be considered unbounded

    0
  • Faraz Hayat
    Gurobi-versary
    First Comment
    First Question

    Hi Daniel,

    I am using the R module and here is the code. It is quite simple:

     d = -1*d
      A = cbind(A, d)
      model <- list()
      model$A <- A
      model$rhs <- x
      model$sense <- c('=')
      model$obj <- c(rep(0,ncol(A)-1),1)
      model$modelsense <- 'min'
      model$ub <- c(X_U,Inf)
      model$lb <- c(X_L,-Inf)
      result <- gurobi(model,params = list(OutputFlag=1))
      return(result$objval)
     
    As you said, I am setting the bounds on "t" to be -Inf and Inf.
     
    Qs: Is Gurobi's error of infeasibility wrong when I set DualReductions parameter to equal 0?
     
    Qs: What should I do then? I was trying to compute the lower bound on "t" using this program. Do I have to make the bounds on "t" finite? Is that the only solution? If so, is there any guideline for this as to what bounds to use?
     
    EDIT: Forgot to add that some instances of this code (i.e. different A, x, X_l, X_U and d) as its written work perfectly fine.
    1
  • Daniel Espinoza

    Have you tried

    gurobi_write(model, 'mymodel.mps');

    gurobi_write(model, 'mymodel.lp');

    The MPS model is a binary compatible format (but hard to read), LP format is easy to read (but not 100% accurate in terms of number representation). You should take a look 

    You can always call gurobi_iis on infeasible models, or you can use the parameter http://www.gurobi.com/documentation/8.1/refman/infunbdinfo.html#parameter:InfUnbdInfo

    0
  • Faraz Hayat
    Gurobi-versary
    First Comment
    First Question

    Hi Daniel,

    I have added the mps and lp file to the dropbox link in the original post. What is confusing me is the following:

    Gurobi says that the model is infeasible. Yet gurobi is able to find a solution to the constraints (for example, change the objective in the mps file to 0). This is replicable with the the mps file I am providing. So how can the model be infeasible?

    I am assuming it is not unbounded because using DualReductions=0 tells me that it is an infeasibility issue.

    Can you take a look at the mps file? 

     

    0
  • Daniel Espinoza

    Hi Faraz,

     

    Sorry for the delay, I was out the last few days. the MPS and LP file you posted have zero objective functions, and Gurobi does find a feasible solution for both of them.... I guess you did not send a version with the objective.

    What __could__ happen is that the problem is unbounded (with the non-trivial objective) but that Gurobi decides to solve the dual problem instead (and that one should be infeasible if the primal is unbounded). Still, having the model that triggers the issue is the only way to be sure what is going on. By the way, I assume you are using v8.1.1?

     

    Best,

    Daniel

    0

Please sign in to leave a comment.