В моей программе каждая черепаха (а именно глюкоза и бактерия) имеет собственную переменную, называемую массой. Процедура установки гласит, что исходная масса глюкозы и бактерий составляет 1 ммоль. Процедура to-go говорит о том, что глюкоза будет гидролизована и разделена. Таким образом, глюкоза_масса будет отличаться от исходного 1 ммоль. Процедура to-go для бактерий гласит, что когда бактерии съедают одну глюкозу, то масса бактерий будет расти от начального 1 ммоль плюс масса глюкозы (стохастическое число, определяемое в процедуре todivide_hydrolyzed_glucose), которую они потребили раз в год. фиксированное число (например, 0,3). Как я могу ограничить глюкозу_массу, которую бактерии могут потреблять (максимальная скорость поглощения) за каждый тик? (1 тик = 1 час) И как установить оставшуюся глюкозу_массы добычи? Например, если бактерии могут потреблять (поглощать) только 0,0207 ммоль глюкозы/час, но масса гидролизованной глюкозы составляет 0,6 ммоль; тогда бактерии могут использовать только 0,0207 массы глюкозы. Оставшаяся масса глюкозы должна быть пересчитана как (0,6 – 0,0207). Я использую примитивное «я» для обозначения агента из «внешнего» контекста — в данном случае «внешним» агентом являются бактерии. Однако ошибка говорит, что «Нет агента, к которому я мог бы обратиться».
Есть замечания или предложения по этому вопросу?
Breed [glucose a-glucose];; Food-prey
Breed [bacteria bacterium] ;; Predator
glucose-own [glucose_mass]
Bacteria-own [bacteria_mass uptake]
настроить
;;;ГЛЮКОЗУ;;;
Create-glucose (8) ;; Create the glucose available in mmol/d,
[set glucose_mass (1)] ;; in mmol
;;; БАКТЕРИИ;;;
Create-Bacteria (10) ;; Create the clostridiales in mmol
[set batceria_mass (1)
Set uptake (0.0207)
]
end
to go
ask glucose
[
Hydrolyse_glucose
Divide_hydrolyzed_glucose
]
ask Bacteria
[Bacteria_eat_glucose]
to hydrolyse_glucose
if (glucose_mass < 200) [
set glucose_mass ((glucose_mass * 0.025 + random-float 32.975) / 24)
]
end
to divide_hydrolyzed_glucose
if (glucose_mass > 1)
[
set glucose_mass (glucose_mass / 2)
hatch 1
]
end
to Bacteria_eat_glucose
let prey one-of glucose-here
if prey != nobody
[
ifelse [glucose_mass] of prey > [ uptake ] of myself
[
set bacteria_mass bacteria_mass + [[ uptake] of myself * 0.3]
ask prey [set glucose_mass glucose_mass – [uptake] of myself]
]
[
set bacteria_mass bacteria_mass + [glucose_mass * 0.3] of prey
ask prey [die]
]
]
end