Я использую Boost Graph, чтобы попытаться понять некоторые графики зависимостей, которые я создал в формате Graphviz Dot.
К сожалению, я не очень-то разбираюсь в теории графов, поэтому мне сложно найти то, что я хочу знать в терминах теории линг-теории.
Из графа направленной зависимости с ~ 150 вершинами я хотел бы "увеличить масштаб" на одной определенной вершине V и построить подграф, содержащий V, все его входящие ребра и их входящие ребра, все его исходящие ребра и их исходящие ребра, вроде как самый длинный путь через V.
Эти графики зависимостей довольно запутаны, поэтому я хотел бы удалить беспорядок, чтобы сделать его более ясным, что может повлиять на рассматриваемую вершину.
Например, данный;
g
|
v
a -> b -> c -> d
| | |
v v |
e f <-------+
если я должен был запустить алгоритм на c
, я думаю, что хочу:
g
|
v
a -> b -> c -> d -> f
Не уверен, что нужно также включить b → f... Я думаю об этом, так как все вершины "до" c должны иметь встроенные ребра, а все вершины "после" c должны иметь свои внешние края но мне кажется, что это потеряло бы некоторую информацию.
Похоже, что должен быть алгоритм, который делает это (или что-то более разумное, не уверен, что я пытаюсь сделать что-то глупое, cf b- > f выше), но я не уверен, с чего начать искать,
Спасибо!