Closed yminchen closed 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
- 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?
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?
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.
Ok, I'll close this PR for now
Fix scaling bugs, rename a variable, use bounding box constraint, scale the cost and provide initial guesses for slack/time variables