मेरे पास SQL ​​सर्वर में दो टेबल हैं, यानी
एक टेबल GraphNodes इस प्रकार है:

---------------------------------------------------------
id | Node_ID | Node            |  Node_Label | Node_Type
---------------------------------------------------------
1    677       Nuno Vasconcelos   Author       1
2    1359      Peng Shi           Author       1
3    6242      Z. Q. Shi          Author       1
4    8318      Kiyoung Choi       Author       1
5    12405     Johan A. K.        Author       1
6    26615     Tzung-Pei Hong     Author       1
7    30559     Luca Benini        Author       1  
...  
...  

और अन्य तालिका GraphEdges इस प्रकार है:

-----------------------------------------------------------------------------------------
id | Source_Node | Source_Node_Type | Target_Node | Target_Node_Type | Year |  Edge_Type
-----------------------------------------------------------------------------------------
1    1             1                  10965         2                  2005    1
2    1             1                  10179         2                  2007    1
3    1             1                  10965         2                  2007    1
4    1             1                  19741         2                  2007    1
5    1             1                  10965         2                  2009    1
6    1             1                  4816          2                  2011    1
7    1             1                  5155          2                  2011    1  
...  
...

मेरे पास दो टेबल भी हैं यानी GraphNodeTypes इस प्रकार हैं:

-------------------------
id | Node    | Node_Type
-------------------------
1    Author    1
2    CoAuthor  2
3    Venue     3
4    Paper     4  

और GraphEdgeTypes के रूप में:

-------------------------------
id | Edge          | Edge_Type
-------------------------------
1    AuthorCoAuthor  1
2    CoAuthorVenue   2
3    AuthorVenue     3
4    PaperVenue      4
5    AuthorPaper     5
6    CoAuthorPaper   6  

अब, मैं इस ग्राफ के लिए दो प्रकार के क्लस्टरिंग गुणांक की गणना करना चाहता हूं:
यदि N(V) नोड V के लिंक b/w पड़ोसियों का # है और K(V) नोड V की डिग्री है, तो,

Local Clustering Coefficient(V) = 2 * N(V)/K(V) [K(V) - 1]  

तथा

Global Clustering Coefficient = 3 * # of Triangles / # of connected Triplets of V  

सवाल यह है कि, मैं नोड की डिग्री की गणना कैसे कर सकता हूं? एसक्यूएल सर्वर या सी # प्रोग्रामिंग में यह संभव है। और कृपया स्थानीय और वैश्विक सीसी की गणना के लिए संकेत भी सुझाएं।

धन्यवाद!

0
maliks 23 फरवरी 2016, 09:22

2 जवाब

सबसे बढ़िया उत्तर

नोड की डिग्री "गणना" नहीं है। यह केवल इस नोड के किनारों की संख्या है।

जब आप इसे SQL में करने का प्रयास कर सकते हैं, तो प्रदर्शन औसत दर्जे का होगा। इस प्रकार का विश्लेषण आमतौर पर विशेष डेटाबेस में और यदि संभव हो तो स्मृति में किया जाता है।

0
Has QUIT--Anony-Mousse 23 फरवरी 2016, 10:39

प्रत्येक कोने की डिग्री को इससे जुड़े किनारों की संख्या के रूप में गिनें। इस मामले में COUNT(source_node) और GROUP BY(source_node) का उपयोग करना सहायक होगा।

एन (वी) को खोजने के लिए, आप किनारे की तालिका को अपने साथ जोड़ सकते हैं और फिर परिणामी तालिका और किनारे की तालिका के बीच प्रतिच्छेदन ले सकते हैं। परिणाम से, प्रत्येक शीर्ष के लिए COUNT () लें।

0
user3503711 3 पद 2018, 21:43