UFO ET IT

그래프 자동 레이아웃 알고리즘

ufoet 2020. 12. 4. 21:30
반응형

그래프 자동 레이아웃 알고리즘


문제를 단순화하기 위해 2D 평면에있는 노드와 간선을 포함하는 그래프가 있습니다.

내가 할 수 있기를 원하는 것은 버튼을 클릭하는 것입니다. 그러면 자동으로 그래프 레이아웃이 깔끔하게 보입니다. 즉, 최소한의 모서리 교차, 노드 사이의 좋은 공간, 어쩌면 그래프 스케일 (가중 된 모서리)을 나타낼 수도 있습니다.

나는 이것이 깨끗한 그래프가 무엇인지에 대해 완전히 주관적이라는 것을 알고 있지만, 바퀴를 재발 명하지 않고 시작할 알고리즘을 아는 사람이 있습니까?

감사.


graphviz 살펴보기를 제안합니다 . dot프로그램은 그래프의 사양을 가져 와서 "깨끗하게"네트워크 이미지를 생성 할 수 있습니다. 해당 페이지의 "이론"링크는 이론적 배경에 관심이있는 경우 관련 될 수있는 링크를 제공합니다.


당신은 발견 할 것이다 : // HTTP graphdrawing.org /이 자습서 에 의해, 로베르토 타마 시아 , 브라운 대학 교수, 아주 도움이 있습니다.

저는 Spring Embedder 와 같은 Force-Directed Techniques (튜토리얼의 66-72 쪽)를 많이 좋아합니다 .

인접한 두 노드 사이에 스프링 또는 다른 힘이 있다고 가정하고 자연 (시뮬레이션)이 작업을 수행하도록합니다. :)


또한 Java 레이아웃을 원한다면 JGraph (나는 프로젝트에서 일함 ).


Noufal Ibrahim이라고 말하고 싶지만 graphviz 프로젝트 의 C API를 더 정확하게 볼 수도 있습니다 . 여기에는 모든 노드와 가장자리로 그래프를 빌드하는 lib ( libgraph.pdf )와 그래프 레이아웃을위한 lib ( libgvc.pdf ) (각 노드 위치 만 계산)가 포함되어 있으므로 사용자 고유의 UI에 표시 할 수 있습니다. 예를 들면.


가장 인기있는 레이아웃이 실제로 어떻게 보이는지 좋은 시각적 가이드 : 링크를 따라 가십시오.

참고 URL : https://stackoverflow.com/questions/5028433/graph-auto-layout-algorithm

반응형