70 likes | 167 Views
Software Development using virtual scientific communities of constructively egoistic agents. Karl Lieberherr. Problem Solving Software for computationally hard problems: examples. Given a transportation task, find the optimal way of carrying it out.
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