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.

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.

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.

Tuesday, February 1, 2011

Simulation progress update 1

I am working on the skeleton code for the simulation environment. This includes agents, the environment, and swarms.

A swarm is a group of agents that are grouped together. In the simplest scenario the swarm merely contains the agents and has no consequence beyond being a container. In more complex scenarios the swarm could be considered an agent itself in which the swarm agent's behavior is determined by the behavior of the agents it contains. The term swarm might very well only be applied in the context of Swarm simulations. Swarm is a simulation framework/environment that I chose to use for this project.

Agents, as mentioned in a previous post, will include Caspian Terns and Gulls (and perhaps a more generalized predator object). Caspian Tern objects will represent both chick and adult terns. In Swarm simulations, the environment is often technically an agent as well so that it can act upon other agents and at the very least be observed easily. Swarm has a built-in mechanism by which special observer agents monitor other agents for the purpose of getting data from the simulation at run-time.