diff --git a/gtsam/inference/doc/BayesTree.ipynb b/gtsam/inference/doc/BayesTree.ipynb
index 5364adc0a..a9452f4d4 100644
--- a/gtsam/inference/doc/BayesTree.ipynb
+++ b/gtsam/inference/doc/BayesTree.ipynb
@@ -57,7 +57,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 9,
"metadata": {
"id": "bayestree_import_code"
},
@@ -88,7 +88,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 10,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
@@ -101,74 +101,165 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Original Factor Graph:\n",
- "\n",
- "size: 7\n",
- "factor 0: \n",
- " A[x0] = [\n",
- "\t-1\n",
- "]\n",
- " b = [ 0 ]\n",
- " Noise model: unit (1) \n",
- "factor 1: \n",
- " A[x0] = [\n",
- "\t-1\n",
- "]\n",
- " A[x1] = [\n",
- "\t1\n",
- "]\n",
- " b = [ 0 ]\n",
- " Noise model: unit (1) \n",
- "factor 2: \n",
- " A[x1] = [\n",
- "\t-1\n",
- "]\n",
- " A[x2] = [\n",
- "\t1\n",
- "]\n",
- " b = [ 0 ]\n",
- " Noise model: unit (1) \n",
- "factor 3: \n",
- " A[l1] = [\n",
- "\t-1\n",
- "]\n",
- " A[x0] = [\n",
- "\t1\n",
- "]\n",
- " b = [ 0 ]\n",
- " Noise model: unit (1) \n",
- "factor 4: \n",
- " A[l1] = [\n",
- "\t-1\n",
- "]\n",
- " A[x1] = [\n",
- "\t1\n",
- "]\n",
- " b = [ 0 ]\n",
- " Noise model: unit (1) \n",
- "factor 5: \n",
- " A[l2] = [\n",
- "\t-1\n",
- "]\n",
- " A[x1] = [\n",
- "\t1\n",
- "]\n",
- " b = [ 0 ]\n",
- " Noise model: unit (1) \n",
- "factor 6: \n",
- " A[l2] = [\n",
- "\t-1\n",
- "]\n",
- " A[x2] = [\n",
- "\t1\n",
- "]\n",
- " b = [ 0 ]\n",
- " Noise model: unit (1) \n"
+ "Original Factor Graph:\n"
]
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
}
],
"source": [
- "# Create a simple Gaussian Factor Graph (more complex this time)\n",
+ "# Create a simple Gaussian Factor Graph\n",
"graph = GaussianFactorGraph()\n",
"model = gtsam.noiseModel.Isotropic.Sigma(1, 1.0)\n",
"graph.add(X(0), -np.eye(1), np.zeros(1), model) # Prior on x0\n",
@@ -180,19 +271,18 @@
"graph.add(L(2), -np.eye(1), X(2), np.eye(1), np.zeros(1), model) # l2 -> x2 (measurement)\n",
"\n",
"print(\"Original Factor Graph:\")\n",
- "graph.print()"
+ "display(graphviz.Source(graph.dot()))"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "\n",
"Resulting BayesTree:\n",
": cliques: 2, variables: 5\n",
"- p(x1 l2 x2 )\n",
@@ -213,8 +303,52 @@
" [ -0.948683 ]\n",
" d = [ 0 0 ]\n",
" logNormalizationConstant: -1.03316\n",
- " No noise model\n"
+ " No noise model\n",
+ "\n",
+ "Visualization:\n"
]
+ },
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
}
],
"source": [
@@ -223,8 +357,10 @@
"# Note: Multifrontal typically yields multiple roots if graph is disconnected\n",
"bayes_tree = graph.eliminateMultifrontal(ordering)\n",
"\n",
- "print(\"\\nResulting BayesTree:\")\n",
- "bayes_tree.print()"
+ "print(\"Resulting BayesTree:\")\n",
+ "bayes_tree.print()\n",
+ "print(\"\\nVisualization:\")\n",
+ "display(graphviz.Source(bayes_tree.dot()))"
]
},
{
@@ -328,76 +464,6 @@
"print(\"\\nJoint Marginal Factor Graph on (x0, x2):\")\n",
"joint_x0_x2.print()"
]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "bayestree_viz_md"
- },
- "source": [
- "## Visualization\n",
- "\n",
- "Bayes trees can be visualized using Graphviz."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "bayestree_dot_code",
- "outputId": "789abcde-f012-3456-789a-bcdef0123456"
- },
- "outputs": [
- {
- "data": {
- "image/svg+xml": [
- "\n",
- "\n",
- "\n",
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "graphviz.Source(bayes_tree.dot())"
- ]
}
],
"metadata": {