给定一个DAG,其中每个节点属于一个类别,该图表如何转换为每个类别都有列的表格?这种转换不一定是可逆的,但应该保留关于图的结构的有用信息;并且应该是一种“自然”转换,因为看着图表和表格的人不应该对任何行感到惊讶。它也应该是紧凑的,即具有几排。创建DAG表格表示的算法?
例如,给定具有边a1-> b1,a1-> b2,b1-> c1,b2-> c1(即菱形图)的节点a1,b1,b2,c1的图表,我期望看看下表:
a b c
--------
a1 b1 c1
a1 b2 c1
我已经想过这个问题相当多,但我有想出一种算法,给出了一定的图表直观结果麻烦。考虑具有边a1-> c1,b1-> c1的图a1,b1,c1。我想算法产生这种表:
a b c
--------
a1 b1 c1
但也许它应该产生这个代替:
a b c
--------
a1 c1
a1 b1
我正在寻找创意和见解的问题。如果您认为这会有所帮助,请随意变更以简化或限制问题。
头脑风暴离开!
编辑:
改造应该总是产生相同的行集,但行的顺序并不重要。
使用例如Excel进行排序和过滤时,表格应该表现得很好。这意味着多个节点不能被打包到表格的单个单元中 - 每个单元只有一个节点。
这实际上并不是我在桌上所要找的。我想我认为重要的是表格应该以关系的方式表现良好,因为我希望能够在列上进行排序,并使用过滤器进行过滤。自动过滤器在Excel中。这种表示不符合该目标。还是)感谢你的建议! – rattigan 2009-11-20 20:33:50