Проверьте, была ли повторена одна вершина в пути / обходе - PullRequest
0 голосов
/ 08 февраля 2019

В настоящее время я пересекаю график, на котором мне нужно избегать круговых обходов.Однако некоторые вершины могут содержать соседа, который содержит некоторые метаданные, которые я должен посетить.

       [NodeB-Metadata]
               ^
               |
[NodeA] --> [NodeB] --> [NodeC]

В настоящее время в моем обходе я буду хранить пройденные вершины .as ("currentNode") во время повторного шага.Когда ребро к узлу метаданных (необязательно) обнаружено, я продолжу свой обход, выбрав вершины, где «currentNode» принадлежит набору inVertices.Я использую simplePath (), чтобы убедиться в отсутствии циклических обходов.

Я не проводил никакого анализа данных, но я полагаю, что каждый раз, когда я обнаруживаю вершину метаданных, стоит проводить поиск новой вершины.(Также код трудно читать / рассуждать о).Я хотел бы вернуться к исходному узлу и продолжить поиск, но мой путь станет циклическим.Есть ли способ проверить, была ли пройдена одна вершина (или одно ребро) в текущем пути?Меня интересует только то, что текущая вершина не была пройдена ранее в начале моего повтора ...

PS: Мой обход выполняется на InMemory / TinkerGraph / Subgraph, созданном из предыдущего обхода графа-DB, так что я мог бы потенциально создать пользовательский шаг?Однако я использую Java (не Groovy) и не знаком с этим.

...