簡體   English   中英

在不使用DFS的情況下確定圖形是否具有循環

[英]Determining if a graph has a cycle without using DFS

我在考試中遇到以下問題之一:

使用Kahn算法的地標排序要求該圖為DAG(有向無環圖)。 如果不先使用DFS / BFS,如何確定圖形是否不包含循環?

我想回答這個問題太久了,我感到困惑。 誰能給我指出一種算法,該算法確定一個圖形沒有使用DFS的循環,還是我應該向老師講課?

當且僅當在卡恩算法的某個時刻沒有源可供選擇(並且其余圖形仍然為空)時,存在一個循環

證明:
方向1 <--

如果存在循環,則將其設為v1->v2->v3->vk->v1
在算法的每個步驟中, v1,v2,...,vk都不是源-通過歸納證明您從未刪除任何這些邊來通過歸納證明

方向2- -->

如果在卡恩算法的某個時刻,雖然算法還沒有完成,但沒有可供選擇的源,那么每個節點(在提醒圖中)都會有一個輸入邊。
假設沒有循環,並讓v1->v2->..->vk是提醒圖中最長的簡單路徑。
但是, v1有一個輸入邊,因此存在一些節點v0 ,因此v0->v1->...->vk也是一條路徑,並且由於我們假設沒有循環,所以它也是一條簡單的路徑。
與v1- v1->..->vk最大值矛盾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM