Как мы можем уменьшить размер графа, созданного Максимальной кликой, и удалить узлы определенных клик?

Я использую библиотеку networkx—find_cliques для поиска максимальных клик в графе. Я хочу уменьшить размер этого графа на основе максимальных клик. Вот код:

      from torch_geometric.utils.convert                                                 
import to_networkx from torch_geometric.data import Data                           
import networkx as nx                                                           
edge_list = torch.tensor([
                     [0, 1, 1, 2, 2, 2, 3, 4, 5, 6, 6, 6, 7, 7, 8 ], # Source Nodes
                     [1, 2, 3, 4, 5, 3, 9, 5, 6, 7, 8, 9, 8, 9, 9 ]  # Target Nodes
                    ], dtype=torch.long)                                                  
node_features = torch.tensor([
                        [-8, 1, 5, 8, 2, -3], # Features of Node 0
                        [-1, 0, 2, -3, 0, 1], # Features of Node 1
                        [1, -1, 0, -1, 2, 1], # Features of Node 2
                        [0, 1, 4, -2, 3, 4], # Features of Node 3
                        ],dtype=torch.long)   
data = Data(x=node_features, edge_index=edge_list, edge_attr=edge_weight)      
G_directed = to_networkx(data)                                               
G_undirected = G_directed.to_undirected()                                     
no_cliques= nx.find_cliques(G, nodes=None)                              
print(No_cliques)                                                                    
List of Maximal Cliques = {1,[1,2], 2,[2, 3, 4], 3,[4, 5, 6], 4,[6, 7], 5, [7, 8, 9, 10], 6, [10,3]}

На следующем шаге мы уменьшаем размер исходного графа в огрубленном графе, поскольку мы рассматриваем одну клику как один узел и соединяем ребро на основе этого правила, соединяя две клики, если они не пересекаются. Я хочу удалить такую ​​клику, узел которой уже появился в других кликах. В приведенном выше примере узлы клики 6 уже назначены в кликах № 2 и 5. Поэтому в новом графе эту клику следует удалить из списка клик. Для лучшего понимания выкладываю фото.

иерархия графа в виде огрубленного графа на каждом уровне

Я хочу сделать этот тип иерархии графов на основе максимальной клики. Кто-нибудь знает об этом? Как мне это сделать?

0 ответов

Другие вопросы по тегам