Skip to content

Behavioral testing application based on a set of rules for two or more players

License

Notifications You must be signed in to change notification settings

xpenalosa/GameTheory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GameTheory

This game theory application is based on prizes and actors.

  • Prizes are a resource with an energy value of 2.
  • Actors conform the population of the game and will fight each other for the resources in order to survive and reproduce.

For each round, if the amount of actors is lower or equal to the amount of prizes each actor will be assigned to a different prize. Otherwise, up to two actors will be randomly assigned to each prize. When an actor is assigned a prize, it will perform one of three actions. If another actor has also been assigned to the same prize, the outcome of the interaction influences the amount of energy each actor recieves.

+--------+------+-------+------|
| Action |   Opponent action   |
+--------+------+-------+------|
|        | Give | Share | Take |
+--------+------+-------+------|
| Give   |  0.0 |   0.0 |  0.0 |
| Share  |  1.0 |   1.0 |  0.0 |
| Take   |  2.0 |   1.5 | -0.5 |
+--------+------+-------+------|

In order to advance to the next round, an actor requires a minimum amount of energy. If the actor manages to obtain a surplus of energy, it will be able to reproduce and an additional actor will join the population. However, if an actor doesn't have any remaining energy at the end of a round it will be removed from the population permanently. In order to see a visual explanation of the basics on this experiment, see this video (YouTube).

Behaviours

The strategies defined in the project for the different actors are as follows:

  • IDLE: Always GIVE.
  • SHARE: Always SHARE.
  • TAKE: Always TAKE.
  • RANDOM: Random action.
  • COPYCAT: Repeats the last action seen.
  • VENGEFUL: SHARE until an opponent TAKEs. Then always TAKE.

Usage:

GameTheory <iterations> <prize_count> <population_string>

Iterations:

  • Number of rounds to run the game for.

Prize count:

  • Number of prizes that the population will have access to.

Population string:

  • An encoded string that determines the initial population.
  • Follows the format "BehaviourType Count;BehaviourType Count...
    • E.g. IdleBehaviour 20;RandomBehaviour 40;CopycatBehaviour 5

About

Behavioral testing application based on a set of rules for two or more players

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages