[Work Log] refactoring; dependencies

September 19, 2013
Project Tulips
Subproject Data Association v3
Working path projects/​tulips/​trunk/​src/​matlab/​data_association_3
SVN Revision 15229
Unless otherwise noted, all filesystem paths are relative to the "Working path" named above.


Invstigating consistent ML implementations

Discovered issue: was calling curve_tree_ml instead of curve_tree_ml_2. Working now

Aside: common mistakeis

Losing a too much time to stupid organizational mistakes --

Code has gotten complex enough that managing all of these little sharp edges is too expensive. Need to start being more disciplined. Solutions

Discussion: start_index and branch_index

In previous days, I was torn over whether I should add start_index to branch_index before evaluating.

The answer is yes, because it greatly simplifies the optimization of start_index, because you don't have to re-adjust the children's branch_indices.

how is markov blanket determined (pre or post offset indexing?)

Do we need to recurse after attach?

RAW VALUES should be stored, not derived values. branch_index is a raw value.

*Example: * C is attached to B. We want to attach B to A, with start index of 10. Assume branch_index is stored relative to the zero-index (as opposed to the first observed point). After attaching, we need to update C's branch point; if we later detach B from A, B's branch point need to be updated again. There's potential for drift to accumulate after all of these upates.

To avoid confusion, replace branch_index to branch_distance; will convert to an index value before computing. Also prior_indices needs updating? Or just eliminate

recursive Updating after attachment

Consider attachment:


(D -> C -> B)    (A)


(D -> C -> B -> A) 


             A   B C D         A B C D 
             |   | | |         | | | |
             |   | |/          | | |/
             |   | +           | | +  
             |   |/            | |/ 
             |   +       ==>   | +
             |                 |/         
             |                 +      

As far as stored fields go, it looks like branch distributions change recursively after attachment, etc.


Did some thinking about dependencies; what needs to be updated when parents are changed. Scan of the notes are available below. Also did a reference writeup.

Dependency hand-written notes


Changed Corr.branch_index to Corr.branch_distance.

Replaced all instances of Corrs(i).branch_index with get_branch_index(Corrs, i).

Replaced Corr.ll_indices* with Corr.ll_distances.

removed Corr.prior_indices

TODO: replace kernel(XX,YY) with eval_kernel(asdf) see att_set_start_index_2 TODO: replace Corrs cell array with Corrs structure array




Posted by Kyle Simek
blog comments powered by Disqus