Open mkatliar opened 9 years ago
@dkouzoup wrote:
It is possible if you warm-start your solver (the warm-start includes both previous solution but also
factorizations) that given a big change in your problem data, the warm-start is so bad that the solver
crashes. I have not experienced that myself but I have heard that this happens even with qpOASES
which is a much more mature software. Unfortunately I have no solution for this issue at the moment.
If it happens too often in your data you may consider always initializing your solver and check how
good/bad the timings are. What would be interesting, is if you fall on a QP that cannot be solved with
cold-started qpDUNES but with quadprog instead.
If I remove all calls to qpDUNES_shiftLambda()
and qpDUNES_shiftIntervals()
and replace the calls to qpDUNES_updateData()
by qpDUNES_init()
, does it count as a cold-start?
In this case, the same error occurs.
Hi,
I had a brief look at your example.
Hello @jfrasch ,
Thank you for your suggestions about the line search option. I think it would be a good idea to check that the linear search option is consistent with the Hessian type or to set this option automatically based on Hessian type.
I am trying to use qpDUNES in a real application. My example reproduces exactly the sequence of calls that happens in the application, therefore I cannot base it on a 'working example'. I tried to keep the call sequence consistent with the working examples though. If you think I am using the qpDUNES API in a wrong way, please tell me where.
@mkotlyar Let me know if you need help. I have managed to use qpDUNES in a real application -- at least to hook it up to the app software.
To reproduce, run the example code in the
issue6
branch, `examples/test_issue_6.c'. The output is:The same QP problem can be solved with
MATLAB quadprog
(seeexamples/issue6_test.m
).The appearance of this issue seems to depend on the pre-history of solver calls. If the same QP is the very first one after
qpDUNES_setup()
, it is solved successfully. To check it, uncomment#define SKIP
on line 4 inexamples/test_issue_6.c
.