DAIRLab / dairlib

MIT License
76 stars 27 forks source link

Fix a bug and improve dircon squatting script #169

Closed yminchen closed 4 years ago

yminchen commented 4 years ago

Fix scaling bugs, rename a variable, use bounding box constraint, scale the cost and provide initial guesses for slack/time variables

yminchen commented 4 years ago

What's the effect on benchmark runtime, if any?

Here is what I observed about the solve time:

I am not sure why scaling the cost didn't help to improve the solve time in this example

mposa commented 4 years ago
  • Scaling the cost: increased by ~50%

So why scale the cost in this PR?

  • Providing initial guesses for the slack and time variables: decreased by 50~100%

100% reduction = instantaneous?

yminchen commented 4 years ago

Ah I made some mistakes in the previous comment. I benchmarked the solve time more carefully this time and here is the result:

The above changes are listed in order. With a different order, we might get a different solve time result. For example, if we only do the latter 3 bullet points, the solve time is ~1600 seconds...

Interestingly, the unintentional scaling "bug" improved the solving speed although it worsened the optimal cost by about 1%. I call it a bug here because it caused the condition number of the constraint gradient to be bad. Should we still merge this PR?

mposa commented 4 years ago

1/500 is a pretty big scale factor to include if it doesn't actually improve performance. Might be worth dialing it back to see what happens.

yminchen commented 4 years ago

Ok, I'll close this PR for now