Netlogo 如何在不同品种之间建立友谊网络

Netlogo 如何在不同品种之间建立友谊网络,netlogo,Netlogo,尊敬的NetLogo专家: 你能给我一些建议吗?这是我组装的第一个NetLogo模型,也是我第一次在这个论坛上发布查询 我目前正在调整NetLogo库中的Wilensky投票模型 我对创造两个品种很感兴趣。第一类是属于“回声室”的特工,第二类是“不在回声室” ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; breed [ Echos Echo ] breed [ NotEchos NotEcho ] ;;;;;;;

尊敬的NetLogo专家:

你能给我一些建议吗?这是我组装的第一个NetLogo模型,也是我第一次在这个论坛上发布查询

我目前正在调整NetLogo库中的Wilensky投票模型

我对创造两个品种很感兴趣。第一类是属于“回声室”的特工,第二类是“不在回声室”

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
breed [ Echos Echo ]
breed [ NotEchos NotEcho ]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
与威伦斯基模型一样,我希望代理根据他们八位朋友的投票选择做出投票决定。我可以建立一个网络,“Echo Chamber”代理与“Echo Chamber”是朋友,“not in Echo Chamber”代理与“not in Echo Chamber”代理是朋友。我从JenB那里获得了这段代码。当前代码如下

这种方法的局限性在于友谊不是跨品种的

理想情况下,我想要一段代码,允许我选择一个品种有八个朋友,有多少是从自己的品种和多少其他品种。例如,我希望“Echo Chamber”中的代理有六个“Echo Chamber”代理朋友和两个“not in Echo Chamber”代理朋友。 任何帮助都将不胜感激

非常感谢您抽出时间

保罗

<代码>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 建立网络 ;; 这样做的目的是创建一个网络,其中回声室中的每个代理都是朋友 ;; 回声室内有8种其他药剂 询问便条 [让我们看看我的链接 如果需要>0 [让notecho使用[计算我的链接数<8]对其他notecho进行排序] 使用n-of-min(列出所需的记事本编号)记事本编号创建链接 [隐藏链接] ] ] ;; 这样做的目的是创建一个网络,使每个不在回音室中的代理都成为朋友 ;; 8其他试剂不在回波室内 询问回声 [让我们看看我的链接 如果需要>0 [让Echoscandidate使用[计数我的链接<8] 创建具有n个最小值(列出所需的EchoScandites计数)EchoScandites的链接 [隐藏链接] ] ] ;; 其目的是制定措施,以验证和确保ABM的质量 ask NotEchos[设置num\u NotEchos\u好友数我的链接] ask NotEchos[设置总票数(链接邻居的总和[票数])] ask Echos[设置我的链接数量] ask Echos[设置总的Echos投票(链接邻居的总和[投票])] 询问回声[显示总回声投票] 询问NotEchos[显示总票数] 终止 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
您有NotEcho-to-NotEcho、Echo-to-Echo和Echo-to-NotEcho链接,每个链接都需要单独的构造。到目前为止,你将你的候选人限制在合适的品种上,但你还没有调整他们是否还有空位的数量。您需要(未经测试):

ask NotEchos
[let needed 6-使用[bride=NotEchos]计算我的链接邻居数]
如果需要>0
[让NotEchos与[count my Neights with[breed=NotEchos]<6]一起记录其他NotEchos]
使用n-of-min(列出所需的记事本编号)记事本编号创建链接
[隐藏链接]
]
]
请注意,我切换到
我的链接邻居
而不是
我的链接
,因为最后的海龟有一个品种,而不是链接。我也把8改为6,因为你想要6个相同的品种

此外,你还需要考虑每个品种有多少个,以便所有的数字都出来,并且有足够的链接


最后,Echo和NotEcho真的是不同的海龟吗?想想两个不同的意见群体A和B。A与A对话可能会产生类似的情绪,B也与B对话,但A和B彼此对话不会产生共鸣。在您的模型中,当NotEcho链接到NotEcho时,您的意思是什么。可能你真的想要两个意见组,优先依附于同一组,然后他们在每一端是否相同或不同是链接(关系)的函数,而不是海龟。

非常感谢你花时间回答我的问题。这给了我很多思考的东西。保持健康和安全。致以最良好的祝愿,保罗
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to make-network
  ;; THE PURPOSE OF THIS IS TO CREATE A NETWORK WHERE EACH AGENT IN THE ECHO CHAMBER IS FRIENDS WITH
;; 8 OTHER AGENTS IN THE ECHO CHAMBER
  ask NotEchos
  [ let needed 8 - count my-links
    if needed > 0
    [ let NotEchoscandidates other NotEchos with [ count my-links < 8]
      create-links-with n-of min (list needed count NotEchoscandidates) NotEchoscandidates
      [ hide-link]
    ]
  ]

;; THE PURPOSE OF THIS IS TO CREATE A NETWORK WHERE EACH AGENT NOT IN THE ECHO CHAMBER IS FRIENDS WITH
;; 8 OTHER AGENTS NOT IN THE ECHO CHAMBER
    ask Echos
  [ let needed 8 - count my-links
    if needed > 0
    [ let Echoscandidates other Echos with [ count my-links < 8]
      create-links-with n-of min (list needed count Echoscandidates) Echoscandidates
      [ hide-link]
    ]
  ]

  ;; THE PURPOSE OF THESE IS TO CREATE MEASURES TO VALIDATE AND QUALITY ASSURE THE ABM

  ask NotEchos [ set num_NotEchos_friends count my-links ]
  ask NotEchos [ set total_NotEchos_vote (sum [vote] of link-neighbors) ]

  ask Echos [ set num_Echos_friends count my-links ]
  ask Echos [ set total_Echos_Vote (sum [vote] of link-neighbors) ]



  ask Echos [show total_Echos_vote]
ask NotEchos [show total_NotEchos_vote]
End
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ask NotEchos
  [ let needed 6 - count my-link-neighbors with [breed = NotEchos]
    if needed > 0
    [ let NotEchoscandidates other NotEchos with [ count my-neighbors with [breed = NotEchos] < 6]
      create-links-with n-of min (list needed count NotEchoscandidates) NotEchoscandidates
      [ hide-link]
    ]
  ]