2011-06-11 77 views
5

我的意思是這樣的:爲了知道能力,我需要知道乘法,並且知道乘法,我需要知道加法。所以要知道AI需要知道B,或者A依賴於B.我只能想到幾條規則:如果A依賴於B,則B不能依賴於A.如果A依賴於B,並且B依賴於C, C不能依賴A.「學習樹」是什麼樣的數據結構?

這種數據結構是否有名字?我不認爲是分層樹。還有,我是否缺少其他規則?如果我想以這樣一種方式來實現人類知識地圖,那麼如果我問我的數據庫我需要知道什麼學習量子物理學,它會給我一個有序的量子物理學依賴的主題列表。當然,這個列表可能有一些並行運行的子列表,因爲A可以依賴於B和C,沒有B依賴於C或C依賴於B.在這種情況下,B將與C並行,因此它們圖形化地可以在A的下方顯示,但都在同一高度。

我很確定有很多其他情況下使用相同類型的結構。

編輯partially ordered set怎麼樣?對不起,不要試圖挑剔,但聽起來像我這樣形式化同樣的事情,沒有任何不必要的圖表引用。

+0

也稱爲[科技樹(http://en.wikipedia.org/wiki/technology_tree)。 – 2012-08-09 20:38:04

回答

9

這種依賴性約束通常由directed acyclic graph或簡稱DAG表示。

DAG是一graph

  • 定向

    ...由於每個邊表示一個依賴和依賴具有方向。如果「A取決於B」您有A→B

  • 非週期性

    ...因爲(如您在您的文章指出),它不希望有循環依賴。

+0

這也可以是一個部分有序的集? – Juan 2011-06-11 14:01:29

+0

是的,DAG定義了一個(嚴格的)部分有序的集合(或換言之,DAG是表示(嚴格的)部分有序集合的一種方式)。 – aioobe 2011-06-11 14:04:54

1

這通常使用graph實施。

2

是:該結構是一個有向無環圖(DAG)。