Parada de impulso :: depth_first_search lo largo de una profundidad particular si se cumple con ciertos criterios

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

Pregunta

Estoy usando BGL para guardar mis DAG. Vértices tienen estados. Teniendo en cuenta un cambio de estado en uno de los vértices Quiero actualizar vértices dependientes. Este soy capaz de hacer uso de impulso :: depth_first_search y un visitante personalizado.

Ahora, la lógica es que no quiero actualizar un vértice y su dependiente buscado si el vértice está en un estado particular. Quiero básicamente al control de en-cola de vértices en cualquiera de DFS o BFS. ¿Cuál es la mejor manera de lograr esto en BGL.

Gracias.

¿Fue útil?

Solución

Parece que impulso :: depth_first_search no soporta esto, pero el impulso subyacente :: depth_first_visit hace, a través de su segundo sobrecarga que permite una "función terminador" (TerminatorFunc).

Por lo que podría copiar la aplicación del impulso :: depth_first_search y sustituir el detalle :: nontruth2 () el parámetro pasado para impulsar :: depth_first_visit con su propia función terminador (no trivial).

Otros consejos

La falta de resolución en profundidad de primera búsqueda -. Es la cosa más estúpida en la biblioteca gráfica que he visto

Puede ser, esto puede ser el camino de salida: depth_first_search en filtered_graph. Puede marcar la parada de vértice de alguna manera, y en función de filtered_graph filtro de bordes simplemente ocultar las aristas incidentes

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top