2016-09-09 13 views
1

Roth-Erev強化学習アルゴリズムを使用してすべてのラウンドエージェントが一連のアクションAからアクションaを選択するようにモデルを作成しました。アクションは、ゲーム全体でどのくらいの頻度でプレイされたかをカウントします。アクションの頻度のヒストグラム

ここでは、y軸の周波数とx軸の動作を持つヒストグラムを作成したいと考えています。また、すべてのアクションにそのパラメータを付けたいと思っていますが、不可能であると私は理解しています。

histogram count [n-played] of actionsを使用しているだけでは、すべてのアクションを個別にプロットしません。私はplotxyが最も近いと思われますが、ヒストグラムには適していません。ソリューションにビルドがありますか、Netlogo以外でデータを視覚化する必要がありますか?

+0

あなたは現在のタイムステップでの行動の頻度を表示したいのですか、それまでの合計か何か他のものを表示しますか?また、いくつの行動がありますか? – JenB

+0

合計の周波数を表示したい。 27のアクションがあります。 – nehalem

答えて

2

列にラベルを付けることはできませんが、棒グラフを作成するコマンドには、histogramコマンドに限定されません。それぞれのプロットペンはmodeで、「線」、「棒」または「点」とすることができます。 「バー」モードを使用することにより、あなたはplotplotxyコマンドでバープロットを生成することができます。これは、使用していること

plot-pen-reset 
foreach map [ [ n-played ] of ? ] sort actions plot 

注:

enter image description here

をここで簡単にカット&ペーストのためのコードがありますplotforeachに渡すための「簡潔なタスクの構文」。必要に応じて[ plot ? ]と書くことができます。

+0

ありがとう、本当に役に立ちました。 :-)私は少し不正解でした。すべての行動は品種のすべてのエージェントに存在するので、私の27アクションは5回複製されます。あなたのコード例は、これらのアクションのすべてをプロットしていますが、私は同じアクションの「再生済み」を合計したいと思います。これを行うために、私はIDを与え、これらのIDを列挙し、代わりに[id =?]] action-id [plot?]を使って 'foreach map [n-played]のアクションを使用しました。残念なことに、これは 'MAPに期待される入力がリストになるが、代わりに番号が0になります.' action-idはセットアップ手順の2番目のものであり、正常に動作します。 – nehalem

+0

このメッセージは、 'action-id'がリストではないことを示しています。あなたのコードを動作させるには、一意の 'action-id'のリストを渡す必要があります。まだ持っていない場合は、 'sort remove-duplicates [id] of actions'で生成することができます。 –

関連する問題