Bluebles3

No preview image

1 collaborator

Default-person Kay Ramey (Author)

Tags

(This model has yet to be categorized with any tags)
Model group LS426-2012 | Visible to everyone | Changeable by the author
Model was written in NetLogo 5.0RC7 • Viewed 421 times • Downloaded 43 times • Run 0 times
Download the 'Bluebles3' 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?

Bluebles3 is a model of natural selection via predation. In this model there are two types of Bluebles: Green Longneck Bluebles and Blue Longneck Bluebles. The model shows what happens to the Bluebles in the presence of a predatory species, Yeeblows, that only eat Bluebles they can see (the blue ones) not the ones that are camouflaged (the green ones).

HOW IT WORKS

The model starts with a random arrangement of Yeeblows and the two different types of Bluebles, the amounts of which are determined by the initial-number-x sliders (eg. "initial-number-yeeblows", "initial-number-greenlongneckbluebles," "initial-number-bluelongneckbluebles). Both Bluebles and Yeeblows use energy to move around, which they must regain by eating. Bluebles eat trees (the green patches) to regain energy. After it has been eaten, the trees regrows after a random number of ticks (0-10). Yeeblows prey on the Bluebles, with the rule that they only eat the blue Bluebles, not any of the green ones. If a Blueble's or Yeeblow's energy drops below zero it dies.

Both the Bluebles and the Yeeblows will also reproduce. The likelihood or proability (%) of their reproduction will be based on the "Bluebles-reproduce" and "Yeeblows-reproduce" sliders. Each Blueble will hatch a Blueble of the same type when it reproduces. In other words, Blue Longneck Bluebles will hatch more Blue Longneck Bluebles, while Green Longneck Bluebles will hatch more Green Longneck Bluebles. Yeeblows will also hatch more Yeeblows.

HOW TO USE IT

Adjust the "initial-number-yeeblows", "initial-number-bluelongneckbluebles," and "initial-number-greenlongneckbluebles" sliders to determine how many of each breed the model will start with. Then adjust the "Bluebles-reproduce" and "Snurples-reproduce" sliders to set the likelihood of reproduction for Bluebles and Snurple.

Note that the "Bluebles-reproduce" slider adjusts the likelihood of reproduction for both types of Bluebles.

After adjusting the sliders, press the "Setup" button to populate the model and then the "Go" button to run it. To stop the model, simply press the "Go" button a second time.

THINGS TO NOTICE

Notice that if you set the model so that there are 28 Yeeblows, 22 Blue Longneck Bluebles and 22 Green Longneck Bluebles and so that Yeeblows have a 1% chance of reproducing and Bluebles have a 3% chance, the model shows trait extinction of the Blue Longneck Blueble body type. It is also important to note both that this happens gradually and that after the Blue Longneck Bluebles have all died, the Yeeblows begin die as well because of lack of food.

Also notice that with other settings, especially ones were the Yeeblow reproduction rate is higher than that of the Bluebles, the ecosystem is unstable and the Yeeblows die out before they have eaten all of the Blue Longneck Bluebles.

THINGS TO TRY

First, try adjusting the settings so that there are 28 Yeeblows, 22 Blue Longneck Bluebles and 22 Green Longneck Bluebles and so that Yeeblows have a 1% chance of reproducing and Bluebles have a 3% chance.

After you have run the model once with the settings above, try adjusting the Yeeblow and Blueble settings to see if you can get different results.

Now try adjusting the settings to see if you can create a stable ecosystem consisting of Bluebles, Yeeblows and Trees. Can you find any settings that generate a stable ecosystem?

EXTENDING THE MODEL

One way to extend the model would be to try changing the reproduction rules. For example, what would happen if reproduction depended on energy rather than being determined by a fixed probability? What would happen if Blue Longneck Bluebles didn't produce only Blue Longneck Bluebles, but were also able to produce Green Longneck Bluebles?

Another way to extend the model would be to try changing the rules for Yeeblows eating Bluebles. What would happen if Yeeblows were not limited to only eating Blue Bluebles but had a fixed probability of eating both types of Blueble?

NETLOGO FEATURES

Note the use of breeds to model five different kinds of "turtles": Blue Longneck Bluebles, Green Longneck Bluebles and Yeeblows.

Note the use of patches to model trees.

Note the use of the ONE-OF agentset reporter to select a random Blue Longneck Blueble to be eaten by a Yeeblow.

Note the use of the "Turtle Shapes Editor" tool to create unique and relatively complex turtle shapes.

RELATED MODELS

Look at "Wolf-Sheep Predation" for another example of predator prey relationships.

For another example of predator prey relationships and natural selection, look at the "Bug Hunt Coevolution" model.

Comments and Questions

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

Click to Run Model

globals [trees]  ;; keep track of how many trees there are
;; Blue Longneck Bluebles, Green Longneck Bluebles and Yeeblows are all breeds of turtle.

breed [bluelongneckbluebles bluelongneckblueble] 
breed [greenlongneckbluebles greenlongneckblueble] 
breed [yeeblows yeeblow]
turtles-own [energy]       ;;delete
patches-own [countdown]

to setup
  clear-all
  ask patches [ set pcolor 64 ]
    ask patches [
      set countdown random 10 ;; initialize trees grow clocks randomly
      set pcolor one-of [64 white] ;; green or white
    ]
 
   set-default-shape bluelongneckbluebles "longneck blueble"
  create-bluelongneckbluebles initial-number-bluelongneckbluebles  ;; create the blue longneck bluebles, then initialize their variables
  [
    set color 105 ;; blue
    set size 7  ;; easier to see    
    set energy random 2
    setxy random-xcor random-ycor
  ]
   set-default-shape greenlongneckbluebles "longneck blueble"
  create-greenlongneckbluebles initial-number-greenlongneckbluebles  ;; create the green longneck bluebles, then initialize their variables
  [
    set color 64 ;; green
    set size 7  ;; easier to see    
    set energy random 2
    setxy random-xcor random-ycor
  ]
  set-default-shape yeeblows "yeeblow"
  create-yeeblows initial-number-yeeblows  ;; create the yeeblows, then initialize their variables
  [
    set color yellow 
    set size 7  ;; easier to see
    set energy random 50
    setxy random-xcor random-ycor
  ]
  set trees count patches with [pcolor = 64]
  reset-ticks
end 

to go
  if not any? turtles [ stop ]
   ask bluelongneckbluebles [
    move
      set energy energy - 1  ;; deduct energy for bluelongneckbluebles 
      eat-trees
    death
    reproduce-bluelongneckbluebles
  ]
  ask greenlongneckbluebles [
    move
      set energy energy - 1  ;; deduct energy for greenlongneckbluebles
      eat-trees
    death
    reproduce-greenlongneckbluebles
  ]
  ask yeeblows [
    move
    set energy energy - 1  ;; yeeblows lose energy as they move
    catch-bluelongneckbluebles ;; yeeblows eat only blue longneck bluebles
    death
    reproduce-yeeblows
  ]
  ask patches [ grow-trees ] 
  set trees count patches with [pcolor = 64] ;; green
  tick
end 

to move  ;; turtle procedure
  rt random 50
  lt random 50
  fd 1
end 

to eat-trees  ;; bluebles procedure
  ;; bluebles eat trees, turn the patch white
  if pcolor = 64 [ ;; green
    set pcolor white 
    set energy energy + 2 ;; bluebles gain energy by eating
  ]
end 

to reproduce-bluelongneckbluebles  ;; bluelongneckbluebles procedure
  if random-float 100 < bluebles-reproduce [  ;; throw "dice" to see if you will reproduce
    set energy (energy / 2)                ;; divide energy between parent and offspring
    hatch 1 [ rt random-float 360 fd 1 ]   ;; hatch an offspring and move it forward 1 step
  ]
end 

to reproduce-greenlongneckbluebles  ;; greenlongneckbluebles procedure
  if random-float 100 < bluebles-reproduce [  ;; throw "dice" to see if you will reproduce
    set energy (energy / 2)                ;; divide energy between parent and offspring
    hatch 1 [ rt random-float 360 fd 1 ]   ;; hatch an offspring and move it forward 1 step
  ]
end 

to reproduce-yeeblows  ;; yeeblow procedure
  if random-float 100 < yeeblows-reproduce [  ;; throw "dice" to see if you will reproduce
    set energy (energy / 2)               ;; divide energy between parent and offspring
    hatch 1 [ rt random-float 360 fd 1 ]  ;; hatch an offspring and move it forward 1 step
  ]
end 

to catch-bluelongneckbluebles  ;; yeeblow procedure
  let prey one-of bluelongneckbluebles-here     ;; grab a random bluelongneckblueble
  if prey != nobody                             ;; did we get one?  if so,
    [ ask prey [ die ]                          ;; kill it
      set energy energy + 100 ]                 ;; get energy from eating
end 

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

to grow-trees  ;; patch procedure
  ;; countdown on white patches: if reach 0, grow some trees
  if pcolor = white [
    ifelse countdown <= 0
      [ set pcolor 64
        set countdown 10 ]
      [ set countdown countdown - 1 ]
  ]
end 

There is only one version of this model, created over 13 years ago by Kay Ramey.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.