[ODE] Speeding up iterative techniques

david@csworkbench.com david at csworkbench.com
Thu Mar 20 16:10:02 2003


So what exactly would you lose by using a non-LCP solver?  As far as I can
tell, it's coulomb-ish friction (0 and infinite friction still works, as
would slip maybe? -- not looking at the source right now) and fmax control
(fmax is always infinity).  Am I missing anything?  How many people would
be willing to give those up in the interest of speed?

David

>
>> A question about the LCP solver: given that I will be giving it the
>> same A several times, is there a way to save the decomposition of the
>> matrix and...
>
> yes and no ... ODE's LCP solver is given low and high bounds for each
> solution variable. some of these bounds are -inf...inf. if the whole
> matrix had bounds -inf...inf then the problem would no longer be LCP, it
> would be a straight A*x=b linear problem. ODE's LCP solver takes the
> following approach: first group all the unbounded -inf...inf constraints
> together, and do a matrix decomposition on that. then for the remaining
> bounded constraints, go through dantzig's algorithm, switching indexes
> in and out of the active set and solving various sub-problems. if you
> wanted to re-solve the same A matrix for different right hand sides,
> then you can re-use that initial factorization, assuming that the
> unbounded indexes remain unbounded. it is probably a lot harder to reuse
> the subsequent work in the dantzig algorithm, as the path taken thought
> the 'active index' space is likely to be different. perhaps a clever
> caching scheme could be invented, but it's likely to be complicated.
> anyway, reusing the initial factorization will give the best savings and
> will be relatively simple - but note that i have not actually
> implemented a way to do this.
>
> russ.
>
> --
> Russ Smith
> http://www.q12.org/
>
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode