Проблема с библиотекой network

При генерации с помощью этой библиотеки автоморфных перестановок обнаруживаются некоторые не состыковки. А именно - функция, решающая задачу изоморфизма nx.algorithms.isomorphism.GraphMatcher() выполняется очень быстро. В то время как генерация автоморфизмов с помощью isomorphisms_iter(), выполняется очень медленно. Хотя в теории всё должно быть с точностью до наоборот, ведь задача изоморфизма графов очень трудоёмкая. Может кто нибудь работал с этой библиотекой, и знает, в чём здесь дело?

Вот примерный код:

PythonВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

создание графа  
g = nx.Graph()
for i, symbol in enumerate(els):  # добавление узлов
  g.add_node(i); g.nodes[i]['label']=symbol
  
for i in range(len(els)):         # добавление рёбер
  for j in range(i):
    if .......................:
      g.add_edge(i, j)
t=time.time()  
 
изоморфизм графов      
gm = nx.algorithms.isomorphism.GraphMatcher(g, g, 
          node_match=lambda arg1, arg2: arg1['label']==arg2['label'])   
print(time.time()-t); t=time.time()
 
генерация перестановок
ism = []   
for i in gm.isomorphisms_iter():
  ism.append([i[j] for j in range(len(i))])
print(time.time()-t)

Добавлено через 19 минут

Вот здесь ещё пишут, что isomorphisms_iter() это всё равно что find_isomorphisms() и ищет изоморфизмы графов.

Возникает резонный вопрос, что тогда делает isomorphism.GraphMatcher() ???