feb 22
prelim
- questions about anything ?
evolution of cooperative behavior project
- general discussion of what Jim has in mind
I want us, as a class, over the next month,
to do a programming project using Java as the language,
that looks at "evolution" and "competition" as
a search strategy to find the "best" strategy in
a prisoner's dilemma-like situation.
The payoff matrix below gives an idea of what
we're talking about. The deatils aren't fixed yet.
prisoner's dilemma
payoff matrix ( value to A , value to B )
higher numbers are better
B cooperates B aggressive
-------------------------------------
A cooperates ( 5, 5 ) ( -2, 15 )
-------------------------------------
A is aggressive ( 15, -2 ) ( 1, 1 )
what do we do next ?
- Richard: define the final output you want better.
- Jim: I want a fairly flexible system that allows us to evaluate algorithms for doing this in a repetive setting. I'd like the algorithms to have the possibility of "evolving" if we'd like, and I'd like to be able to look at different scenarios (do the players get an ID from others, do they die if they lose too many encounters, etc. ).
thinking out load
class SimulateEvolutionOfCooperation {
/* has main() method for project; manages everything else */
}
interface Competitor {
/* define an API for an entity that plays this game */
}
class RandomCompetitor implements Competior {
/* a simple stupid one : just make random choices */
}
class Population {
/* collection of Competitors */
}
class Referee {
/* manage competitions */
}
/* framework and classes for doing testing */
Next steps: decide on some methods and data for these things, design tests, and start putting together the simplest version we can. Use that as a basis for thinking about the next more complicated version.
update