簡體   English   中英

求圖直徑的近似算法

[英]Approximation algorithem for finding diameter of a graph

給定圖G =( V,E ,無向且無權,我們希望找到圖G的直徑D的值。 顯示如何在運行時間O(| V | + | E |)中找到X等於D <= 2 * X的值X。

現在,要找到圖形的實際直徑,您只需要運行BFS兩次,分別從任意節點然后從最擴展的節點運行一次。 但是在這個問題上,我需要找到直徑的近似值。 我的猜測是運行一次BFS,然后選擇最大距離作為直徑。 可能發生兩種極端情況。

第一個發生在所選節點位於圖G的外圍時。 擴展節點將位於周長的另一側,因此X等於D。

第二種情況將在所選節點位於G的中心且X等於D的一半時發生(在這種情況下, X將是G的無線電)。

這是我對這個問題的回答。 但是我得到了15/25。 是否有我沒有處理過的極端情況,或者從一開始就錯了?

先感謝您。

60%的人似乎對以前的算法TA有點苛刻-您提供了正確的算法並確定了兩個不等式的極端情況。 不過,我同意您需要提供正式證明。 如果您的評分員特別嚴格,那么您可能還需要說一兩個字才能說明算法為何是線性時間。

這是正式證明的開始。 令d(v,w)為頂點v和w之間的路徑的最小長度。 直徑定義為D = max_ {v,w} d(v,w)。 您的算法選擇一個任意頂點s,並輸出X = max_ {w} d(s,w)。

您需要做一點代數運算以顯示兩個事實:X <= D和D <= 2X。您將需要三角形不等式d(a,b)+ d(b,c)> = d (a,c),它適用於所有頂點a,b,c,以及對稱性d(a,b)= d(b,a)。

暫無
暫無

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

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