NCSI Talks


Princes and Princesses Learning Scenario (Web)

Shodor > NCSI Talks > Vensim > Princes and Princesses Learning Scenario (Web)

Learning Scenario - Princes and Princesses (Vensim)

Basic Model:


This is a model of the interactions between five populations - princes, frogs, princesses, sleeping beauties, and witches. As the simulation runs, witches transform princes into frogs and princesses into sleeping beauties, while princes can transform sleeping beauty's back into a princess and princesses turn frogs back to princes. The total number of princes and frogs, princesses and sleeping beauties, and witches are fixed; members of the populations can be converted to members of other populations, but there is no birth or death.

Background Information

According to traditional fairy tales, princes are sometimes transformed by witches into frogs, and princesses are sometimes poisoned by witches so that they enter an enchanted sleep. In either case, the cure for this aliment is a kiss from their opposite number. This simulation models this story as if it were a population problem. All five groups exist within this model and interact with one another as the stories suggest, allowing the user to see how these effects determine the size of each population over time.


  1. This model works on the basic principle of HAVE = HAD + CHANGE for each of the population groups. Each tick, a certain number of princes are converted to frogs, princesses are converted to sleeping beauties, and vice versa. The conversion rates are proportional to the other populations in the model, including the population of witches (which does not change over time). Each pair of populations (prince/frog, princess/sleeping beauty) has a fixed total, so knowing the population of one of the pairs is sufficient to determine the population of the other. The model's evolution can be roughly described by the following equations:
  2. Sleeping Beauties: SBeauties = SBeauties + a * Witches
  3. Princesses: Princesses = Princesses + b * Princes
  4. Frogs: Frogs = Frogs + c * Witches
  5. Princes: Princes = Princes + d * Princesses
  6. For all of these equations, a, b, c, and d are arbitrary proportions that determine the rate at which members of the population are converted. In the actual model, these constants are randomly determined separately for each tick, so the evolution of the model is not pre-determined.

Teaching Strategies

    An effective way of introducing this model is to have students discuss fairy tales that they heard when they were younger. In particular, ask students to think about ways in which they could model a fairy tale using a population model. Nearly all fairy tales involve the changing of an individual from one type of person to another, so be sure students consider the ways in which individuals change from one to another. Ask the following questions:

  1. In your fairy tale, in what way can members of one population convert from being members of one group to members of another?
  2. What rules are there in your model that might not be included in a different model?
  3. Does an agent model or a system model make more sense to represent your fairy tale? Why?
  4. Are there any important pieces of your model that cannot be directly represented by an agent or system model? How can you approximate/account for these issues?
  5. When they finish brainstorming, have students draw a conceptual diagram of the different groups of individuals in their model. Discuss the ways in which individuals can change group, represented by an arrow from their previous group to their new group. Once students have finished brainstorming, have them open the model itself and see to what extent their diagram matches the Vensim diagram.


How to use the Model

    This systems model has five parameters that can be manipulated to give a result, as follows:

  1. Witch density: the number of witches in the model
  2. Whacked: the rate at which princes are converted into frogs, dependent on the quantity of witches
  3. Poisoned: the rate at which princesses are converted into sleeping beauties, dependent on the quantity of witches
  4. Kissed by a prince: the rate at which sleeping beauties are converted into princesses, dependent on the quantity of princes
  5. Kissed by a princess: the rate at which frogs are converted into princes, dependent on the quantity of princesses
  6. Each of these parameters can be manipulated by right-clicking on it and choosing "Equation". This allows users to set the exact values for the parameters in question. A faster and more intuitive method, though a less accurate one, is to click and drag the slider below the witch density. The slider can only be used while the simulation is running, but it will update instantly, so you can immediately see how changing the parameters changes the results. When the applet is run, it will automatically run for 200 time periods, measuring and recording the values of each parameter at each time period. The data is then displayed on graphs displayed on top of each variable, including dependent variables that are not set by the user. Looking at the graphs gives an easy and simple way to follow the changes over time in each of the populations and the overall outcome. The quantities over time for all four changeable populations are also displayed on the larger graph to the right of the simulation area, making it easy to compare the relative size of each group. For more information on Vensim, reference the Vensim tutorial at:

Learning Objectives:

    Understand the effect of each parameter on the outcomes for each population. Understand the effect and importance of the random element in calculating the next round

Objective 1

    To accomplish this objective, have students run the model without changing any parameters. Explain how the results are displayed on the model: the simulation runs for 100 time steps, and then displays the quantities of each population at each time step on their own graphs. The graphs aren't particularly detailed or well scaled, but they give quick and easy insight into the overall population changes over time. The simulation with default settings generates equilibrium. Ask the following questions:

  1. Does the total number of individuals being modeled change over time? Why or why not?
  2. Why do you think that the model goes to equilibrium as it is currently set up?
  3. Does the fixed population imply that there must be an equilibrium, or is it possible to set up the model so that it goes to completion?
  4. If it is possible to make the model go to completion, what parameters should be changed to make that occur?
  5. Now, have students implement one of their proposed modifications and note the changes. Ask the following questions:

  6. What happens to the population of each group over time now? Is that what you were looking for?
  7. Given the element of randomness in the model, can you guarantee that your model will always go to completion? Why or why not?

Objective 2

    To accomplish this objective, have students consider what it means to include a random multiplier in all of the proportions calculated each round. Ask the following questions:

  1. By what percentage can the random multiplier change the outcome in the first round? In the second? In the 100th (estimate)? What does this tell you about including random factors in recursive models like this?
  2. Agent models also have an element of randomness, in that each agent usually moves about and interacts with the others randomly. Does adding a random element here make this model a better or worse representation of an agent model? Why? (Answer: worse - randomizations don't "cancel out", so it is no closer to the other model than before. Additionally, without a random factor the system model is guaranteed to give us the mean or expected value of the agent model; but with a random factor that is no longer the case)
  3. What are some reasons that a modeler might choose to include a random factor in his/her systems model?


  1. Expand the model to include a new group, wizards, that can kill off witches
  2. Understand the ways in which this model is applicable to the real world

Extension 1

    Ask students to brainstorm adding a new population group that would interact with witches, wizards. This will require not only adding a new group, but also modifying the Witches group to allow it to be considered as a variable population rather than a fixed parameter. Wizards' sole interaction with the world is that they kill witches, so the witch population will exponentially decrease proportional to the number of wizards. After adding the new variable, students should ensure that the population of witches, previously hidden, will now be displayed on the graph. Ask students the following questions:

  1. How does the population of witches change over time? In what ways is its graph different from the previous parameter graphs?
  2. How have the graphs for the other variables changed since wizards were implemented? Why?
  3. Does this model go to completion or equilibrium? Why? Is it possible to get the other result from this model without setting any parameters to zero? How do you know?

Extension 2

    Ask students to think about other types of models that might have four populations that are paired up in this manner, with a fifth population that interacts with the other four but does not change. Common answers might include a reversible chemical reaction (where witches are the catalyst) or a multiple disease model (where witches are doctors and Sleeping/Frog is being sick). Whatever students choose, ask them to modify their existing model to represent their new usage by renaming groups or changing parameters. Ask the following questions:

  1. Why do you think that this model is a good representation for the phenomenon you chose to model?
  2. What changes did you make to the model in order to have it simulate your chosen phenomenon? Were they primarily cosmetic, or was the basic structure of the model changed as well?
  3. Afterwards, have the class as a whole discuss and present their models. Emphasize the fact that all of these proposed models can be created simply by slightly modifying this relatively simple model. Aside from making the Princes and Princesses model useful, this also reveals important parallels between models that might not normally be related to one another.

Related Models

    Disease Model


    This model is useful as an example of a real-world situation where the structure behind Princes and Princesses is useful. As in this model, the disease model simulates the conversion of individuals back and forth between two populations, based on pre-set proportions. Unlike this model, however, the disease model has many different parameters that combine to form the proportion, rather than just a single number. This illustrates the key concept of abstraction - collecting many individual details into a single "black box" in order to make analysis simpler. It is also important to note that although the disease model is an agent model and this model is a system model, there aren't clear differences in the amount of randomness between the models. The Princes and Princesses models already calculates each round by a stochastic process, so it essentially abstracts the process of individually calculating each member of the population by estimating them as a group.

    Reversible Consecutive First-Order Reactions


    This model is useful as an example of how the Princes and Princesses model can be used to simulate chemical reactions. Out of all the other applets, Reversible Consecutive First-Order Reactions is perhaps the one most closely related to Princes and Princesses. Both models track populations moving reversibly between different groups and allow reaction rates to be set by a single number. The main difference is that RCFOR allows members of all three populations to convert into one another, while Princes and Princesses confines individuals to one of the two pairs of populations. RCFOR also lacks the random element that characterizes Princes and Princesses, so its result is completely determinate. This makes it a good analogue for what the model would be like if there were no randomness. On average, the random model should approximately equal the determined model (assuming equal parameters), and its approximation should get more accurate the more times it is run and averaged.

    Reversible Enzyme Kinetics


    This model is another chemical reaction model closely related to Princes and Princesses. This is an agent model and only contains a single reactant and a single product, but it does include an enzyme. This enzyme acts in a similar manner to the witches in the Princes and Princesses model - it causes members of one population to convert to members of another, but does so without itself changing. This can be used to specifically compare the enzyme part of the Princes and Princesses model to an agent model.