Commit Graph

47 Commits (4403b51fcd7b08b1ee7f2c1336d81c0b22cd6380)

Author SHA1 Message Date
Michael Kaess 4403b51fcd isam functionality separated into ISAM class, still within BayesTree 2009-12-26 04:44:13 +00:00
Frank Dellaert 68de3ae715 better comments 2009-12-17 19:34:27 +00:00
Michael Kaess 2270c7d787 BayesTree animation 2009-12-14 06:01:15 +00:00
Michael Kaess 0116b3a515 severe bug fixed in updating of Bayestree 2009-12-13 20:54:48 +00:00
Michael Kaess 9bbea6dcbd some additional includes needed with newer compiler 2009-12-08 21:40:09 +00:00
Frank Dellaert 4951a25453 More efficient removeTop 2009-11-23 00:02:06 +00:00
Frank Dellaert 35af122e83 Added a new version of removeTop and simplified update 2009-11-22 23:50:01 +00:00
Michael Kaess 7d384488e3 BayesTree::update generalized and moved from testIncremental to BayesTree; testIncremental removed 2009-11-22 23:35:13 +00:00
Frank Dellaert 64a43b0492 removeTop now does not bomb when a clique does not exist: it just does nothing 2009-11-22 22:59:56 +00:00
Frank Dellaert 952798e751 fixed orphans bug 2009-11-22 18:22:17 +00:00
Frank Dellaert d4aaa5d114 Added two more removePath tests and fixed bug in removeTop. But orphan list is still incorrect. 2009-11-22 18:06:28 +00:00
Michael Kaess 45292f7bd6 Cliques implemented; unit test on orphans for removePath; bug fix in removePath/orphans 2009-11-22 17:40:24 +00:00
Frank Dellaert 53754ccbb8 removeTop with one factor implemented and one test works (orphans not yet checked) 2009-11-22 17:34:59 +00:00
Frank Dellaert 6f11c0803b Cliques class 2009-11-22 16:46:29 +00:00
Frank Dellaert 7ce62f1626 Some template magic and boost:tie cleared up the compile issues in removePath 2009-11-22 16:04:51 +00:00
Michael Kaess 4449cfd30c remove_path now also returns list of orphaned subtree roots; compile problem... 2009-11-21 23:41:43 +00:00
Frank Dellaert 82aae3c161 Some re-factoring (using BOOST_FOREACH to loop over string list), root is now NULL after removing root clique 2009-11-21 21:48:10 +00:00
Frank Dellaert 00b5b25591 Awesome recursive version of removePath 2009-11-21 06:14:53 +00:00
Frank Dellaert 072846a70f moved addClique and removeClique implementations to inl.h,
removePath takes clique argument now
2009-11-21 06:07:46 +00:00
Michael Kaess 0286bc27eb removePath mostly working 2009-11-21 03:38:13 +00:00
Frank Dellaert e2a3d1cb8f Fixed test 2009-11-19 04:52:46 +00:00
Frank Dellaert 76d0a60b88 commented out all print statements 2009-11-18 18:22:08 +00:00
Frank Dellaert f40182518a size() now returns correct nr. of cliques, not number of keys 2009-11-18 18:05:12 +00:00
Frank Dellaert bef2efacb7 fixed equals 2009-11-18 16:30:57 +00:00
Frank Dellaert f677341108 Moved inference methods to new compilation unit. Added [factor], and [marginalize] now returns a factor graph. 2009-11-12 04:56:30 +00:00
Frank Dellaert a3de1964d7 BIG CHANGE:
1) eliminate methods no longer return a shared pointer. Shared pointers are good for Factors and Conditionals (which are also non-copyable), because these are often passed around under the hood. However, a BayesNet is simple a list of shared pointers and hence does not cost a lot to return as an object (which is compiler-optimized anyway: there is no copy). So, the signature of all eliminate methods changed to simply return a BayesNet<> object (not a shared pointer).

2) GaussianBayesNet::optimize is now replaced by optimize(GaussianBayesNet) and returns a VectorConfig and not a shared pointer

3) GaussianBayesNet and SymbolicBayesNet are now simply typedefs, not derived classes. This is desirable because the BayesTree class uses templated methods that return BayesNet<Conditional>, not a specific BayesNet derived class.
2009-11-09 07:04:26 +00:00
Frank Dellaert dd1b023ca9 Fixed special case for root 2009-11-09 04:45:38 +00:00
Frank Dellaert cc22e82ca6 Joint densities (covariances) now done. Was exceedingly easy :-) 2009-11-09 00:13:44 +00:00
Frank Dellaert 86173b66af Clique marginal and dramatically simplified single variable marginal. 2009-11-08 22:51:12 +00:00
Frank Dellaert 58007a8167 Working recursive (but not cached) shortcut. 2009-11-08 04:41:01 +00:00
Frank Dellaert cc5a2c3183 Renamed double-templated functions to _eliminate and _eliminateOne, and created FactorGraph-specific eliminateOne methods to make life easier 2009-11-07 21:03:30 +00:00
Frank Dellaert df3e5f2416 BIG: eliminate and eliminateOne now doubly templated functions, not methods.
Minor: Standardized on new shared_ptr naming convention:
shared_factor -> sharedFactor
conditional_ptr -> sharedConditional
node_ptr -> sharedClique
2009-11-07 19:31:39 +00:00
Frank Dellaert f5d186522e Standardized on new shared_ptr naming convention 2009-11-07 17:24:05 +00:00
Frank Dellaert cd313e2f82 operator[] to retrieve clique 2009-11-06 05:55:29 +00:00
Frank Dellaert e1716a39cd Two changes: LinearFactor::sparse and LinearFactorGraph:sparse, and renamed VariableSet -> Dimensions, which is now a map from keys to integer variable dimensions. Merged in from the "sparse" branch created with Viorela. 2009-11-06 05:43:03 +00:00
Frank Dellaert d9289d14b3 marginals on any scalar now work 2009-11-05 08:06:32 +00:00
Frank Dellaert cabcda5a96 marginal compiles and runs for frontal node in clique 2009-11-05 06:30:50 +00:00
Frank Dellaert 11fcd5a69d KISS: just a map of pointers in BayesTree now 2009-11-05 05:29:47 +00:00
Frank Dellaert 4865edb883 Removed debug code, added marginal function 2009-11-04 03:22:29 +00:00
Frank Dellaert e9d942f81e BayesNet is now list-based for fast bi-directional access
SLOW O(n) random access operator[key] provided 
(should maybe be called [at] as it does bounds checking)
I also fixed a bug in equals.
2009-11-03 06:29:56 +00:00
Frank Dellaert eab038651e Renamed BayesNet::insert -> push_back. BayesTree now uses Bayes nets as nodes. 2009-11-02 05:17:44 +00:00
Frank Dellaert a8d267c4ca Small change necessitating lots of edits: Conditionals now include key of random variable
This simplifies Bayes nets quite a bit. Also created a Conditional base class, derived classes ConditionalGaussian and SymbolicConditional
Finally, some changes were needed because I moved some headers to .cpp
2009-11-02 03:50:30 +00:00
Frank Dellaert 943b692a6b BIG CHANGE: I got rid of the BayesChain/ChordalBayesNet classes and we now simply have a BayesNet class. It will just happen to be chordal when it is the result of an elimination. This will simplify a lot of things.
The main renaming that happened is

BayesChain -> BayesNet
ChordalBayesNet -> GaussianBayesNet == BayesNet<ConditionalGaussian>
SymbolicBayesChain -> SymbolicBayesNet == BayesNet<SymbolicConditional>
2009-10-31 19:53:20 +00:00
Frank Dellaert c046fed37c Bayes tree constructor implemented and tested with ASIA, as well as smoother example from frankcvs meeting 2009-10-31 16:57:36 +00:00
Frank Dellaert e1f14b34c3 Implemented [equals] using binary predicate and STL's equal 2009-10-31 14:12:41 +00:00
Frank Dellaert 53890c4ba6 Symbolic Bayes Tree successfully constructed 2009-10-31 05:12:39 +00:00
Frank Dellaert cefeca149b Moved template definitions to BayesTree-inl.h 2009-10-30 13:03:38 +00:00