0

I have following model:

NAME          scip
OBJSENSE
  MIN
ROWS
 N  Obj
 G  THISROW
 L  THATROW
 L  LASTROW
COLUMNS
    COLONE    Obj                              1  THATROW                       0.24
    COLTWO    THISROW                      78.26  Obj                              3
    COLTHREE  Obj                           6.24  LASTROW                         -1
    COLTHREE  THATROW                      11.31
    COLFOUR   THISROW                        2.9  Obj                            0.1
RHS
    RHS       THISROW                       92.3  THATROW                       14.8
    RHS       LASTROW                       -0.1
BOUNDS
 LO Bound     COLONE                         0.6
 PL Bound     COLONE
 PL Bound     COLTWO
 PL Bound     COLTHREE
 LO Bound     COLFOUR                         18
 UP Bound     COLFOUR                       31.5
ENDATA

And I execute following statements in scip:

SCIP> set presolving emphasis off
SCIP> set propagating maxrounds 0
SCIP> set propagating maxroundsroot 0
SCIP> read model.mps
SCIP> optimize
SCIP> display dualsolution

This gives:

THISROW                            0.0383337592639918
LASTROW                                          6.24*

These values are correct, however 6.24 should be -6.24 Is that the meaning of the * behind it? And if so, how can I get that information via the API because currently API call SCIPgetDualSolVal returns 6.24 There is also the argument boundconstraint which is true for LASTROW and false for THISROW. Is that the * and is that an indication of the sign? If not what does boundconstraint mean and how can I get the sign?

Then I also have a question about SCIPgetVarRedcost. It also returns non zero values for basic variables. Something I do not want. Is there a way via the API to know if a variable is basic or non basic in the final solution?

Thank you

1 Answer 1

0

The meaning of the * is that LASTROW is a bound constraint (just signaling that it is a singleton and thus gets treated as a column by the LP solver)

I have to admit that I am not sure about the sign change.

I don't think there is currently a way to directly query the basis status of a variable through the API. You could extend the API slightly by writing your own method in scip_var.c and make it call SCIPcolGetBasisStatus

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.