2011-02-20 6 views
7

내 프로젝트 중 하나에 networkx (파이썬 그래프 드로잉 패키지) http://networkx.lanl.gov/index.html을 사용하고 있습니다. networkx는 꽤 멋지지만, 교차 기능의 수에 기인 한 디스플레이 기능의 종류는 끔찍합니다. 그래프에서 교차 모서리를 최소화하는 방법이 있습니까? 교차 에지가 최소화되도록 노드를 정렬 할 수있는 알고리즘을 의미합니까?그래프에서 교차 모서리 최소화

+0

도면 용 Graphviz를 사용해 보셨습니까? 교차점을 최소화하는 것이 더 좋을 수 있습니다 (특히 선호하는 그래프가있는 경우 Dot). 어떤 종류의 그래프가 있습니까? (즉, 그래프의 출처는 어디입니까?) –

+0

나는 networkx가 (pydot를 통해) 표시하기 위해 graphviz를 사용한다고 생각했습니다. 이 그래프는 특별한 유형의 네트워크의 흔적에서 비롯된 것입니다. 반지는 최악의 히트입니다 : ( –

+0

가능한 [평면 그래프 레이아웃] (http://stackoverflow.com/questions/2347748/planar-graph-layouts) –

답변

3

교차 수를 최소화하는 평면 그래프 레이아웃을 결정하는 것은 NP-Hard입니다. 위키 페이지 (Crossing Number)를 참조하십시오.

일부 추론을 시도해 볼 수 있습니다. 강제 레이아웃은 꽤 인기가 있습니다 (graphviz에서 올바르게 사용하면 그래프가 사용됩니다).

근사 알고리즘을 시도해 볼 수도 있습니다. 링크 된 위키 페이지에서 참조를 찾아야합니다.

희망이 있습니다.