Triangle relationships पहचानना
अब जबकि आपने cliques के बारे में सीखा है, तो नेटवर्क में स्ट्रक्चर ढूँढने के लिए जो आपने सीखा है उसका इस्तेमाल करने का समय है. सबसे पहले आप triangles पर जाएँगे. Triangles दिलचस्प हैं क्योंकि वे सबसे सरल complex clique हैं. आइए कुछ फंक्शन लिखें; ये अभ्यास आपको नेटवर्क एल्गोरिदम के पीछे की बुनियादी लॉजिक से गुजारेंगे.
Twitter नेटवर्क में, हर node के साथ एक 'occupation' लेबल जुड़ा है, जिसमें Twitter यूज़र के काम को celebrity, politician और scientist में बाँटा गया है. Triangle-finding एल्गोरिदम का एक संभावित उपयोग यह जानना है कि क्या समान occupations वाले यूज़र एक-दूसरे के साथ clique में होने की अधिक संभावना रखते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में नेटवर्क विश्लेषण का परिचय
अभ्यास निर्देश
itertoolsसेcombinationsइम्पोर्ट करें.- एक फंक्शन
is_in_triangle()लिखें जिसके दो पैरामीटर हों —Gऔरn— और जो यह जाँचता हो कि दिया गया node किसी triangle relationship में है या नहीं.combinations(iterable, n)iterableसे साइज़nकी combinations लौटाता है. यह यहाँ उपयोगी होगा, क्योंकि आपकोlist(G.neighbors(n))से साइज़2की combinations चाहिए.- दो nodes के बीच edge मौजूद है या नहीं, यह जाँचने के लिए
.has_edge(node1, node2)मेथड का उपयोग करें. अगर edge मौजूद है, तो दिया गया node triangle relationship में है, और आपकोTrueरिटर्न करना चाहिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
____
# Define is_in_triangle()
def is_in_triangle(G, n):
"""
Checks whether a node `n` in graph `G` is in a triangle relationship or not.
Returns a boolean.
"""
in_triangle = False
# Iterate over all possible triangle relationship combinations
for n1, n2 in ____:
# Check if an edge exists between n1 and n2
if ____:
in_triangle = ____
break
return in_triangle