2016-04-24 8 views
0

私はJavaでかなり新しいです& AnyLogicので、私のレベルでこれを取得してください。AnyLogicエージェントベースのシミュレーションエージェントバリュー転送

エージェントが別のエージェントから変数値を取得する方法はありますか? その場合、エージェントは同じタイプになります。したがって、それらはすべて同じ変数を持ちますが、パラメータではなくランダムな初期値を持つ変数であるため、値は同じではありません。

エージェントも最初はSmall-World接続で接続されています。これらの接続は実行中は変更されません。

たとえば、イベントで発生するエージェントは、別のエージェント(たとえば、エージェントiがエージェントjの変数値Xを取得する)から変数値を収集することができます。この値は、エージェントiの変数Xの値を変更するために、小さな方程式に入れられます。言い換えれば、エージェントiは彼の接続エージェントjの影響を受けるため、Xの値が変更されます。

.getConnectedAgent().getの複数の組み合わせを試してみました。私は今、各エージェントのXの値をデータベースに抽出し、そのデータベースを使ってエージェントiのエージェントjのXの値を収集しようとしていますが、そこで何の進歩もしていません。

抽出する必要がある値はdoubleですが、もっと簡単になるように変数を整数に変更できます。

+0

、あなたが 'getConnectedAgent(0)を使用すると思い、あなたはあなたがに接続された最初のエージェントからAnyLogic変数xの値を取得したい場合は、より明確な答えベンジャミンさん(良い)を作成するには。 x 'である。 (大括弧内のゼロはAnyLogicに使用している接続エージェントを示していますが、0を最初に使用します)小さな世界のネットワーク環境を使用した場合、AnyLogicはこの場合の順序が0以上の接続を設定しますちょっと無関係です。) –

+0

また、現在のエージェントの接続が実際に存在しているかどうかテストする必要があります。例えば、if(connectedNumber()> 0 ) 'ブロック。 –

答えて

1

これをデータベースに抽出する必要はありません。あなたはオブジェクト指向プログラミングについてもう少し学ぶべきです。あなたの問題はAnyLogicとあまり関係がなく、Javaを適切に使用することで多くのことを学びます。

「MyAgents」という名前のエージェントの母集団があり、各エージェントの変数varにランダムなdouble値がある場合、エージェント12はvar = get_Main().MyAgents.get(13).varを呼び出してエージェント14のdouble値を取得できます。

ここで、左側のvarは呼び出し側エージェントのvarです。 get_Main()は階層内で1つ上のレベルになり、人口やその他のエージェントにアクセスします。次に、14番目のエージェント(Javaはゼロベース)とそのvar値にアクセスします。

getConnectedAgent()を使用する場合は、まずエージェントを接続する必要があります。これは、 "Small world"を使用する場合にはいくらか拡張されますが、しばしば手動で接続を定義する必要があります。ヘルプの「エージェントへのリンク」の記事を確認してください。

歓声