Я сейчас борюсь с проблемой. У меня есть проблема, которая связана с сопоставлением и теорией графов. Я дал текстовые данные, которые являются отношениями вершин. Мне нужно найти количество треугольников в этом графике в соответствии с данными текстовых данных. Я приложил поясняющее изображение.
Я пытался добавить веса, но это не сработало. Я пытался найти их, используя грубую силу. Вот мой код:
path = r"triangles.txt"
file = open(path,"r+")
f1 = file.readlines()
splitted_list = []
a = []
b = []
c = []
d = []
e = []
f = []
g = []
h = []
j = []
k = []
for i in f1:
splitted_list.append(i.strip().split("-"))
elements = [a,b,c,d,e,f,g,h,j,k]
values = ["a","b","c","d","e","f","g","h","j","k"]
for i in range(10):
for t in values:
for j in splitted_list:
for k in range(len(j)):
if t in j:
if j[k] not in elements[i] and j[k] !=t:
elements[i].append(j[k])
#expected output
# a = ["b","c","f","j","d","g","k","e"]
# b = ["a","c","d","e","f","h","k","j"]
# c = ["b","f","j","a","d","e"]
# d = ["a","g","k","e","c","b"]
# e = ["a","b","c","d","g","h","j","k"]
# f = ["b","h","k","j","c","a"]
# g = ["d","a","k","e","h","j"]
# h = ["g","f","b","e","k","j"]
# j = ["b","f","c","a","h","g","e","k"]
# k = ["j","e","g","d","a","h","f","b"]
#output
a =['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k']
#all the elements are also have the same value
#a=b=c=d=e=f=g=h=j=k
Другая проблема состоит в том, что я должен сделать, чтобы сосчитать треугольники? Я думал, что должен использовать count, чтобы получить каждое отношение между тремя узлами, что также является грубой силой. У вас есть простой способ для этого?
Я приложил рукопись о подсчете треугольников на больших графиках, если это поможет кому-нибудь разобраться в этой проблеме. https://i11www.iti.kit.edu/extra/publications/sw-fclt-05_t.pdf
Извините за эту долгую проблему. Надеюсь, у вас есть время ответить. Спасибо.