Netlogo - 组级选择

Netlogo - Group-level choices

我是这个论坛的新手,期待您的来信,并在可能的情况下提供一些我自己的知识。

我试图让我的模型中的海龟随机决定,但在群体层面上连贯一致。

在我的模型中,每只海龟都有一种母语。然后他们被分成几个小组,我希望每个小组决定使用一种共同语言,哪种语言应该是最常见的母语,换句话说,就是小组的模态语言。这通常工作顺利,除非组有多个模式,在这种情况下我最初使用 "one-of" 功能,如下:

ask turtles [ define-majority-language ]
...

你定义多数语言

  let my-mates turtles with [ my-group = [ my-group ] of myself ]
  set my-group-majority-language one-of modes [ language-spoken ] of my-mates
end

但是,我很快意识到每只乌龟都在单独做出她的随机 "one-of" 选择,所以一些小组成员会选择一个而其他小组成员会选择另一个,而我希望所有小组成员都随机但连贯地选择,即他们应该都同意使用同一种语言。我也尝试制作一个 agentset 但又一次,成员单独行动...

我该怎么做?

我想你想要做的是让第一选择者强加那个选择。因此,一旦选择,还要为 my-mates 代理集中的其他海龟设置语言。这也意味着如果尚未选择一种语言,您只想让乌龟选择一种语言。试试这个。

to go
  ...
  define-majority-language
  ...
end

to define-majority-language
  ask turtles
  [ if my-group-majority-language = 0   ;; or whatever your initialisation is
    [ let my-mates turtles with [ my-group = [ my-group ] of myself ]
      set my-group-majority-language one-of modes [ language-spoken ] of my-mates
      ask my-mates [ set my-group-majority-language my-group-majority-language ]
    ]
  ]
end