Ненаправленный обход Boost Graph направленного графа - PullRequest
2 голосов
/ 18 апреля 2011

Я использую Графики Повышения.Края моего графа имеют направленное значение.Вот почему я выбрал ориентированный граф.Однако когда я пересекаю график, я обычно хочу сделать это, игнорируя направление.Однако я не нашел решения для обхода моих графиков, например, используя встроенный поиск в глубину.

Есть ли решение для этого, которое не включает в себя создание копии всего графика?

Если нет: я не уверен, действительно ли мой график направлен природой.Может быть, я должен использовать неориентированный граф и добавить некоторые свойства "direction"?Хотя я не уверен, как это сделать (простое присоединение исходного / целевого vertex_descriptors к краю, очевидно, сломается, как только изменится график).Есть ли возможность сделать это?Имеет ли это смысл вообще?

Спасибо

1 Ответ

0 голосов
/ 18 апреля 2011

Я понятия не имею о реализации Boost Graphs, но я вижу два варианта в вашем случае.

  1. Если ваши графы не большие, вы могли бы сначала создать неориентированный граф, вычислить «что-то», а затем создать направленную копию. Это должно занять O(n) времени и не повлияет на общую производительность.
  2. Используйте неориентированный граф и добавьте некоторую информацию о направлении к ребру, например указатель на исходную вершину. Это решение может сделать ваши алгоритмы немного сложнее, но вы избежите любого копирования данных и получите некоторую производительность на больших графиках.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...