MAS コミュニティ
artisoc質問用掲示板

質問 (解決済み)

[artisocモデル] 各ステップ毎・各エージェントID毎のデータをファイル出力するには?
質問者: th1さん , 質問日時: 2017/03/12 13:48
たびたび恐れ入ります。先日はありがとうございました。
今回の質問です。「各エージェント毎・ID毎のデータをファイル出力するにはどのように出力設定すればよいでしょうか?」

エージェントは各ステップ時に同時に複数存在しています。
各ステップ毎に個々のエージェントの状態のデータをファイルに出力するには、どうしたらよいでしょうか?
現在、各ステップ毎に集計しているデータを、1ステップ1行としてデータを収集する事が出来ています。(ノートブックに落として、エクセルに取り込んでいる)
更に出来れば、この出力結果に追加するような形で、各ステップ毎に存在している複数のエージェントの個々の状態を、各エージェントID毎に更に詳細にエージェントの状態を出力させるにはどのように出力設定を設定するかわかりません。
現在、IDを表記する設定で既存のファイルに出力設定すると例えば30エージェント存在しているのに、ID2番だけのデータが各ステップ毎に集計されます。
それ以外のIDのエージェント情報は表記されません。
若しくは、今までのファイルに追加する形ではなくとも、各ステップ毎に各エージェントの個々の状態が何らかの書式でデータとして取れれば大丈夫です。
お手すきの際に、宜しくお願いいたします。



▼解決した回答


一度開いたファイルはシミュレーション全体で書込ができますので、下記のような手順で出力してはいかがですか?
ポイントは同じファイル識別番号を使いまわすことです。

1. Univ_Initでファイルを開く
2. Univ_Stepで集計データを書込
3. Agt_Stepで各エージェントのデータを出力
4. Univ_Finishでファイルを閉じる

Universe ルール例--------
Univ_Init{
OpenFile("output.csv", 11, 2)
}

Univ_Step_Begin{
WriteLnFile(11, CStr(getCountStep()) & ",集計値")
}

Univ_Finish{
CloseFile(11)
}

Agent ルール例--------

Agt_Step{
WriteLnFile(11, "," & my.id & ",値" )
}

回答者: kabochan さん , 回答日時: 2017/03/13 22:22

▼ 全ての回答


一度開いたファイルはシミュレーション全体で書込ができますので、下記のような手順で出力してはいかがですか?
ポイントは同じファイル識別番号を使いまわすことです。

1. Univ_Initでファイルを開く
2. Univ_Stepで集計データを書込
3. Agt_Stepで各エージェントのデータを出力
4. Univ_Finishでファイルを閉じる

Universe ルール例--------
Univ_Init{
OpenFile("output.csv", 11, 2)
}

Univ_Step_Begin{
WriteLnFile(11, CStr(getCountStep()) & ",集計値")
}

Univ_Finish{
CloseFile(11)
}

Agent ルール例--------

Agt_Step{
WriteLnFile(11, "," & my.id & ",値" )
}

回答者: kabochan さん , 回答日時: 2017/03/13 22:22

MASコミュニティ
掲示板TOP







Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )