給定一個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