[Clp] Question about ClpPrimalColumnPivot.PivotColumn

John Forrest jjhforrest at gmail.com
Thu Sep 17 10:30:30 EDT 2020


On 17/09/2020 10:12, Dami Choi wrote:
> Hello,
> 

> 
> First of all, what does dj stand for?
> In the djRegion function in ClpSimplex 
> (https://projects.coin-or.org/Clp/browser/trunk/src/ClpSimplex.hpp#L1146), 
> what does the section argument mean?

dj stands for the reduced costs of variables.  The sections are for 
structural variables and row slacks.  We are going back to the 1960's 
when the best LP code was CEIR Inc and CEIR Ltd code LP/90/94 for the 
IBM 9094 with 36 bit words - so six 6 bit characters - so names were 
kept short - also it made it easier when using punched cards.  So you 
may see short names referenced in code e.g. FTRAN (Forward 
transformation -> columnUpdate).  The input column would be updated with 
the computer tapes going forwards.  Then the next update for the product 
form of the update would be written to the end of a tape.  For the next 
iteration to obtain a pricing vector the tapes would be read backwards 
(BTRAN).

> 
> In the PivotColumn function in ClpPrimalColumnPivot, what is the purpose 
> of the arguments updates and sparerow/columns? If I understand 
> correctly, only updates contains some information from the previous 
> iteration, and sparerow/column aids in the computation in the process of 
> updating the costs. But in what part of the simplex algorithm does this 
> updating cost correspond to, and why is it in the PivotColumn function 
> and not in the primal function?

Algorithms have advanced since then and there are different pricing 
methods - virtual functions in C++ make it easier to keep these 
separate.  As vectors are sparse the spareRow etc CoinIndexedVectors are 
work arrays which are empty at beginning and end so that just non-zero 
elements are referenced and there is no overhead if a vector is not 
referenced by one of the pricing methods.
> 
> Thank you,
> 
> Dami
> 
> _______________________________________________
> Clp mailing list
> Clp at list.coin-or.org
> https://list.coin-or.org/mailman/listinfo/clp
> 



More information about the Clp mailing list