eb8efcec9b47f769fdd6cff326fe67f59e2e051d
[libdai.git] / STATUS
1 - Idea: a FactorGraph and a RegionGraph are often equipped with
2 extra properties for nodes and edges. The code to initialize those
3 is often quite similar; maybe this can be abstracted to classes
4 like ExtFactorGraph and ExtRegionGraph (Ext stands for Extended), e.g.
5 template <typename NodeProperties, typename EdgeProperties>
6 class ExtFactorGraph : public FactorGraph {
7 public:
8 std::vector<NodeProperties> nodeProps;
9 std::vector<std::vector<EdgeProperties> > edgeProps;
10 // blabla
11 }
12 A disadvantage of this approach may be worse cachability.
13 A problem is if there are nog properties for nodes (type 1), nodes (type 2)
14 or edges. Maybe this can be solved using specializations, or using variadac
15 template arguments or something similar?
16 - BipartiteGraph::isConnected should be optimized.
17 - http://www.boost.org/development/requirements.html#Design_and_Programming
18 - Would it be a good idea to cache second-order neighborhoods (delta's) in BipGraph?
19 - Would it be a good idea to add the variable label -> index hashmap in FactorGraph,
20 to replace the linear searches that are performed every time for findVar()?
21 No, a better idea is to avoid calls to findVar() as much as possible.
22 - Can the FactorGraph constructors be optimized further?
23 - Remove x2x?
24 - Add iterations (like maxdiff, but counts iterations) to some algorithms
25 Idea: use a PropertySet as output of a DAIAlg
26 - A DAIAlg<T> should not inherit from a FactorGraph/RegionGraph, but should store a
27 reference to it
28 - limit???
29
30 TODO FOR RELEASE:
31 - Test Visual C++ compatibility
32 - Figure out which libraries are required and document in README
33 boost headers, boost::program_options library, boost::graph library,
34 boost::math library (under Windows)
35 - Change email address
36
37 FILES IN SVN HEAD THAT ARE NO LONGER RELEVANT FOR GIT MASTER:
38 diffs.h
39 index.h
40 util.h
41 util.cpp
42 bipgraph.h
43 weightedgraph.h
44 weightedgraph.cpp
45 clustergraph.h
46 clustergraph.cpp
47 varset.h
48 var.h
49 utils/createfg.cpp
50 exceptions.h
51 exceptions.cpp
52 enum.h
53 doxygen.conf
54 example.cpp
55 FILEFORMAT
56 Makefile
57 exact.h
58 exact.cpp
59 alldai.h
60 alldai.cpp
61 properties.h
62 properties.cpp
63 factor.h
64 prob.h
65 factorgraph.h
66 factorgraph.cpp
67 regiongraph.h
68 regiongraph.cpp
69 daialg.h
70 daialg.cpp
71 matlab/
72 dai.cpp
73 dai.m
74 dai_potstrength.cpp
75 dai_potstrength.m
76 dai_readfg.cpp
77 dai_readfg.m
78 dai_writefg.cpp
79 dai_writefg.m
80 matlab.cpp
81 matlab.h
82 utils/
83 fg2dot.cpp
84 fginfo.cpp
85 createfg.cpp
86 viewfg
87 tests/
88 alarm.fg
89 hoi1.fg
90 hoi2.fg
91 hoi3.fg
92 hoi4.fg
93 testfast.fg
94 aliases.conf
95 testall
96 testregression
97 test.cpp
98 mf.h
99 mf.cpp
100
101 FILES IN SVN HEAD THAT ARE STILL RELEVANT:
102 ChangeLog
103 README
104 TODO
105
106 bp.h
107 bp.cpp
108 hak.h
109 hak.cpp
110 jtree.h
111 jtree.cpp
112 lc.h
113 lc.cpp
114 mr.h
115 mr.cpp
116 treeep.h
117 treeep.cpp
118
119
120 FILES IN SVN HEAD RELEVANT FOR A LATER RELEASE:
121 matlab/dai_potstrength.*
122 matlab/dai_bpconvbound.*
123 utils/fg2dot.cpp
124 utils/viewfg
125 tests/aliases.conf
126 tests/testall
127
128 DOCUMENTATION READY:
129 - bipgraph.h, bipgraph.cpp
130 - var.h