NetLogo banner

NetLogo Publications
Contact Us

Modeling Commons

Beginners Interactive NetLogo Dictionary (BIND)
NetLogo Dictionary

User Manuals:
Farsi / Persian


NetLogo User Community Models

(back to the NetLogo User Community Models)

[screen shot]

If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".(The run link is disabled for this model because it was made in a version prior to NetLogo 6.0, which NetLogo Web requires.)


This is a predator-prey model, with fishing boats as predators and minnows as prey and plankton as food source. The minnows also feed on plankton, which is continuously regenerated. The difference between this and other predator prey models is that there are options to (a) have the fishing boats hunt minnows (b) have the minnows try to escape from the boats and (c) let the minnows school. Plus there is the option of modifying the behaviour of the fishing boats by adding in no-fish reserves. There is quantitatively different population dynamics when each of these options is selected. This model therefore serves to show the versatility of agent based modeling in complex population dynamics.


Without hunting, evading or schooling, the predator-prey part of the model works as follows. Fishing boats and minnows move about at random, when a boat finds itself on the same patch as a minnow it consumes it and gains some food-energy. Minnows are constantly grazing on available plankton and gaining energy if they find some. Plankton is replenished at a particular rate. Boats and minnows also lose energy at a rate determined by their fuel consumption/metabolism and at a rate proportional to their speed. In this way a faster speed is more costly. If minnows gain enough energy they produce one offspring, giving it losing an amount of energy called birth-energy, and giving it to their offspring. If the energy of a minnow falls below 0 they die.

Hunting Option: If boats are allowed to hunt they swim at random unless they sense at least one minnow in a cone determined by their field of view and sight range. Then they try to turn towards the nearest of these minnows and move forward at a hunting speed, which is set by a slider. Their ability to turn is limited by a maximum turn angle.

Escaping Option: If minnows are allowed to escape, they swim at random unless they sense one or more boats in a cone determined by their field of view and sight range. In this case they turn away from the nearest of these boats and move forward at an escaping speed which is set by a slider. Their ability to turn is limited by a maximum turn angle called the escaping angle

Schooling Option: If minnows are allowed to school then they will try to do so provided they sense no boats. Schooling is governed by three behaviors: avoiding, approaching and aligning. First, if there is a fellow minnow that is too close (as determined by a safety range which is set by a slider), a minnow will avoid it by turning away from it and moving forward. If there is no minnow that is too close, then a minnow will look at all the minnows in its cone of view and attempt to change its heading towards each of them in turn. The angle that it can turn is weighted by how close the minnow is to it. It makes more of an effort to turn towards closer minnows. After doing this it will try to align itself with the same heading as all the minnows in its cone of view, again turning by at most an angle, which is weighted by how close the minnow is to it. This procedure is slightly different from other methods of mimicking flocking and schooling in that there is nothing probabilistic and there is no averaging of headings (see the flocking module in the NetLogo models library, for example).


Choose the initial populations, food energy, metabolism and birth-energy for the vessels and minnows, and choose a growth rate for the plankton. Then click setup and go. You may choose any of the options, hunting, escaping or schooling at anytime that it Is running. Each of these options has its own sliders that govern the behavior. You can set speeds for escaping and hunting, and you can set the parameters that govern schooling, including the turn angle, which determines the maximum amount a minnow can turn, the sight-range which is the distance a minnow can see, the field of view, and the safety range, which is the closest a minnow will approach an other minnow before trying to avoid it. You can also turn the minnow dynamics off if you want to study some behavior, such as schooling, without worrying about minnows dying or being born.

At anytime you can add a boat by clicking on the world view. You can remove boat or harvest minnows by clicking on the relevant buttons.


The dynamics can be quite complicated, and the survival of the boats and minnows can be quite sensitive to the parameter choices. As with most predator prey models, wild oscillations in population size occur quite often, and typically precede an extinction of one or both species. It should be possible to find parameter choices where the populations are relatively stable.

The escaping, hunting and schooling options can change the dynamics dramatically, but not always in the way expected. With escaping and hunting both on there are typically fewer wild oscillations in population, and minnow population tends to increase. With schooling turned on, there is only a noticeable difference in dynamics for cases where there are relatively few boats. When there are a lot of boats the minnows do not have much time to school.


Try finding parameter choices that lead to relatively stable populations of boats and minnows with the hunting, escaping and schooling options off. Now try adding each of these options in turn to see what happens. Try the same thing with different combinations of these options.

In particular try adding some no-fishing reserves. The boats can cross the reserves but no fishing is allowed. So it costs fuel to go into reserves, the more reserves the more energy is expended. the fish can however breed up in these spaces and you can find a set of parameters that allow the most fish numbers with the most boats given a number of reserves.

If you have oscillating population dynamics, try harvesting minnows and different times to see if you can stabilize the population.


There are a lot of parameters in this model, not all of which are shown on the sliders. One might ask the question � what values of these parameters optimize the total numbers of minnows, what values optimize the total number of boats? One possible way to answer these questions would be to allow the parameters to change dynamically, by having new minnows and boats have slightly modified values of these parameters. Over time the values would change, and the �fittest� minnows and boats would emerge. This may or may not result in more minnows and boats.


This model is adapted from David McAvity (Evergreen State College) model on shark-minnow population dynamics.


Copyright 2012 Stuart Kininmonth, Eyram Apetcho, Susanna Nurdjamman, Fi Prowe and Anna Luzenczyk.

This model was created at the IMBER workshop in Ankara, Turkey.

The model may be freely used, modified and redistributed provided this copyright is included and it not used for profit.

Contact Stuart Kininmonth at if you have questions about its use.

(back to the NetLogo User Community Models)