2

現在、ソーシャル ネットワークにおけるイノベーションの拡散を成功させるためのエージェント ベースのモデルに取り組んでいます。これまでのところ、私はエージェントベースのモデリングとプログラミングの初心者です。

主なアイデアは、農家間の社会的学習をモデル化することです。したがって、エージェントがイノベーションを採用するかどうかの決定は、主に彼の個人的なネットワークに依存します。は、ネットワーク内のリモートにあります。

社会的学習に関するネットワーク関連の議論に加えて、時間の次元を実装したいと思います。たとえば、エージェントの隣人がイノベーションをうまく使用する時間が長ければ長いほど、エージェントもイノベーションを採用する可能性が高くなります。しかし、これはまさに私が現時点で立ち往生しているポイントです。私の目標は、次の引数を実装することです。これまでのところ、疑似コードは次のようになっています。

1) タートル独自のティックカウンター ...

ask turtles 
[ 
 ifelse [adopted? = true]
    [set ime-adopted time-adopted + 1] [set time-adopted 0]
    ] 

...

2) 2 番目の手順で、各エージェントは、隣人がこの革新を使用する時間を確認する必要があります (「隣人の採用時間の確認」に関して)。

ask turtles with [not adopted?]
[ 
[ask link-neigbhors with [adopted?] 
    [...*(Here I dont know how to ask for the time adopted value)*]
;the agent will then sum up all values he got from his neighbors from "time-adopted"

set time-neighbors-adopted [sum all "time-adopted" values of neighbors]
]

;The agent will then implement these values into his personal utility       
;function which determines if he adopts the innovation or not 

set utility utiltiy + 0.3 * time-neighbors-adopted
]

あなたの助けとアドバイスに感謝します。

敬具、

モリッツ

4

1 に答える 1

2

Netlogo は素晴らしいので、隣人がイノベーションを採用した時間の合計を取得するには、1 行しか必要ありません。

set time-neighbors-adopted sum [time-adopted] of link-neighbors with [adopted?]

そのように

于 2015-11-23T13:38:56.813 に答える