我正在Haskell的树上使用多种搜索策略。我想对它们进行可视化处理,并为其进行搜索动画。到目前为止,我发现最好的是我可以通过编写DOT文件(例如在Lisp之地)生成的graphviz图像,但是我怀疑这是最好的方法。我的树可能会变得很大,所以我不想在程序中输入每个节点的位置,我希望它们能自动正确放置。

我也对Gephi进行了查看,但是不确定是否可以在其中输入数据。

我的Tree数据类型也是非常基本的:data Tree a = Leaf a | Branch (Tree a) (Tree a)

简而言之,我正在寻找一种在其中的搜索策略中实现树的可视化和动画的方法。我并不一定要寻找以Haskell为中心的解决方案,但这可能很棒。能够以gif等标准格式输出图像/动画也将是一大优势。

最佳答案

我将扩大我的评论:
我尚未调查Ubigraph的定价政策,但您可以从其网站下载免费版本(“基本”吗?)。然后,您可以安装vacuum-ubigraph软件包(在GHC 7.0下,似乎出现了构建失败的HackageDB,但是我已经设法在7.0.2下正确地安装了它)。完成后,您可以直接从ghci启动ubigraph_server并开始使用数据结构“馈送”它:

import System.Vacuum.Ubigraph

data Tree a = Leaf a | Branch (Tree a) (Tree a)
data Root a = Root a

tree =
    Root
    (Branch
     (Branch
      (Leaf "A")
      (Leaf "B"))
     (Leaf "C"))


键入view tree,您将获得类似于以下内容的信息:



您可以放大/缩小并旋转它。不确定它的实用性(它显示了整个Haskell对象图-注意共享[]),但是有很多设置可以使用,因此您绝对可以使它看起来更好。似乎也支持动画。

07-24 09:49
查看更多