2012-01-16 4 views
6

Cho một đồ thị, nóiLàm cách nào để tìm tất cả các đỉnh trong biểu đồ có mức độ tối đa?

g = Graph[{x -> a, y -> c, a -> b, 
      b -> c, a -> c, d -> c, 
      a -> d, b -> d}, 
     VertexLabels -> "Name"] 

g

Làm thế nào để tìm thấy tất cả các đỉnh trong một đồ thị với mức độ tối đa nghĩa là một danh sách tất cả các đỉnh có số nhất của các cạnh, và đánh dấu chúng bằng đồ thị?

Trong trường hợp này, nó sẽ là các đỉnh {a,c}.

Trả lời

5

Dưới đây là một cách tiếp cận sử dụng DegreeCentrality:

(* In[41]:= *) max = Pick[VertexList[g], DegreeCentrality[g], Max[DegreeCentrality[g]]] 

(* Out[41]= *) {a, c} 

(* In[42]:= *) HighlightGraph[g, max] 

enter image description here

+0

Tôi nghĩ 'DegreeCentrality' hoạt động tương tự như 'VertexDegree'? +1 cho 'Chọn' tiết kiệm được vài dòng và cũng là neater [hơn cách tiếp cận của tôi] –

3

Dưới đây là những gì tôi đã cố gắng

HighlightGraph[g, 
Part[[email protected], 
    [email protected][[email protected], Max[[email protected]]]]] 

hg

Cùng sử dụng Pick

HighlightGraph[g, Pick[[email protected], [email protected], Max[[email protected]]]] 
+0

giải pháp của bạn trông giống như những gì tôi đã đưa ra: 'HighlightGraph [g, VertexList [g] [[Flatten [Chức vụ [vd, Max [vd = VertexDegree [g]]], 1]]]] 'Bạn có thể tô sáng' VertexInDegree' hoặc 'VertexOutDegree' bằng cách sử dụng các vị từ tương ứng thay cho' VertexDegree'. – DavidC

+0

Có vẻ phù hợp với tôi. – kkm

5

Bạn thường có thể đánh dấu các đỉnh theo mức độ của họ:

HighlightGraph[g, 
Table[Style[VertexList[g][[i]], 
    ColorData["TemperatureMap"][ 
    VertexDegree[g][[i]]/Max[VertexDegree[g]]]], {i, VertexCount[g]}]] 

enter image description here

+0

Chào mừng bạn đến với StackOverflow! Tôi đã xem blog của bạn và kênh vimeo, nó rất lặp lại. :-) Một trang web Mathematica cụ thể mới trong cùng một định dạng như SO sẽ khởi chạy trong một vài ngày. Bạn có thể [cam kết với nó ở đây] (http://area51.stackexchange.com/proposals/37304/mathematica?referrer=23yK9sXkBPQIDM_9uBjtlA2) tại đây để có quyền truy cập sớm. – Szabolcs

+0

Cảm ơn, Szabolcs! Tôi đã cam kết ;-) –