<p>My only background on this subject is a course I took as a grad student, so take my answer with a grain of salt:</p>

<p>The reason that some methods transform the DAG to a tree because some algorithms work on trees but do not work on graphs with cycles. For example, belief propogation is guaranteed to converge on a tree after every node received two messages. On general graphs, on the other hand, no general convergence theorem is known, and we know that convergence occurs only in some special cases. Intuitively, the reason is that on a general graph, a message that goes through a cycle can loop in it indefinitely, each time changing the information stored at the nodes.</p>

<p>Regarding under what circumstances it is recommended to transform the graph into a tree: In the process of transforming the graph into a tree, every node of the new tree is identified with a set of nodes of the original graph. The size of the maximal set with which a node is identified (in the best decomposition) is called the <i>tree-width</i> of the graph. Now, the complexity of belief propagation, as well as other algorithms, is exponential in the tree-width, so you want to transform the graph to a tree only if the tree-width is sufficiently small.</p>

<p>Unfortuantely, it is $NP$-complete to compute the tree-width of a graph exactly, but there are some approximation algorithms. You can read more about it in Shiva Kintali's blog:
<a href="http://kintali.wordpress.com/2010/01/28/approximating-treewidth/" rel="nofollow">http://kintali.wordpress.com/2010/01/28/approximating-treewidth/</a></p>

CC BY-SA 3.0
2013-12-28T13:02:58.807Z
Question specifically stated the underlying graph is DAG not general graph. So loops are not important here. But in your answer you totally ignored original part of question. Your answer is not wrong but it's not an answer (or attempt to answer) for this question.
Saeed
CC BY-SA 3.0
2013-12-28T13:10:50.860Z
Also joint trees are not a real tree to prevent any loop . Its just tree decomposition of graph and may have many loops in bags in general.
Saeed
CC BY-SA 3.0
2013-12-28T06:47:41.907Z
2013-12-28T06:47:41.907Z
Or Meir
<p>I am wondering why some methods transform the underlying DAG-based graphical model (Bayesian Networks for example) to a joint tree$^1$? What are the advantages? </p>

<p>I believe it's for computational purposes. If that's the case under what circumstances it is not recommended to transform the underlying DAG to jointtrees?</p>

<p>Speaking about graphical models in general (whether they are probabilistic or not), is there some guidelines when to transform them i.e. decompose them?</p>

<hr>

<p><sub>$^1$ Also known as jointree, junction tree, tree decomposition.  </sub></p>

<graph-theory><graph-algorithms>
Why use joint trees in Graphical Models?
seteropere
# Why use joint trees in Graphical Models?

(Asked by: username_0 on 2013-12-26)

I am wondering why some methods transform the underlying DAG-based graphical model (Bayesian Networks for example) to a joint tree$^1$? What are the advantages?

I believe it's for computational purposes. If that's the case under what circumstances it is not recommended to transform the underlying DAG to jointtrees?

Speaking about graphical models in general (whether they are probabilistic or not), is there some guidelines when to transform them i.e. decompose them?

---

$^1$ Also known as jointree, junction tree, tree decomposition.

**Tags:** graph-theory, graph-algorithms


---

## 1 answers

### Answer by username_1 on 2013-12-28. Score: 1

My only background on this subject is a course I took as a grad student, so take my answer with a grain of salt:

The reason that some methods transform the DAG to a tree because some algorithms work on trees but do not work on graphs with cycles. For example, belief propogation is guaranteed to converge on a tree after every node received two messages. On general graphs, on the other hand, no general convergence theorem is known, and we know that convergence occurs only in some special cases. Intuitively, the reason is that on a general graph, a message that goes through a cycle can loop in it indefinitely, each time changing the information stored at the nodes.

Regarding under what circumstances it is recommended to transform the graph into a tree: In the process of transforming the graph into a tree, every node of the new tree is identified with a set of nodes of the original graph. The size of the maximal set with which a node is identified (in the best decomposition) is called the *tree-width* of the graph. Now, the complexity of belief propagation, as well as other algorithms, is exponential in the tree-width, so you want to transform the graph to a tree only if the tree-width is sufficiently small.

Unfortuantely, it is $NP$-complete to compute the tree-width of a graph exactly, but there are some approximation algorithms. You can read more about it in Shiva Kintali's blog:
<http://kintali.wordpress.com/2010/01/28/approximating-treewidth/>

> **Comments:**
> **username_2**: Question specifically stated the underlying graph is DAG not general graph. So loops are not important here. But in your answer you totally ignored original part of question. Your answer is not wrong but it's not an answer (or attempt to answer) for this question.  
> **username_2**: Also joint trees are not a real tree to prevent any loop . Its just tree decomposition of graph and may have many loops in bags in general.  

---

