樹同構判定算法

樹同構判定

樹同構判定

圖同構與樹同構

同的同構問題還沒有有效算法。

樹的同構本質上尋找不同樹之間的雙射關係。

通過對樹編碼,將樹的同構問題轉化爲編碼比較問題。

有根樹的同構嚴格強於圖同構關係。

如上,圖同構的兩張圖轉化成樹,如果選取的根不同,則樹不同構。
在這裏插入圖片描述

如何選取根?

概念定義:

  1. dis(v1, v2)表示v1到v2點的距離

  2. ex(v), 偏心率, ex(v)保存樹中距離v最遠的點的距離。

    ex(v1) = max(dis(v1, vk)) , k = 1 → n

  3. C(T), 成爲中心,表示圖中偏心率最小的點集合。

    一種重要性質

    對於一個樹來說(對於圖不成立),他的中心最多含有兩個點,且若含有兩個點,這兩個點必定相鄰。

所以,尋找一個樹的中心,只需要迭代地刪掉葉子節點,最後剩下的單個節點或者兩個節點就是樹的中心。

樹的編碼(有根樹的同構判定)

將樹轉換字符串,但是通過比較字符串的字典序來比較兩個編碼的大小關係。

字典序比較規則:
在這裏插入圖片描述
編碼方法
在這裏插入圖片描述

採用如上編碼方案,兩個樹只有編碼相同的時候纔會同構。

reference

https://zh.coursera.org/lecture/discrete-mathematics-ch/you-gen-shu-tong-gou-de-pan-ding-NAxTd

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章