70 likes | 171 Vues
Explore software development using virtual scientific communities of egoistic agents. Solve computationally hard problems while maximizing reputation and knowledge sharing. Harness the power of artificial organisms for innovative solutions.
E N D
Software Development using virtual scientific communities of constructively egoistic agents Karl Lieberherr SCG-SP2010
Problem Solving Softwarefor computationally hard problems:examples • Given a transportation task, find the optimal way of carrying it out. • Given an employment market, find the optimal assignment of workers to companies. • Given a Boolean formula, is it satisfiable? • Given a Boolean formula in conjunctive normal form, find an assignment that maximizes the fraction of satisfied clauses. SCG-SP2010
A new use of computers • Design a virtual scientific community SCG(X) of artificial organisms (agents) that are developed by humans. X is a problem solving domain (optimization problems, decision problems). • Purpose of SCG(X): Develop good algorithms and useful knowledge about a problem solving domain X. The best virtual scientist has the best algorithm and the best knowledge compared to all the other agents. SCG-SP2010
Traditional Approach Requirements for X Human Developers human1 human3 human2 human4 Static Evaluation. No competition. Testing unit testing integration testing Develop new software for problem solving domain X Benchmark is used to evaluate software Users SCG-SP2010
Why Software Development through a virtual scientific community? Requirements for X Evaluates fairly, frequently, constructively and dynamically. Drives innovation. Challenges humans. Agents point humans to what needs attention in the software. Human Developers human1 human2 Erika Patrick SCG(X) Erika-Patrick-agent winning-agent Develop new software for problem solving domain X Benchmark is used to evaluate software Users SCG-SP2010
Erika-Patrick Agent • Surrogate of combined knowledge of Erika and Patrick successfully transferred to agent. • Transfer knowledge by programming. SCG-SP2010
Agent design • How to design an artificial organism? • Has a basic need: maximize reputation. • Has a rhythm. Every round the same activity happens. • Interacts with other agents by opposing and proposing hypotheses. Opposing a hypothesis might create a big win in reputation but it also makes the agent vulnerable to a loss. There is uncertainty when opposing or proposing hypotheses. SCG-SP2010