Stop Boost :: Devin_first_Search по определенной глубине, если выполнены определенные критерии

StackOverflow https://stackoverflow.com/questions/4711549

Вопрос

я использую БЛИНА Чтобы хранить мой даг. Вершины имеют штаты. Учитывая изменение состояния в одной из вершин, я хочу обновить зависимые вершины. Это я могу сделать, используя Boost :: Devin_first_search и пользовательский посетитель.

Теперь логика в том, что я не хочу обновлять поисковую вершину и ее зависимость, если вершина находится в определенном состоянии. По сути, я хочу контролировать внедрение вершин в DFS или BFS. Как лучше всего достичь этого в BGL.

Спасибо.

Это было полезно?

Решение

Похоже, что Boost :: Dyze_First_Search не поддерживает это, но базовый Boost :: Dynem_first_visit делает через 2 -ю перегрузку, позволяющую для «функции терминатора» (TerminatorFunc).

Таким образом, вы можете скопировать реализацию BOOST :: DUBINE_FIRST_SEARCH и заменить Detail :: nontruth2 () Параметр, переданный в Boost :: Dynem_first_visit с вашей собственной (нетривиальной) функцией терминатора.

Другие советы

Отсутствие прекращения в глубине первого поиска-самая глупая в библиотеке графиков, которую я когда-либо видел.

Может быть, это может быть выходом: Dynem_first_search на Filtreed_graph. Вы можете каким-то образом отметить остановку-вертекс и в функции фильтров Filtered_graph просто скрыть края инцидента

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top