JGraphT. 그래프(graph 또는 네트워크 network) 관련한 알고리즘을 자바에서 구현할 때 편리한 라이브러리
노트정리/그래프 이론 graph theory 2016. 4. 29. 19:48이번에 연구하면서 아주 편리한 자바용 라이브러리를 알아내서 블로그에 남깁니다.
JGraphT라는 라이브러리입니다.
웹사이트는 http://jgrapht.org/ 입니다. 여기에서 라이브러리를 다운로드 받으실 수 있습니다.
저는 페이스북 데이터로 실험해서 무방향 그래프(undirected graph)만 썼는데요.
당연히 방향 그래프(directed graph)도 쓸 수 있고, 부분 그래프(subgraph)를 생성하는 속도도 매우 빨라서 좋았습니다.
제가 부분 그래프 만드는 걸 하드 코딩했을 때는 매우 느렸는 데, 역시 라이브러리 만세!
노드(node)의 디그리(degree)를 구하는 것도 구현되어 있기 때문에, density 계산도 쉽구요.
심지어 connectivity도 검사해줍니다. 물론 태생적으로 속도는 느리지만요.
하나 하나가 직접 구현하려면 괴로운 시간을 많이 보내야하는 것들인데요.
다 구현되어 있으니 가져다 쓰기만 하면 되네요.
이것도 구현되어 있나 확인하실 때는 http://jgrapht.org/javadoc/ 를 참고하시면 됩니다.
저도 저런 문서만 보고 라이브러리 가져다 쓰는 걸 매우 싫어하고, 남들이 만든 예제 가져다 쓰는 걸 좋아했는데요.
제가 연구하는 거니깐, 모르는 건 직접 이리 저리 구현하면서 시행착오를 겪으며 썼습니다.
혹시 쓰시다 잘 모르시는 점 있으시면, 제가 아는 한 성심성의껏 알려드리겠습니다.
감사합니다.
'노트정리 > 그래프 이론 graph theory' 카테고리의 다른 글
자바에서 JGraphT 를 써서 Christofides의 알고리즘 구현하기 (2) (0) | 2018.05.26 |
---|---|
자바에서 JGraphT 를 써서 Christofides의 알고리즘 구현하기 (1) (0) | 2018.05.26 |
JGraphT를 써서 최소걸침나무(minimum spanning tree)를 구현할 때 주의 점 (0) | 2017.06.27 |
Robert Sedgewick , Kevin Wayne (2011), Algorithms 4th edition, Pearson. (0) | 2016.05.03 |
Matlab으로 풀어본 문제 (0) | 2014.03.24 |