Latest code release: new library, rounding, tests, experiments, docs.
This PR adds:
- New library code for Fiedler value computation, subgradient optimization, randomized rounding.
- New example code for running the MAC algorithm and evaluating its performance
- Updated documentation
- New tests
Migrating the latest results from the MRG development repo for release.
We should go over everything one more time to do any last clean up, but otherwise I think we are good to go.
cc: @alanpapalia
If I have any small commits/changes as I'm testing or reading through this I'll just go ahead and push them (e.g., minor typos or additions to documentation). You can see I've added a few minor things like this.
If I end up needing to make changes that modify core functionality (unlikely I think) then I'll fork a separate branch on this or we can have a larger discussion.
Looks awesome! Just finished running all of the tests after applying a few minor fixes and adding some minor documentation.
One thing: I think we forgot to copy the NCLT data over? (or provide a pointer to it somewhere)
Examples that need NCLT
-
g2o_simple.py(maybe good to change the file name) -
nclt_experiment_with_gtsam.py -
nclt_experiment_with_sesync.py
I'll make a branch for NCLT problems and copy and test.
One other example to draw attention to: incremental_g2o_experiment.py runs, but is quite slow. I think this is due to unimportant operations happening, but I wanted to point this out in case we wanted to add notes to.
One thing: I think we forgot to copy the NCLT data over? (or provide a pointer to it somewhere)
Yeah, I was thinking per our previous discussion on this that we'd just add to a separate repo? But maybe it is just simpler to add the combined .g2o file used from the experiments to the data/ folder for now. Thoughts?
One other example to draw attention to: incremental_g2o_experiment.py runs, but is quite slow. I think this is due to unimportant operations happening, but I wanted to point this out in case we wanted to add notes to.
I haven't looked at this in a while, what unimportant operations are you referring to? This is using the iMAC stuff, right? I'm happy to just remove that and imac_pgo.py for now and add them in a separate PR. Both were sort of left off in a messy state.
Worth capturing here that this PR also finally resolves issue #4 😄
@alanpapalia I took another pass at all this. Mainly I split out the following content:
- #6 (really the
ncltbranch) contains the NCLT experiment content. - #7 (likewise, the
imacbranch) contains the incremental sparsification stuff.
Any objections to merging this PR in its current form? Going once, going twice, ....