You have to kiss a lot of frogs to find your prince. This model highlights basic agent-agent
interactions using three separate agents: a frog, a princess, and a prince. As the model
progresses, the princesses kiss the frogs to find their princes. Users can change the quantity of
agents to view the effect that the number of agents has on the rate of change. This basic
fairytale model is commonly used as an introduction to building agent-based models and to teach
students the concepts behind agent-agent interactions. For more information about AgentSheets,
reference the AgentSheets tutorial
here.
Background Information
Agent-based modeling simulates autonomous individual components, called agents, that each follows
a set of rules governing their behavior and interaction. The agents are representations of objects
that one studies in a functional context, for example, chemical compounds in a reaction, or
predators and prey in an ecosystem. Dynamic representation (simulations) of these concepts helps
students make the connection from qualitative description to functional representation. Using the
controllable environment of the model, students can be guided through a contemporary version of
the scientific method that includes computational modeling as a key component. From the design of
experiments, visualization and analysis of data, interpretation of results, comparison between
model behavior and experimental data, interpretation, model revision, and design of additional
rounds of experiments to repeat the cycle. Before building a computer model within AgentSheets, it
is important to write a model story, which serves as instructions for the simulation. Nouns
represent agents, adjectives represent different depictions of those agents, and verbs represent
actions. AgentSheets uses primarily if/then/else statements.
Science/Math
Within AgentSheets, especially using the Far Far Away model, one can study the population graph of
all agents. The basic scientific equation behind this is HAVE = HAD + CHANGE. As the CHANGE is
added to the HAD, we can expect HAVE to be different. In this case, the frog prince population
either increases or decreases depending on whether princesses kiss the frog princes or if the
witch turns princes into frog princes.
Teaching Strategies
When introducing this subject, it is beneficial to explain the basic modeling equation, HAVE = HAD
+ CHANGE. One way is to relate the equation to the simple concept of cause and effect. As it
pertains to the model, the princess' kiss effects the frog's transformation into a prince. Also,
the witch's poison causes the princess to fall asleep. Both of which change the "HAVE" of the
population graphs for the prince, frog prince, and princess.
Talking Points
HAVE = HAD + CHANGE. Explain how this is the basic equation of agent-based modeling. Can relate
it to cause and effect.
Bring up the idea of "model scaffolding" and how it is the basic idea behind building computer
models and simulations. Model scaffolding is the idea that one must first build a simple model
that has working behavior for all agents. Then once complete, they are able to build more
complex models based off of the original, thus building a series of models that increase in
complexity. In this example, one could add knights, wizards, dragons, castles, etc. to complete
the fairy tale story.
Implementation:
How to use the Model
This is a very short and simple AgentSheets simulation. This model can be used to demonstrate how
different behaviors affect population graphs. Even with limited frogs and one princess, the
outcome will usually result in at least one prince, if the two interact. The model consists of:
frogs, princesses, princes, and witches. The model can be set to have more or fewer frogs and
princesses using the toolbox on the upper left side of the background field. The pointer allows
the user to select and move agents (frogs, princesses, witches, etc). The pencil creates new
agents. The user clicks the pencil, the agent, and where they want it to be placed on the
environment. The eraser deletes the agents as selected. The filled-in rectangle fills in a whole
section of the field based on the size of the rectangle the user makes. A slider bar at the bottom
of the background field controls the model reaction rate. At the bottom of the model are buttons
that run and build the model. The arrow runs the model by "ticks" (each click). For more
information about Agentsheets reference the Agentsheets tutorial
here.
Learning Objectives:
Understand the modeling equation, HAVE = HAD + CHANGE as it pertains to an agent-based model and
the idea of model scaffolding
Understand how the amount of a population and population density affect the model
Objective 1
Agent-based modeling is a simulation that represents complex processes in agent form. Using
Agentsheets, students can view ever-changing population graphs within the frog-to-prince aspect of
the model. To accomplish this objective, first review simple cause-and-effect concepts, and then
ask these questions:
What are all the different ways you can increase/decrease the population of princes?
How could you extend this model and make it more complex?
What other scientific concepts could you model using the same idea as this model? (When one
agent interacts with another, causing a change -> chemical reactions, predator/prey, etc.)
Later, have students look at the model to see if they can find any patterns/relationships between
the values over time, without changing the initial amounts. Then, suggest trying different initial
quantities of frogs, princesses, and witches in order to understand how the prince population
changes.
Objective 2
Have students manipulate each of the changeable parameters to see the effect they have on the
simulation. Ask the following questions to guide their exploration:
What happens to the modeling field if you increase or decrease the amount of frogs? Princesses?
Witches?
What do you think would happen if we added lots of lake to our model?
Write a story that correctly depicts all behaviors of all agents within the model. If another
read your story without seeing the model, is this what they would expect to see?
Extensions:
Model how other variables can affect the populations (i.e. poisonous frogs that poison the
princess, wizards, knights, etc.)
2. Relate this model to that of a chemical reaction
Extension 1
Ask students to project what would happen if there were more variables considered in the equation.
As a group or individually have students come up with some variables they would like to add to the
model. For example, they might include poisonous frogs that poison the princesses, wizards that
can wake up sleeping princesses, or knights that fight witches. Then, add the new agents to the
model story and decide what each should affect. Ask the following questions:
In what ways do we expect the changes to affect the model? Increased prince populations? Witches
decrease chance of poisoning princesses?
Do the changes allow for a different outcome in the simulation? Name all
How do you interpret the model flow/behavior with the added variables?
Extension 2
To accomplish this objective, explain to students the basic idea of a chemical reaction (reactants
change to products upon chemical reaction). Next ask them to think about which agents would
represent reactants and which ones would represent products (for ex. reactants: princess, frog;
products: prince) Ask the following questions:
Are there multiple interactions that could represent a chemical reaction?
How would you change your model story reflect a chemical reaction?
This is a simple dynamics model of generic chemical reaction relationships. As the model
progresses, reactants change into intermediaries, which then change to products. Users can change
the parameter of reactions in order to view the rates of transformation and concentration's of
compounds. This model is useful as a way to compare the results of the Far, Far Away model to a
real chemical reaction.
This model represents the spread of disease through a population via an agent-based simulation.
Whenever a healthy individual comes into contact with a sick individual, the healthy person has a
chance of becoming sick. The epidemic model is closely related to the Far, Far Away model;
however, in Far, Far Away the "infected" population (princes) cannot spread the disease. The
growth rate of the population of princes therefore approximates a logarithmic function rather than
a cumulative normal distribution.