Application domain: Problem solving software for computationally hard problems.
The constructively egoistic software fights by finding errors in other software and minimizing its own exposure to errors found by other software. The word "constructively" indicates that the errors are cleanly stated by using witnesses that show that claimed beliefs are wrong.
The outer loop of the development process:
initialize all agents with babyAgent(ProblemDomain); gameNr = 0; repeat gameNr++; improve all agents based on history[gameNr-1] and other info; history[gameNr] = SCG(admin(ProblemDomain), all agents); until agents are good enough;
The inner loop of the development process is the SCG contest. The agents play a full round-robin tournament.
The SCG process to software development for problem solving software works as follows: n developers are divided into n/2 teams, each producing an agent. The teams have access to a shared infrastructure of reusable tools. The n/2 agents conquer each other and the winning agent will contain the best software for the given domain. That is the way the artificial market has been designed.
In her letter to the community in December 2009, Jeanette Wing writes: CISE seeks ground-breaking, transformative research that will produce fundamentally new ways of thinking about how to develop, sustain, and reason about software, both during its design and deployment. Research projects that span multiple disciplines within CISE, as well as those that import ideas from elsewhere, are especially welcome.
The SCG (Specker Challenge Game) approach to software development is a fundamentally new way to develop software. It touches on measuring and encouraging the development of innovative algorithms and software, a new way to use competition to foster collaboration during software development, a new approach to organize the bidding process for problem solving software (http://www.ccs.neu.edu/home/lieber/courses/cs4500/f09/project/project2/project2.html), etc.