Сортировать список по атрибутам элементов и выбрать первый элемент - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу отсортировать список элементов черепахи, отсортированных по убыванию атрибута (от самого высокого значения до самого низкого), выбрать элемент с самым высоким значением (первый элемент в отсортированном списке; он может быть добавлен не недавно, но впредыдущий шаг) и добавьте его в начало списка. Я делаю

ask one-of agents [
      let sorted_list sort-on [values] items
]

, чтобы отсортировать элементы в списке. values определяется в диапазоне [0,1]. Однако я не знаю, как выбрать предмет с наибольшим значением и добавить его в начало списка.

Кроме того, как агент может запомнить, какой элемент он уже выбрал из списка, чтобы не выбирать его дважды (если агент выбирается снова)?

Надеюсь, вы мне поможетес этим.

1 Ответ

1 голос
/ 11 ноября 2019

Чтобы отсортировать набор элементов в порядке убывания по значению, вам нужен знак минус, как в:

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
]

Я не понимаю, что вы подразумеваете под " top ".

добавьте его в начало списка.

Я думаю, может быть, вы имеете в виду, что есть другой список элементов, скажем, «item-list», и выхочу выбрать лучший вариант на фронте этого списка. Вы можете сделать это:

set item-list fput best-choice item-list

Кроме того, как агент может запомнить, какой элемент он уже выбрал из списка, чтобы не выбирать один и тот же дважды (если агент выбирается снова)?

Просто дайте агенту переменную самый недавний выбор и установите ее как лучший выбор, как только вы ее выберете. Или, если вы хотите вызвать каждый элемент, выбранный агентом ever , предоставьте им переменную all-my-choices и оставьте там список. Инициализируйте его как [] и введите fput best-choice в то время, когда вы выбираете best-choice.

Удачи - проблема, над которой вы и Вэл работаете, кажется, очень сложная!

...