Permanent Choices in NetLogo
In this model, if certain conditions are met, farmers invest in their Rate of Production (RoP). If other conditions are met, they invest in their Standard of Living (SoL).
Currently, this is executed via several if statements within the To Invest procedure at each time step.
How can I make the courses of action permanent. For example, if the first farm at tick 2 meets the conditions to invest in RoP, that farm should continue to do so at each subsequent time step, not have the option at tick 3 to invest in SoL. How can I make this action permanent?
to invest
let p random 100
set excess-prev-tick farm-excess
if ( farm-excess > 0 and p <= 30 ) [
set farm-RoP ( farm-RoP + farm-excess )]
if ( farm-excess > 0 and p > 30 and SoL < SoL-max ) [
set SoL ( SoL + 0.1 )]
if ( farm-excess > 0 and p > 30 ) [
set farm-RoC ( farm-RoC + ( count patches in-radius farm-size * 2 ))]
if farm-excess < 0 and SoL >= SoL-min [
set SoL ( SoL - 0.05) ]
set farm-excess (farm-ROP - farm-RoC)
set RoExp ((farm-excess - excess-prev-tick) / (excess-prev-tick))
end
simulation netlogo
add a comment |
In this model, if certain conditions are met, farmers invest in their Rate of Production (RoP). If other conditions are met, they invest in their Standard of Living (SoL).
Currently, this is executed via several if statements within the To Invest procedure at each time step.
How can I make the courses of action permanent. For example, if the first farm at tick 2 meets the conditions to invest in RoP, that farm should continue to do so at each subsequent time step, not have the option at tick 3 to invest in SoL. How can I make this action permanent?
to invest
let p random 100
set excess-prev-tick farm-excess
if ( farm-excess > 0 and p <= 30 ) [
set farm-RoP ( farm-RoP + farm-excess )]
if ( farm-excess > 0 and p > 30 and SoL < SoL-max ) [
set SoL ( SoL + 0.1 )]
if ( farm-excess > 0 and p > 30 ) [
set farm-RoC ( farm-RoC + ( count patches in-radius farm-size * 2 ))]
if farm-excess < 0 and SoL >= SoL-min [
set SoL ( SoL - 0.05) ]
set farm-excess (farm-ROP - farm-RoC)
set RoExp ((farm-excess - excess-prev-tick) / (excess-prev-tick))
end
simulation netlogo
add a comment |
In this model, if certain conditions are met, farmers invest in their Rate of Production (RoP). If other conditions are met, they invest in their Standard of Living (SoL).
Currently, this is executed via several if statements within the To Invest procedure at each time step.
How can I make the courses of action permanent. For example, if the first farm at tick 2 meets the conditions to invest in RoP, that farm should continue to do so at each subsequent time step, not have the option at tick 3 to invest in SoL. How can I make this action permanent?
to invest
let p random 100
set excess-prev-tick farm-excess
if ( farm-excess > 0 and p <= 30 ) [
set farm-RoP ( farm-RoP + farm-excess )]
if ( farm-excess > 0 and p > 30 and SoL < SoL-max ) [
set SoL ( SoL + 0.1 )]
if ( farm-excess > 0 and p > 30 ) [
set farm-RoC ( farm-RoC + ( count patches in-radius farm-size * 2 ))]
if farm-excess < 0 and SoL >= SoL-min [
set SoL ( SoL - 0.05) ]
set farm-excess (farm-ROP - farm-RoC)
set RoExp ((farm-excess - excess-prev-tick) / (excess-prev-tick))
end
simulation netlogo
In this model, if certain conditions are met, farmers invest in their Rate of Production (RoP). If other conditions are met, they invest in their Standard of Living (SoL).
Currently, this is executed via several if statements within the To Invest procedure at each time step.
How can I make the courses of action permanent. For example, if the first farm at tick 2 meets the conditions to invest in RoP, that farm should continue to do so at each subsequent time step, not have the option at tick 3 to invest in SoL. How can I make this action permanent?
to invest
let p random 100
set excess-prev-tick farm-excess
if ( farm-excess > 0 and p <= 30 ) [
set farm-RoP ( farm-RoP + farm-excess )]
if ( farm-excess > 0 and p > 30 and SoL < SoL-max ) [
set SoL ( SoL + 0.1 )]
if ( farm-excess > 0 and p > 30 ) [
set farm-RoC ( farm-RoC + ( count patches in-radius farm-size * 2 ))]
if farm-excess < 0 and SoL >= SoL-min [
set SoL ( SoL - 0.05) ]
set farm-excess (farm-ROP - farm-RoC)
set RoExp ((farm-excess - excess-prev-tick) / (excess-prev-tick))
end
simulation netlogo
simulation netlogo
asked Nov 25 '18 at 12:59
Melonie RicheyMelonie Richey
62
62
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The easiest way is to create a variable for each farmer (using a farmers-own statement) that is initialised as "undecided" and then becomes either "production" or "living" when the condition is met for one of them. You should then organise your invest code to have different calculations for different subgroups of farmers (so something like ask farmers with [invest-type = "undecided"][ <do stuff> ]
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53467688%2fpermanent-choices-in-netlogo%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The easiest way is to create a variable for each farmer (using a farmers-own statement) that is initialised as "undecided" and then becomes either "production" or "living" when the condition is met for one of them. You should then organise your invest code to have different calculations for different subgroups of farmers (so something like ask farmers with [invest-type = "undecided"][ <do stuff> ]
add a comment |
The easiest way is to create a variable for each farmer (using a farmers-own statement) that is initialised as "undecided" and then becomes either "production" or "living" when the condition is met for one of them. You should then organise your invest code to have different calculations for different subgroups of farmers (so something like ask farmers with [invest-type = "undecided"][ <do stuff> ]
add a comment |
The easiest way is to create a variable for each farmer (using a farmers-own statement) that is initialised as "undecided" and then becomes either "production" or "living" when the condition is met for one of them. You should then organise your invest code to have different calculations for different subgroups of farmers (so something like ask farmers with [invest-type = "undecided"][ <do stuff> ]
The easiest way is to create a variable for each farmer (using a farmers-own statement) that is initialised as "undecided" and then becomes either "production" or "living" when the condition is met for one of them. You should then organise your invest code to have different calculations for different subgroups of farmers (so something like ask farmers with [invest-type = "undecided"][ <do stuff> ]
answered Nov 26 '18 at 2:19
JenBJenB
8,85911036
8,85911036
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53467688%2fpermanent-choices-in-netlogo%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown