попутно своей разработки алгоритма решил задать вопрос ЛОРу, а потом сравнить.
Предположим, есть 2 графа. В каждом графе есть вершины и связи.
Вершина - [a,b,c...], является идентификатором вершины.
Связь - Вершина(i,...) --- Вешины(j,...), описывает связь 2х вершин через коннекторы i,j.
Сравниваем 2 графа, в которых есть точное соответствие между вершинами. Необходимо выбрать наиболее подходящие связи между этими вершинами.
вот пример, где a~a, b~b, c~c
a-(1)---(2)-b
\
(2)---(1)-c
(2)---
/ \
a-(3)---(1)-b
\
(2)---(1)-c
a --- b через a(3)---(1)b
a --- c через a(2)---(1)c