237

Graphアルゴリズム用のJavaライブラリで良い経験をした人はいますか? 私はJGraphを試してみましたが、問題はありませんでした。Googleにはさまざまなものがあります。人々が実際に製品コードでうまく使用している、または推奨するものはありますか?

明確にするために、グラフ/チャートを生成するライブラリを探しているのではなく、最小スパニング ツリー、クラスカルのアルゴリズム ノード、エッジなどのグラフ アルゴリズムに役立つライブラリを探しています。理想的には、いくつかの優れたアルゴリズム/データを備えたライブラリを探しています。素敵な Java OO API の構造。

4

18 に答える 18

111

JGraph を使用していた場合は、アルゴリズム用に設計されたJGraphTを試してみてください。その機能の 1 つは、JGraph ライブラリを使用した視覚化です。まだ開発中ですが、かなり安定しています。少し前に JGraphT アルゴリズムの複雑さを分析しました。それらのいくつかは最速ではありませんが、それらを独自に実装してグラフを表示する必要がある場合は、これが最良の選択かもしれません。グラフを操作して後で表示するアプリをすぐに作成しなければならなかったとき、私はその API を使用するのが本当に好きでした。

于 2008-09-09T19:28:21.427 に答える
68

概要:

于 2009-05-12T21:06:57.403 に答える
41

非常によくできた非常にシンプルで強力な Java グラフ ライブラリであるJGraphTを確認してください。混乱を避けるために、 JGraph とは異なります。いくつかのサンプルコード:

UndirectedGraph<String, DefaultEdge> g =
        new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);

    String v1 = "v1";
    String v2 = "v2";
    String v3 = "v3";
    String v4 = "v4";

    // add the vertices
    g.addVertex(v1);
    g.addVertex(v2);
    g.addVertex(v3);
    g.addVertex(v4);

    // add edges to create a circuit
    g.addEdge(v1, v2);
    g.addEdge(v2, v3);
    g.addEdge(v3, v4);
    g.addEdge(v4, v1);
于 2008-09-09T14:49:18.833 に答える
37

JUNGは視覚化に適したオプションであり、ランダムなグラフの作成、再配線などのためのいくつかの異なるメカニズムを含む、利用可能なグラフ アルゴリズムのかなり優れたセットもあります。また、必要に応じて拡張および適応するのが一般的にかなり簡単であることもわかりました。 .

于 2008-09-09T11:36:03.463 に答える
12

http://neo4j.org/は、多くのグラフ アルゴリズムを含むグラフ データベースであり、ほとんどのメモリ内ライブラリよりも優れたスケーリングを行います。

于 2010-03-24T09:12:30.383 に答える
10

大学のプロジェクトで、yWorks の yFiles をいじってみたところ、かなり優れた API を備えていることがわかりました。

于 2008-09-09T11:20:13.173 に答える
9

ブループリントをチェックしてください:

ブループリントは、プロパティ グラフ データ モデルのインターフェイス、実装、機能拡張、およびテスト スイートのコレクションです。Blueprints は JDBC に似ていますが、グラフ データベース用です。TinkerPop オープン ソース ソフトウェア スタック内で、Blueprints は以下の基盤テクノロジーとして機能します。

Pipes : 遅延型のデータ フロー フレームワーク

Gremlin : グラフ走査言語

Frames : オブジェクトからグラフへのマッパー

Furnace : グラフアルゴリズムパッケージ

Rexster : グラフ サーバー

于 2014-01-31T18:56:25.003 に答える
7

http://incubator.apache.org/hama/は、大規模なマトリックスおよびグラフ データ用の Hadoop 上の分散科学パッケージです。

于 2010-05-16T16:23:13.270 に答える
7

グラフ アルゴリズムに興味がある場合は、JDSL (Java のデータ構造ライブラリ) で十分です - http://www.cs.brown.edu/cgc/jdsl/

于 2009-02-23T20:05:49.150 に答える
5

Annas は、簡単に理解できるオープン ソースのグラフ パッケージです。

http://annas.googlecode.com

于 2009-06-07T10:44:12.090 に答える
5

視覚化のために、私たちのグループはprefuseである程度の成功を収めました。建築フロアプレートとバブル ダイアグラムを処理するように拡張しましたが、不満はあまりありませんでした。彼らは、非常によく似た API を使用する Flare と呼ばれる新しい Flex ツールキットも出しています。

更新: コメントに同意する必要があります。多くのカスタム機能を作成したり、prefuse の制限を回避したりしました。prefuse を使用して 1 日目から進歩を示すことができたので、最初から始めたほうがよかったとは言えません。一方、同じものの 2 番目の実装を行っている場合は、要件をよりよく理解できるため、prefuse をスキップする可能性があります。

于 2008-09-09T11:05:42.833 に答える
4

パフォーマンスが必要な場合は、Grph を検討してください。このライブラリは、フランスの大学と CNRS/Inria で開発されています。

http://www.i3s.unice.fr/~hogie/grph/

プロジェクトはアクティブで、リアクティブなサポートが提供されます!

于 2013-09-25T13:07:04.113 に答える
4

本番対応と呼ぶかどうかはわかりませんが、jGABLがあります。

于 2008-09-09T14:13:10.480 に答える
3

Java での教育用グラフ アルゴリズムの実装は、次の場所にあります (Sedgewick 教授らによる): http://algs4.cs.princeton.edu/code/

私は、コーセラでこれらの例外的なアルゴリズムコースに参加しているときに彼らに紹介されました (これもセッジウィック教授によって教えられました)。

https://www.coursera.org/course/algs4partI

https://www.coursera.org/course/algs4partII

于 2014-01-19T14:47:33.677 に答える
0

http://mmengineer.blogspot.com/2009/10/java-graph-floyd-class.htmlの JGraph

グラフ (直接または非直接) を操作するための強力なソフトウェアを提供します。また、Graphivz コードを生成し、グラフィック表現を確認できます。バックトラッキング コードなど、独自のコード アルゴリズムをパッケージに入れることができます。パッケージは、いくつかのアルゴリズムを提供します: ダイクストラ、バックトラッキングの最小パス コストなど。

于 2010-06-05T11:27:01.457 に答える
0

ノード/エッジ グラフ ライブラリではなく、実際にチャート ライブラリを探している場合は、Big Faceless Graph ライブラリ ( BFG ) を使用することをお勧めします。JFreeChart よりもはるかに使いやすく、見栄えがよく、実行速度が速く、出力オプションが多く、比較にならないほどです。

于 2008-09-09T11:22:27.257 に答える