Real classromm about SD Artificial classroom about MAXCSP (inhabited by agents) common: statements, get questioned, defended and discounted, reputations go up and down. Mini-Classroom metaphor SCG creates a mini-classroom for the agents to learn about topic X. The agents make statements about X which have the flavor of challenges: some of those statements may be discountable. The agents offer and accept challenges, each having a confidence in [0,1]. Each agent starts with an initial reputation. An agent wins reputation (proportional to challenge confidence and offerer reputation) when it successfully discounts a challenge of another agent. Or an agent wins reputation (proportional to challenge confidence and acceptor reputation) when it successfully supports its own challenge after it was accepted by another agent. The game is a zero-sum game with respect to reputation. Discounting and supporting of a challenge involves a constructive, interactive protocol that produces objects which are given to a predicate, either resulting in discounting or supporting. The agent with the highest reputation wins the game. When X is algorithmic, the game is about improving algorithms. When X is "optimization algorithms in domain Y whose decision version is NP-complete (NPO for Y)", e.g. MAXCSP, the winning agent has the best algorithms for MAXCSP and the challenge language that was chosen. Different challenge languages bring about different algorithms. SCG(X) creates both a competition and and a collaboration between the agents. The competition is about reputation and the collaboration is about the constructive feedback the agents give to each other. When an agent loses reputation, it gains information that points to a bug in its algorithm or a conceptual problem based on a lack of knowledge. The SCG games run over many rounds and produce a wealth of data from which useful information needs to be extracted. Currently the agents are improved by humans but there is an opportunity to use machine learning. We have SCG implement on the web, using a client-server architecture. It is used with MAXCSP as actual parameter in my software development classes. http://www.ccs.neu.edu/home/lieber/evergreen/specker/scg-home.html ================================= The SCG is similar to what happens in a class room in which subject area X is taught. With SCG we create a mini class room for the artificial agents to learn. The professor expresses statements about X to the students which they interpret as challenges (they might be able to successfully argue against those statements): The professor has a high reputation and a high confidence in its statements. When a student questions a statement and successfully discounts it, the reputation of the student goes up and the reputation of the professor drops. When a student questions a statement and the professor successfully supports it, the reputation of the professor goes up. The professor encourages the students to make statements about subject area X. Student Silvia, which is believed to be very smart and enjoys a high reputation, makes a statement with high confidence. Student Anton questions Silvia's statement and after some arguing Anton agrees that Silvia successfully supported her statement. This lifts Silvia's reputation even higher and the reputation of Anton drops. In SCG, the statements to be made are normed by a challenge language. The kind of arguing to be done is defined by an interactive protocol. And whether there is supporting or discounting is clearly decided by the belief predicate. In both the class room and the SCG, the goal is to have correct statements that cannot be discounted. In both the class room and the SCG, the goal of the participants is to lift their reputation. In the class room case, the professor will remember who participated and who corrected him or another student. When does the mini class room approach work? It must be possible to express the knowledge precisely in a program that can then act out the knowledge. Depends on the power of the modeling/programming language used. Challenges must have an uncertainty to them. Are niches the only way? Is (Exists/ForAll)+ or (ForAll/Exists)+ the only way? (Exists problem in niche/ForAll solutions)+ (Exists problem in niche/ForAll algorithms)+ (Exists algorithm/ForAll problems in niche)+ ====================================================== http://www.pragprog.com/the-pragmatic-programmer/extracts/tips Search keywords to be discussed in class: test saboteur (how much better is an optimally biased coin over a fair coin?) coupl -> Law of Demeter abstraction single learning perfect exception critical