Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Linear parametric solution #468

Merged
merged 22 commits into from
Jan 20, 2020
Merged

WIP Linear parametric solution #468

merged 22 commits into from
Jan 20, 2020

Conversation

Affie
Copy link
Member

@Affie Affie commented Dec 6, 2019

Draft PR to track changes with master and discuss code
TODO

basic usage

fg = LightDFG{SolverParams}( params=SolverParams(algorithms=[:default, :parametric]))
#add linear variables and factors ...
# Or generate a sample fg with lineStepFG
# fg = lineStepFG(7, poseEvery=1, landmarkEvery=3, posePriorsAt=collect(0:7), sightDistance=2)
#NOTE experimental and not exported. 
IIF = IncrementalInference
# bulk solve factor graph
d,st = IIF.solveFactorGraphParametric(fg)

# DEV NOTE
# For development on the tree solve (not currently working):
# build the tree
tree = wipeBuildNewTree!(fg)
# init the messages
IIF.initTreeMessageChannels!(tree)
# solve the tree
IIF.solveTreeParametric!(fg, tree)

* belief type buildSubgraphFromLabels csmc.dfg

* async structure in place

* added up messages priors

* Idea for consolidate message priors #459

* Changed to use enumerated CliqStatus for messages
@Affie Affie changed the title WIOLinear parametric solution WIP Linear parametric solution Dec 6, 2019
@codecov-io
Copy link

codecov-io commented Dec 6, 2019

Codecov Report

❗ No coverage uploaded for pull request base (master@ce4aa72). Click here to learn what that means.
The diff coverage is 43.47%.

Impacted file tree graph

@@            Coverage Diff            @@
##             master     #468   +/-   ##
=========================================
  Coverage          ?   51.73%           
=========================================
  Files             ?       35           
  Lines             ?     4413           
  Branches          ?        0           
=========================================
  Hits              ?     2283           
  Misses            ?     2130           
  Partials          ?        0
Impacted Files Coverage Δ
src/CanonicalGraphExamples.jl 100% <ø> (ø)
src/FactorGraphTypes.jl 90.19% <ø> (ø)
src/ParametricUtils.jl 100% <ø> (ø)
src/IncrementalInference.jl 66.66% <ø> (ø)
src/SubGraphFunctions.jl 80.95% <ø> (ø)
src/DefaultNodeTypes.jl 65.21% <ø> (ø)
src/CliqStateMachineUtils.jl 29.81% <ø> (ø)
src/FGOSUtils.jl 22.91% <0%> (ø)
src/SolveTree01.jl 59.96% <0%> (ø)
src/SolverAPI.jl 45.45% <100%> (ø)
... and 6 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ce4aa72...1b117e7. Read the comment docs.

* basic solveFactorGraphParametric! that needs a lot of work

* propagate errors on convergence failure

* force solver data to update

* solve frontals only function

* init parametric from mm using normal 'modefit'
src/BeliefTypes.jl Outdated Show resolved Hide resolved
src/JunctionTreeTypes.jl Outdated Show resolved Hide resolved
src/JunctionTreeTypes.jl Outdated Show resolved Hide resolved
@dehann dehann added this to the v0.8.x milestone Dec 26, 2019
* Cleaned up BeliefMessage

* messy test to get started
@dehann
Copy link
Member

dehann commented Jan 8, 2020

haha, sorry -- I removed the label based on PR being a 'Draft', but probably safer to have the label :-)

@Affie
Copy link
Member Author

Affie commented Jan 8, 2020

haha, sorry -- I removed the label based on PR being a 'Draft', but probably safer to have the label :-)

I was jut a bit worried that you wanted to merge it. It is keeping up to date with master so I think we can keep it separate for now. We should decide when to merge, I would like the tree to first work, but we need co-variances.

Affie added 3 commits January 13, 2020 09:20
* functions for tree messages

* move MetaBayesTree channels to be stored on edges

* test multiple graph segments

* Towards not using clique index directly
@dehann
Copy link
Member

dehann commented Jan 16, 2020

Swapping the tree, new CSM, and the inference in one big branch, sjoe okay! You going to have to help with the consolidation then too please :-)

@Affie
Copy link
Member Author

Affie commented Jan 16, 2020

Swapping the tree, new CSM, and the inference in one big branch, sjoe okay!

Jip, sorry. The tree foundation is in master, but I opened a can of worms with the clique index. So I first wanted to experiment and test a few ideas in the simpler parametric CSM.
I'm working towards reusing the tree. So we will need a deleteClique function.

We can merge sooner if you feel its needed. But we will end up with not fully functional code in a tag. This branch has not diverged that far from master yet, but its starting to get harder to keep it consolidated.

@dehann
Copy link
Member

dehann commented Jan 16, 2020

targeting slightly premature merge just after IIF v0.8.4 is tagged, coming up soon.

@dehann dehann modified the milestones: v0.8.x, v0.8.5 Jan 16, 2020
@Affie Affie marked this pull request as ready for review January 20, 2020 07:35
@Affie Affie merged commit 2dad422 into master Jan 20, 2020
@dehann dehann deleted the feature/4Q19/parametric branch July 17, 2020 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

3 participants