-
Notifications
You must be signed in to change notification settings - Fork 8
Add slew constraints using a lazy constraint callback #65
Conversation
lpsinger
commented
May 10, 2021
- Add properties to the Mission class for overhead, slew velocity, and slew acceleration.
- Change the observation time from a binary decision variable to a continuous one.
- Implement the position-dependent slew constraints using a lazy constraint callback to keep the problem size manageable.
Note: merge #64 first. |
Codecov Report
@@ Coverage Diff @@
## main #65 +/- ##
==========================================
- Coverage 32.71% 32.32% -0.39%
==========================================
Files 32 34 +2
Lines 1397 1553 +156
==========================================
+ Hits 457 502 +45
- Misses 940 1051 +111
Continue to review full report at Codecov.
|
Here's an example invocation that demonstrates the new slew constraints:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's really nice. I had gotten partway there ;) Looks ready to merge after the rebase to pick up the nonzero_intervals function.
61a56dd
to
4375de8
Compare
Do you have any insights on the MIP formulation from your work on the problem? |
826cc54
to
4f98f16
Compare
481195e
to
942c8c4
Compare
@mcoughlin, this is ready for review now. Both models ( Output from
|
Can we give Alexander a shot at giving it a real look @lpsinger? |
Yes, please! What's Alexander's GitHub handle, by the way? |
@lpsinger It is @criswellalexander. |
5b3f1c6
to
70fcd0f
Compare
* Add properties to the Mission class for overhead, slew velocity, and slew acceleration. * Change the observation time from a binary decision variable to a continuous one. * Implement the position-dependent slew constraints using a lazy constraint callback to keep the problem size manageable.
It seems to speed things up by about 2x.
This is normally done implicitly by CPLEX in its presolve, but that was disabled by the lazy constraints.
Each has strengths and weaknesses. In this early stage, it is valuable to keep around both.
70fcd0f
to
b3536a3
Compare
b3536a3
to
64bd79f
Compare
Dorado uses a frame transfer CCD, so there is effectively no readout overhead.
I looked over the code and did some runs with both the discrete-time and continuous-time-slew settings, everything looks good and works as I'd expect! |
I looked through it as well. Can I merge @lpsinger ? |
One sec, there is a broken unit test. Let me fix that. |
Tests are passing now! @mcoughlin, would you do the honors? |
Honored I am! |