Как оценить, являются ли два трехмерных симметричных графика одинаковыми в питоне? - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть два 3D-графика, которые содержат координаты точек на 3D-графике и связи между точками. Теперь я хочу оценить, являются ли они одинаковыми. Так называемые «одинаковые» означают, что они имеют одинаковую связь и одинаковое расстояние между разными точками в разных координатных пространствах.

Сначала я создал двухмерные графы с данными соединения, а затем использовал изоморфный алгоритм в networkx, чтобы определить, являются ли эти два графа изоморфными. Если 2D-графики являются изоморфизмом, я использую данные координат для вычисления расстояния между двумя точками на графике, чтобы определить, совпадают ли 3D-графики.

Теперь возникает проблема: я обнаружил, что, когда трехмерные графики симметричны относительно плоскости после поворота и перевода, алгоритм считает, что эти два графика остаются одинаковыми. Что я должен сделать, чтобы справиться с этой ситуацией?

Вот несколько примеров данных:

 Graph1
 A                -3.64950879    3.09461182    0.00000000
 B                -3.29285437    2.08580182    0.00000000
 C                -3.01283111    3.99498616    1.55950876
 D                -5.40950879    3.09463351    0.00000000
 E                -3.19950100    3.73100206   -1.10227059

connections:A-B A-C A-D A-E


Graph2
 A                -3.35227281    2.97727268    0.00000000
 B                -4.42227281    2.97728587    0.00000000
 D                -2.76559599    3.80693700   -1.43703425
 C                -2.71562799    1.17649969    0.00000000
 E                -2.90226502    3.61366292    1.10227059

connections:A-B A-C A-D A-E

(A \ B \ C \ D \ E - точки с разными метками)

Graph1 и Graph2 в данных примера зеркально симметричны, и они должны быть разными. Однако, поскольку EB, AC, AD, AE и другие точки на двух фигурах имеют одинаковое евклидово расстояние, моя программа оценивает два графика быть таким же. (Я изменил свое описание)

...