Netlogo 根据项目的属性对列表进行排序并选择第一个项目

Netlogo 根据项目的属性对列表进行排序并选择第一个项目,netlogo,Netlogo,我想对海龟的物品列表进行排序,按从最高值到最低值的递减属性排序,选择具有最高值的物品作为排序列表的第一个物品;它可能不是最近添加的,而是在上一步中添加的,并将其添加到列表的顶部。 我在做什么 ask one-of agents [ let sorted_list sort-on [values] items ] 对列表中的项目进行排序。值的定义范围为[0,1]。 但是,我不知道如何选择价值最高的项目并将其添加到列表的顶部 此外,如果代理再次被选中,代理如何能够记住他已经从列表中选择

我想对海龟的物品列表进行排序,按从最高值到最低值的递减属性排序,选择具有最高值的物品作为排序列表的第一个物品;它可能不是最近添加的,而是在上一步中添加的,并将其添加到列表的顶部。 我在做什么

ask one-of agents [
      let sorted_list sort-on [values] items
]
对列表中的项目进行排序。值的定义范围为[0,1]。 但是,我不知道如何选择价值最高的项目并将其添加到列表的顶部

此外,如果代理再次被选中,代理如何能够记住他已经从列表中选择了哪些项目,以避免重复选择相同的项目


我希望你能帮我做这件事

要按值降序对一组项目排序,需要一个减号,如所示:

ask one-of agents [
      let sorted_list sort-on [(- values)] items
      let best-choice first sorted_list
]
或者你可以按升序排序,选择最后一项而不是第一项

ask one-of agents [
      let sorted_list sort-on [ values] items
      let best-choice last sorted_list
]
我不明白你说的顶部是什么意思

将其添加到列表的顶部

我想也许你的意思是有一个不同的项目列表,比如说项目列表,你想把最好的选择推到这个列表的前面。您可以这样做:

set item-list fput best-choice item-list
此外,代理如何记住他已经挑选的物品 从列表中选择,以避免在代理处于 又被选中了

只需给代理一个变量,即最近的选择,并将其设置为 一旦你选择了它,它就是最好的选择。或者如果你想回忆起每一个 为代理选择的项目,给他们一个变量“我的所有选择”,然后 把清单放在那里。将其初始化为[],并在其上输入最佳选择 在您选择最佳选择的时候


祝你好运-你和Val正在处理的问题似乎是一个非常复杂的问题

要按值降序对一组项目排序,需要一个减号,如所示:

ask one-of agents [
      let sorted_list sort-on [(- values)] items
      let best-choice first sorted_list
]
或者你可以按升序排序,选择最后一项而不是第一项

ask one-of agents [
      let sorted_list sort-on [ values] items
      let best-choice last sorted_list
]
我不明白你说的顶部是什么意思

将其添加到列表的顶部

我想也许你的意思是有一个不同的项目列表,比如说项目列表,你想把最好的选择推到这个列表的前面。您可以这样做:

set item-list fput best-choice item-list
此外,代理如何记住他已经挑选的物品 从列表中选择,以避免在代理处于 又被选中了

只需给代理一个变量,即最近的选择,并将其设置为 一旦你选择了它,它就是最好的选择。或者如果你想回忆起每一个 为代理选择的项目,给他们一个变量“我的所有选择”,然后 把清单放在那里。将其初始化为[],并在其上输入最佳选择 在您选择最佳选择的时候

祝你好运-你和Val正在处理的问题似乎是一个非常复杂的问题