첫째, 어떤 알고리즘이 호출되는지, 우선적 인 문제인지는 확실하지 않습니다. 질문의 첫 번째 부분은이 알고리즘이 무엇입니까? [[1, 2, 4, 6], [3], [5], [7], [8, 9, 10]]
비순환 지향 그래프가 주어지면 "동일한 레벨에있는"노드 컬렉션 모음을 반환합니까?
편집 : : 저를 추가하자 기본적으로
내가 노드 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
과 가장자리이에서 ([1,3],[2,3],[3,5],[4,5],[5,7],[6,7],[7,8],[7,9],[7,10])
는 다음과 같이 컬렉션을받을 수 있는지 궁금 해요를 삽입하는에 DiGraph()
이 도움이된다면 약간의 제약. 이 -이이 보장, 더 사이클이 없습니다 - 아무도 그래프에 대한 포인트를 시작하지 있습니다
난 할 노력하고있어, 자신의 처리를 병렬화 할 수 있도록 동일한 수준에서 노드를 수집하는 것입니다하지만, 외부 컬렉션 내에서 처리는 연속적입니다.
EDIT2 : "레벨"을 표현하는 가장 쉬운 방법은 의 가장 깊은 전임자인데, 전임자와 동일한 깊이를 가진 모든 노드입니다. 따라서 위의 목록에서 첫 번째 항목은 가장 깊은 선행자로 0을 갖고 두 번째 노드는 1을 가지며 세 번째 노드는 두 개를 갖는 노드입니다. 각 목록 내에서 형제 인의 순서는 병행 처리되므로 관련이 없습니다.
* BFS *, Breadth First Search? https://en.wikipedia.org/wiki/Breadth-first_search –
당신이 요구하는 것은 그래프 구조에 대해 여러 가지 가정을하는 것처럼 보입니다 (예를 들어 어떤 노드에서 어떤 노드로든 하나의 경로 만이 존재한다는 것) 다른 노드). '[1, 2] '엣지를 그래프에 추가하면 콜렉션이 어떻게 되겠습니까? – BrenBarn
질문의 의도를보다 정확하게 반영하기 위해 제목을 수정했습니다. 희망을 나는 오해하지 않았다 ... – holdenweb