Hi,
I have two questions.
I was going through the SimplexTableau.java code, tried to understand every line
of it. In the dropPhase1Objective() method I was puzzled a little bit, maybe you
can explain.
You are dropping positive cost nonartificial variables, which means that some
original decision variable may be dropped in the process. However, that decision
variable may be
still there in the main objective Z and the constraints. Or is it now
substituted by a basic artificial variable?
Also, according to the getSolution() code, I see that the dropped variable will
be assumed to have zero value. Again, I don't quite understand how that is going
to work.
I would understand if in dropPhase1Objective() you would examine the positive
cost of the variable regarding the main Z objective, but you do it for the
phase1 W objective (row # 0):
// positive cost nonartificial variables
for (int i = getNumObjectiveFunctions(); i < getArtificialVariableOffset(); i++)
{
if (MathUtils.compareTo(tableau.getEntry(0, i), 0, epsilon) > 0) {
columnsToDrop.add(i);
}
}
Another question. I actually need to solve the quadratic optimization, which is
done by modified simplex method. This is why I was studying the code. Are there
any plans to add it in the apache.commons.math?
I saw a few free implementations, but each of them uses there own libraries for
basic matrix/vector math, and I would really prefer to stick with apache. So I
was thinking of doing it myself based on your current code.
Thanks,
Leonid
