2

GAS API を学習して使用し、データベースにランダム ウォークを実装して、訪問したすべての頂点を開始頂点に関連付けようとしています。

これを行う方法を理解するのにいくつか問題があります。PATHS、BFS、PR、およびその他の GAS クラスを例として確認してきましたが、どのように開始すればよいかよくわかりません。

私の実装はBaseGASProgram、必要なメソッドを拡張して実装する必要があると思います。また、反復として、フロンティアには現在の反復のすべての頂点が含まれます。前任者の概念も私には明らかです。

しかし、Gather、Apply、Scatter の哲学と、これら 3 つの概念にランダム ウォークを分散させる方法を十分に理解しているとは思いません。

また、コードを実装したら、どのように呼び出すのですか? コード内で既に実装されているアルゴリズム (PR、SSSP、BFS など) を呼び出すにはどうすればよいですか? オブジェクトをインスタンス化する必要がありますSSSPか? それともGASContextGASRunnerBase?

4

1 に答える 1

1

bigdata-gas パッケージのTestBFSクラスを見てください。

final IGASEngine gasEngine = getGraphFixture()
        .newGASEngine(1/* nthreads */);

try {

    final SailConnection cxn = getGraphFixture().getSail()
            .getConnection();

    try {

        final IGraphAccessor graphAccessor = getGraphFixture()
                .newGraphAccessor(cxn);

        final IGASContext<BFS.VS, BFS.ES, Void> gasContext = gasEngine
                .newGASContext(graphAccessor, new BFS());

        final IGASState<BFS.VS, BFS.ES, Void> gasState = gasContext
                .getGASState();

        // Initialize the froniter.
        gasState.setFrontier(gasContext, p.getMike());

        // Converge.
        gasContext.call();

[snip]

SailConnectionテスト ケース コンテキストの外で使用するには、何らかの種類のを作成する必要があります。例については、 blazegraph-samples GitHub プロジェクトを参照してください。次に、を作成する必要がありますSAILGASEngineGASEngineこれにより、Java レイヤーで を直接呼び出すという観点から始めることができます。

于 2016-03-29T16:48:25.890 に答える