[Clp] Efficiently compute reduced cost for different cost vector

Dami Choi damichoi95 at gmail.com
Sat Sep 19 03:59:09 EDT 2020


Hello,

Thank you so much for answering my previous questions, I learned a lot from
them, and it's quite an honor to have my questions get answered by the very
person who developed steepest edge.
I have another list of questions.

1) I noticed that even when I define my LP in standard form, the slacks
still get added. Did I make a mistake? Or is it always the case that one
slack variable per constraint is added? If so, why?

2) If I understand correctly, the reason why we leave updating dj's to the
specific pivot method is for computation reasons (for example, for Dantzig,
since we need to compute all the reduced costs, we keep in track of the djs
at every iteration, but this is not true for steepest edge).
Related to this, I have a couple questions:

a) What exactly is contained in the updates variable, which is the first
argument to pivotColumn? I just can't understand the two lines in the
Dantzig pivotColumn function:

        model_->factorization()->updateColumnTranspose(spareRow2, updates);
        // put row of tableau in rowArray and columnArray
        model_->clpMatrix()->transposeTimes(model_, -1.0, upates,
spareColumn2, spareColumn1);

Is it just adding a multiple of the pivotRow of the tableau by a constant
such that the reducedcost for the previous entering column is zero?

b) Looking at the updated dj's at every iteration of Dantzig, I noticed
that it's not the same as the reduced costs that I computed using BInvA and
cost_. Is it because the costs have been scaled? Is there a way I can get
the actual reduced costs without having to compute it by doing c -
c_BB^-1A?

3) Lastly, is there a way to efficiently compute the reduced cost vector
for a different cost vector without changing the problem, at every step? So
given a vector v != c, v-v_BB^-1A? Maybe something similar to how the
current reducedCost is being updated?

Thank you,

Dami
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20200919/9f41a7b5/attachment.html>


More information about the Clp mailing list