Хорошо понимаемая проблема в теории графов - вычислить кратчайшее расстояние между двумя вершинами.
Что я хочу сделать, это найти кратчайшее расстояние от данной вершины до ближайшей вершины, которая имеет определенное значение свойства (точная вершина, которой это является, неизвестна).
Например, найдите кратчайшее расстояние от V(1)
до ближайшей вершины V(?)
, где V(?).property(color)==red
.
Подход, который я использовал для этого ранее, состоит в том, чтобы итеративно выйти из фокальной вершины, спрашивая у каждого невидимого соседа по пути, есть ли у него color=red
.
Я также ограничил верхнее число шагов наружу для некоторой дополнительной эффективности, то есть ограничил поиск k ступенчатой окрестностью .
- Есть ли лучший способ решить эту проблему?
- Как можно кодировать это, используя Gremlin ? (Я кодирую в основном на Python и не знаю, как перенести алгоритм через)