У меня есть циклический направленный граф. Начиная с листьев, я хочу распространять данные, прикрепленные к каждому узлу вниз по течению, ко всем узлам, доступным с этого узла. В частности, мне нужно продолжать толкать данные вокруг любых циклов, которые достигаются до тех пор, пока циклы не стабилизируются.Обход циклического направленного графика
Я полностью уверен, что это проблема обхода графика на складе. Тем не менее, у меня довольно сложная задача найти подходящий алгоритм. Я думаю, что мне не хватает нескольких ключевых слов для поиска.
Прежде чем я попытаюсь написать свой собственный полуподобный алгоритм O (n^3), может ли кто-нибудь указать мне на правильное решение? А что эта конкретная проблема называется?
Это, вероятно, какая-то проблема для всей передачи (или для всех разброса). Можете помочь, если вы выполните поиск по этим ключевым словам. – PeterK
Возможно, все это ясно для всех остальных, но что вы имеете в виду, начиная с листьев и распространяя данные вниз по течению? Разве лист не был бы узлом без узлов вниз по течению от него? Кроме того, что означает, что цикл стабилизируется? – ESRogs
Я думаю, что то, что я называю «листья», возможно, будет более четко описано как «корни», хотя, учитывая, что это циклический граф, термин «инферент» особенно интуитивно понятен - я имею в виду узел без родителей. Нижний поток находится в направлении детей. Поскольку обход цикла может отображать больше информации, которая может потребоваться для распространения на уже посещенные узлы, некоторые узлы могут нуждаться в посещении более одного раза, что означает, что решение о прекращении работы может быть сложным; следовательно, стабилизации. На самом деле, оказывается, гораздо более простой способ сделать это - см. Ответ. –