2016-09-08 1 views

답변

0

귀하의 질문은 다소 모호합니다. 그래프를 방향성이 있거나 방향성이없는 그래프로 모델링하고 있습니까? 또한 '모든'주기에 대한 핸들을 원한다면 '최소'주기라는 개념이 필요할 것입니다. (그렇지 않으면, A → B → C → A, A → B → C → A → B → C → A, A → B → C → A- > B-> C-> A-> B-> C-> A는 모두 그래프의 사이클입니다.)

유용한 코드로서 GraphPartitioner을 확인하는 것이 좋습니다. 그래프가 비 연속적인 성분으로 구성되어있는 경우,이 클래스는 큰 그래프를 흩어진 부분으로 나눕니다.

각 조각에 대해 CycleDetector (또는 직접적인 버전 DirectedCycleDetector)를 실행하여 연결된 하위 그래프에서 수행 할 작업이 있는지 확인할 수 있습니다.

이 질문은 관련성이 있습니다 : Finding all cycles in undirected graphs.

+0

답변 해 주셔서 감사합니다. 진실은 내 문제에 대해 조금 애매했다. 주기 탐지기에 대해 알고 있지만 델라 니스 삼각 측량에서 삼각형과 같은 것을 생각하고있었습니다. 그래프에서 최소 닫힌 경로에 대한 객체 가져 오기와 같습니다. 그럼에도 불구하고, 당신의 대답은 GraphPartitioner가하는 것을 이해하는 데 도움이되었습니다. 나는 그래프를 작동시키기 위해 분리 된 컴포넌트가 있어야한다는 것을 알지 못했고 이번에는 헛되이 고심하고있었습니다! 감사합니다! –

관련 문제