I have just finished adding one new HUGE feature and one new possible way in which parents are effected by chick behavior to the model.
Test cases are a way for me to start the simulation running and let it run longer without interaction. There were already discrete runs of the simulation, of which there are many in a given test so that I can be fairly certain that the data collected from the model is accurate. Now there is another unit of simulation run that I am calling a test case. Each test case can have different initial values, whereas each run within a test case does not. This means that I can, for example, run a given test across all possible lateralizations and determine which amount of lateralization is optimal without having to manually start the simulation for each different value of lateralization.
Parent memory is just a second way to think about parent reaction to chick lateralization. So far, I have seen that an adult tern that picks fish up one way or the other based on how many times the chick has dropped the fish in a given feeding attempt does not have a significant effect on the chick's success. However, if the parent remembers which orientation the fish was in on the last successful feeding and offers the fish that way to the chick on the first try, success rates go up significantly with certain high levels of lateralization.
BioSimSenSem
Tuesday, April 12, 2011
Tuesday, March 29, 2011
Simulation Progress update 3
I have added two new measures for model validation:
percent failure after N drops
percent failure after N drops+misses
I have run the model with and without chick lateralization, and to my delight, the chicks are more successful at feeding with lateralization. I also know that my initial idea of parent active response to chick lateralization (switching fish orientation if the chick drops the fish some number N times) does not have any noticeable effect on chick success.
I will soon be adding new ways for parents to actively respond to chick lateralization based on memory of previous feeding attempts.
percent failure after N drops
percent failure after N drops+misses
I have run the model with and without chick lateralization, and to my delight, the chicks are more successful at feeding with lateralization. I also know that my initial idea of parent active response to chick lateralization (switching fish orientation if the chick drops the fish some number N times) does not have any noticeable effect on chick success.
I will soon be adding new ways for parents to actively respond to chick lateralization based on memory of previous feeding attempts.
Tuesday, March 15, 2011
Simulation progress update
I skipped a week with the entries to this blog, so I'll try to fill in the blanks.
I implemented lateralization for the chicks and two alternative decision logics for the parent: when the chick drops the fish, the parent will either randomly switch the fish orientation or it will switch only after the chick misses twice. This is still not realistic, but it serves as a starting point. From here I will need to determine a more accurate potential strategy for the parent that switches fish orientation with purpose.
In talking with my advisor in the bio department, it was decided that as well as trying to answer whether parents switch fish orientation in response to chick behavior, it would be nice to determine what factors involved in feeding have the largest effect on feeding success. This can be done by sweeping through ranges of possible values for the variables in my model to determine what effects different values have.
I implemented lateralization for the chicks and two alternative decision logics for the parent: when the chick drops the fish, the parent will either randomly switch the fish orientation or it will switch only after the chick misses twice. This is still not realistic, but it serves as a starting point. From here I will need to determine a more accurate potential strategy for the parent that switches fish orientation with purpose.
In talking with my advisor in the bio department, it was decided that as well as trying to answer whether parents switch fish orientation in response to chick behavior, it would be nice to determine what factors involved in feeding have the largest effect on feeding success. This can be done by sweeping through ranges of possible values for the variables in my model to determine what effects different values have.
Thursday, March 3, 2011
First (almost) meaningful simulation
I have now written and run the first draft of my simulation aimed at answering the question of whether a chick's lateralization affects its parents' behavior. The reason it is only almost meaningful is because I have yet to give it reasonable probability constants or take into account lateralization of chick behavior or orientation of the fish in the adult's beak. These things will be relatively easy to implement, though, and that is my goal over the following week (along with more measures on the simulation for determining whether the hypothers is true or false).
Tuesday, February 22, 2011
A more specific starting point.
Over the past week I came up with a more specific question to start testing and a way in which it can be tested and the model design to be used. This initial question is potentially just one of multiple questions that will help us understand lateralization of Caspian Tern chicks.
The question is: Does lateralization of Caspian Tern Chicks affect the behavior of their parents?
The hypothesis is: Tern parents adjust the orientation of fish they are feeding to their chicks based on their chicks lateralization.
This will be tested by running a simulation of an indifferent parent with a left-, right-, and non-lateralized chick and also an influenced (by the chick) parent with each type of chick.
The following diagram explains the interdependencies of the model agents based on their actions and the outcomes of those actions.
The question is: Does lateralization of Caspian Tern Chicks affect the behavior of their parents?
The hypothesis is: Tern parents adjust the orientation of fish they are feeding to their chicks based on their chicks lateralization.
This will be tested by running a simulation of an indifferent parent with a left-, right-, and non-lateralized chick and also an influenced (by the chick) parent with each type of chick.
The following diagram explains the interdependencies of the model agents based on their actions and the outcomes of those actions.
In the following week I will be working on implementing t his model in a simulation. I have already begun doing this.
Tuesday, February 15, 2011
A step backward
That is, a step back to look at the problem I am trying to solve again. I recently acquired a book entitled "Individual-based modeling and ecology." How perfect is this, I thought. And it is indeed a great resource. It has a section that lays the modeling/simulation process out in a way I have been looking for since I started this project.
Anyway, this section prompted me to take another look at the question I am asking before I begin writing detailed code. Doing so does not invalidate anything I have done so far because my code is not specialized yet.
This week I will come up with a very specific question to be answered by my model AND develop hypotheses that my model can test. This is in contrast with the very vague goal I have had so far of modeling chick survivorship.
Anyway, this section prompted me to take another look at the question I am asking before I begin writing detailed code. Doing so does not invalidate anything I have done so far because my code is not specialized yet.
This week I will come up with a very specific question to be answered by my model AND develop hypotheses that my model can test. This is in contrast with the very vague goal I have had so far of modeling chick survivorship.
Tuesday, February 8, 2011
Simulation Framework
Last week I worked on writing some foundational code for my simulation - creating Tern agent objects and a swarm to contain them. This week I actually tried to compile the results and realized I was not as familiar with the quirks of the Swarm framework as I needed to be.
Over the past week I looked at pages of documentation, numerous tutorials, and several example simulations with the aim of adapting and adopting previously used code as much as I could. One of the things I had to work my way through and dig deep to find information on was how to make a Swarm simulation discrete event rather than discrete time. Most demo code I saw was discrete time. I also had some issues arise from my lack of experience with Objective-C.
Now I have a "stupid" model running. My simulated terns simple start out stationary (except for one that moves from the start) and then move randomly once touched by another tern. The purpose of this arbitrary and meaningless exercise was two-fold. First, the fact that terns move when touched by other terns illustrates event-driven rather than time-driven actions (the basis for discrete-event simulation). Second, as well as learning how to create a simple 2D display of tern activity (less important, probably) I figured out how to create a histogram that tracks a piece of information from the simulation in real time (more important).
EDIT: next week will be about both research on the previously mentioned questions and working towards more meaningful actions and interactions for the terns.
Over the past week I looked at pages of documentation, numerous tutorials, and several example simulations with the aim of adapting and adopting previously used code as much as I could. One of the things I had to work my way through and dig deep to find information on was how to make a Swarm simulation discrete event rather than discrete time. Most demo code I saw was discrete time. I also had some issues arise from my lack of experience with Objective-C.
Now I have a "stupid" model running. My simulated terns simple start out stationary (except for one that moves from the start) and then move randomly once touched by another tern. The purpose of this arbitrary and meaningless exercise was two-fold. First, the fact that terns move when touched by other terns illustrates event-driven rather than time-driven actions (the basis for discrete-event simulation). Second, as well as learning how to create a simple 2D display of tern activity (less important, probably) I figured out how to create a histogram that tracks a piece of information from the simulation in real time (more important).
EDIT: next week will be about both research on the previously mentioned questions and working towards more meaningful actions and interactions for the terns.
Subscribe to:
Posts (Atom)
