Чтобы отсортировать набор элементов в порядке убывания по значению, вам нужен знак минус, как в:
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.
Удачи - проблема, над которой вы и Вэл работаете, кажется, очень сложная!