#if-statement #conditional-statements #netlogo #agent-based-modeling #economics
#оператор if #условные операторы #netlogo #моделирование на основе агентов #экономика
Вопрос:
Мои черепахи — это фирмы, и у них есть собственные черепахи, прибыль которых варьируется от фирмы к фирме, а также оффшорная? и изменен? что является либо истинным, либо ложным.
В коде что-то не так. Я борюсь с объединением IF и команды AND . ЕСЛИ параметр метки оффшорирован? отчеты = true И прибыль любой из этих фирм ниже, чем прибыль фирм, которые сообщают об офшорингах? = false, чем они должны перемещаться. Движущаяся часть кода работает нормально. Пожалуйста, найдите код (с сообщением об ошибках), который я привел ниже:
breed [ firms firm ]
firms-own [
profit
offshored? ;; reports either true or false
reshored? ;; reports either true or false
]
to setup
ask firms [
if offshored? true AND profit < [ profit ] of firms with [ offshored? = false ] [ ;; if the profit of an offshored firm is smaller than the lowest profit of firms at home, the decision to reshore is yes!
ask one-of turtles [ move-to one-of patches with [ pcolor = 58 and not any? turtles-here ] ] ;; the firm reshores
AND set reshored? true ] ] ;; the firm is now labelled as reshored
end
Ответ №1:
Приведенная выше настройка ничего не даст, основная проблема может заключаться в том, что вы сравниваете переменную прибыли фирмы со списком ( [profit] of firms with [ offshored? = false ]
). Вы не можете сравнить одно значение со списком значений напрямую таким образом, поэтому вам придется действовать по-другому. Например, вы могли бы использовать min
для получения минимального значения прибыли других интересующих фирм:
breed [ firms firm ]
firms-own [ profit offshored? reshored? ]
to setup
ca
ask patches with [ pxcor < -10 ] [
set pcolor red
]
create-firms 100 [
set color white
set profit random 101
set offshored? one-of [ true false ]
set reshored? false
while [ any? other turtles-here ] [
move-to one-of neighbors with [ pcolor = black ]
]
]
ask firms [
if offshored? and profit < min [ profit ] of firms with [ not offshored? ] [
move-to one-of patches with [ pcolor = red and not any? turtles-here ]
set reshored? true
set color yellow
set size 2
]
]
reset-ticks
end
Кроме того, ask one-of turtles
в вашем ask firms
заявлении есть — я думаю, вы хотите опустить это, как это сделано в этом примере, чтобы фирма, проводящая оценку, была агентом, который перемещается, — ask one-of turtles
просто выберет случайную черепаху любой породы.