4

私はある種のソーシャル ネットワーク データを操作するアプリケーションを書いているので、理想的な基礎となるデータ構造は重み付き有向グラフです。最初にグラフ全体をメモリにロードしてからシリアル化せずに、データを直接操作 (および検索) したいと思います。

これは、標準の SQL データベースまたはキー/値ストアを使用してシミュレートできますが、非常に非効率的です (使用したいグラフ トラバーサル アルゴリズム、たとえば最短パスなど)。

グーグルが有用な結果をもたらさなかったので、私は自分自身を書くことに半分気になっていますが、車輪を再発明するよりも、既存のソリューションを使用したいと思っています(もしあれば、それを逃しました)。このプロジェクトは趣味/個人的な研究のためのものであるため、ソフトウェアはオープン ソースである必要があります (Linux で実行できることが望ましい)。

では、上記の説明に当てはまるプロジェクトはありますか?

ありがとう!

4

3 に答える 3

5

Javaを使用している場合は、http://neo4j.org/を試すことができます。

于 2009-04-05T00:55:51.877 に答える
2

ODBMSはどうですか?db40 には Java と .NET が実装されているため、どちらも Linux 上で実行されます。

于 2009-04-04T23:41:47.123 に答える
0

グラフをノードの配列として見ることもできます。各ノードがその兄弟のリストを格納する場所。

したがって、グラフのノードごとに 1 つのファイルを単純に保存できます。次に、そのファイルの内容は、接続されている (指示されてから指された) ノードのリストです。

その後、必要に応じてノードを読み込むことができます。

これにより、一度に 1 つのノードのみをメモリに保持しながら、ツリー全体を反復処理するなどのことができます。

于 2009-04-04T23:19:52.933 に答える