Wolf Sheep Stride Inheritance

Wolf Sheep Stride Inheritance preview image

2 collaborators

Uri_dolphin3 Uri Wilensky (Author)
Default-person Michael Novak (Author)

Tags

biology 

Tagged by Reuven M. Lerner almost 11 years ago

population dynamics 

Tagged by Reuven M. Lerner almost 11 years ago

Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 823 times • Downloaded 58 times • Run 5 times
Download the 'Wolf Sheep Stride Inheritance' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This model is a variation on the predator-prey ecosystems model wolf-sheep predation.
In this model, predator and prey can inherit a stride length, which describes how far forward they move in each model time step. When wolves and sheep reproduce, the children inherit the parent's stride length -- though it may be mutated.

HOW IT WORKS

At initialization wolves have a stride of INITIAL-WOLF-STRIDE and sheep have a stride of INITIAL-SHEEP-STRIDE. Wolves and sheep wander around the world moving STRIDE-LENGTH in a random direction at each step. Sheep eat grass and wolves eat sheep, as in the Wolf Sheep Predation model. When wolves and sheep reproduce, they pass their stride length down to their young. However, there is a chance that the stride length will mutate, becoming slightly larger or smaller than that of its parent.

HOW TO USE IT

INITIAL-NUMBER-SHEEP: The initial size of sheep population
INITIAL-NUMBER-WOLVES: The initial size of wolf population

Half a unit of energy is deducted from each wolf and sheep at every time step. If STRIDE-LENGTH-PENALTY? is on, additional energy is deducted, scaled to the length of stride the animal takes (e.g., 0.5 stride deducts an additional 0.5 energy units each step).

WOLF-STRIDE-DRIFT and SHEEP-STRIDE-DRIFT: How much variation an offspring of a wolf or a sheep can have in its stride length compared to its parent. For example, if set to 0.4, then an offspring might have a stride length up to 0.4 less than the parent or 0.4 more than the parent.

THINGS TO NOTICE

WOLF STRIDE HISTOGRAM and SHEEP STRIDE HISTOGRAM will show how the population distribution of different animal strides is changing.

In general, sheep get faster over time and wolves get slower or move at the same speed. Sheep get faster in part, because remaining on a square with no grass is less advantageous than moving to new locations to consume grass that is not eaten. Sheep typically converge on an average stride length close to 1. Why do you suppose it is not advantageous for sheep stride length to keep increasing far beyond 1?

If you turn STRIDE-LENGTH-PENALTY? off, sheep will become faster over time, but will not stay close to a stride length of 1. Instead they will become faster and faster, effectively jumping over multiple patches with each simulation step.

THINGS TO TRY

Try adjusting the parameters under various settings. How sensitive is the stability of the model to the particular parameters?

Can you find any parameters that generate a stable ecosystem where there are at least two distinct groups of sheep or wolves with different average stride lengths?

EXTENDING THE MODEL

Add a cone of vision for sheep and wolves that allows them to chase or run away from each other. Make this an inheritable trait.

NETLOGO FEATURES

This model uses two breeds of turtle to represent wolves and sheep.

RELATED MODELS

Wolf Sheep Predation, Bug Hunt Speeds

HOW TO CITE

If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

COPYRIGHT AND LICENSE

Copyright 2006 Uri Wilensky.

CC BY-NC-SA 3.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals [
  max-energy           ;; the maximum amount of energy any animal can have
  min-energy           ;; the minimum amount of energy an animal needs to reproduce
  max-stride           ;; the maximum stride length, the minimum stride length is 0,
                       ;; the stride will always be between these limits
  wolf-gain-from-food  ;; energy units wolves get for eating
  sheep-gain-from-food ;; energy units sheep get for eating
  sheep-reproduce      ;; probability that sheep will reproduce at each time step
  wolf-reproduce       ;; probability that wolves will reproduce at each time step
  grass-regrowth-time  ;; number of ticks before eaten grass regrows.
]

breed [sheep a-sheep]
breed [wolves wolf]

turtles-own [ energy stride-length ]
patches-own [ countdown ]  ;; patches countdown until they regrow

to setup
  clear-all
  ;; initialize constant values
  set max-stride 3
  set min-energy 200
  set max-energy 500
  set wolf-gain-from-food 20
  set sheep-gain-from-food 20
  set sheep-reproduce 5
  set wolf-reproduce 6
  set grass-regrowth-time 138

  ;; setup the grass
  ask patches [ set pcolor green ]
  ask patches [
    set countdown random grass-regrowth-time ;; initialize grass grow clocks randomly
    if random 2 = 0  ;;half the patches start out with grass
      [ set pcolor brown ]
  ]

  set-default-shape sheep "sheep"
  create-sheep initial-number-sheep  ;; create the sheep, then initialize their variables
  [
    set color white
    set stride-length initial-sheep-stride
    set size max-stride  ;; easier to see
    set energy random max-energy
    setxy random-xcor random-ycor
  ]

  set-default-shape wolves "wolf"
  create-wolves initial-number-wolves  ;; create the wolves, then initialize their variables
  [
    set color black
    set stride-length initial-wolf-stride
    set size max-stride  ;; easier to see
    set energy random max-energy
    setxy random-xcor random-ycor
  ]
  reset-ticks
end 

to go
  if not any? turtles [ stop ]
  ask sheep [
    move
    ;; sheep always loose 0.5 units of energy each tick
    set energy energy - 0.5
    ;; if larger strides use more energy
    ;; also deduct the energy for the distance moved
    if stride-length-penalty?
    [ set energy energy - stride-length ]
    eat-grass
    maybe-die
    reproduce-sheep
  ]
  ask wolves [
    move
    ;; wolves always loose 0.5 units of energy each tick
    set energy energy - 0.5
    ;; if larger strides use more energy
    ;; also deduct the energy for the distance moved
    if stride-length-penalty?
    [ set energy energy - stride-length ]
    catch-sheep
    maybe-die
    reproduce-wolves
  ]
  ask patches [ grow-grass ]
  tick
end 

to move  ;; turtle procedure
  rt random-float 50
  lt random-float 50
  fd stride-length
end 

to eat-grass  ;; sheep procedure
  ;; sheep eat grass, turn the patch brown
  if pcolor = green [
    set pcolor brown
    set energy energy + sheep-gain-from-food  ;; sheep gain energy by eating
    if energy > max-energy
    [ set energy max-energy ]
  ]
end 

to reproduce-sheep  ;; sheep procedure
  reproduce sheep-reproduce sheep-stride-length-drift
end 

to reproduce-wolves  ;; wolf procedure
  reproduce wolf-reproduce wolf-stride-length-drift
end 

to reproduce [reproduction-chance drift] ;; turtle procedure
  ;; throw "dice" to see if you will reproduce
  if random-float 100 < reproduction-chance and energy > min-energy [
    set energy (energy / 2 )  ;; divide energy between parent and offspring
    hatch 1 [
      rt random-float 360
      fd 1
      ;; mutate the stride length based on the drift for this breed
      set stride-length mutated-stride-length drift
    ]
  ]
end 

to-report mutated-stride-length [drift] ;; turtle reporter
  let l stride-length + random-float drift - random-float drift
  ;; keep the stride lengths within the accepted bounds
  if l < 0
  [ report 0 ]
  if stride-length > max-stride
  [ report max-stride ]
  report l
end 

to catch-sheep  ;; wolf procedure
  let prey one-of sheep-here
  if prey != nobody
  [ ask prey [ die ]
    set energy energy + wolf-gain-from-food
    if energy > max-energy [set energy max-energy]
  ]
end 

to maybe-die  ;; turtle procedure
  ;; when energy dips below zero, die
  if energy < 0 [ die ]
end 

to grow-grass  ;; patch procedure
  ;; countdown on brown patches, if reach 0, grow some grass
  if pcolor = brown [
    ifelse countdown <= 0
      [ set pcolor green
        set countdown grass-regrowth-time ]
      [ set countdown countdown - 1 ]
  ]
end 


; Copyright 2006 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky almost 11 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky over 11 years ago Updated version tag Download this version
Uri Wilensky over 11 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 12 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Model from NetLogo distribution Download this version
Uri Wilensky almost 14 years ago Wolf Sheep Stride Inheritance Download this version

Attached files

File Type Description Last updated
Wolf Sheep Stride Inheritance.png preview Preview for 'Wolf Sheep Stride Inheritance' about 11 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.