150 likes | 222 Views
Software Development using artificial markets 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 artificial markets of constructively egoistic agents Karl Lieberherr SD-F09
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. SD-F09
A new use of computers • Design an artificial market AM(X) for artificial organisms (agents) that are developed by humans. X is a problem solving domain (optimization problems, decision problems). • Purpose of artificial market AM(X): Develop good algorithms and useful knowledge about a problem solving domain X. The market leader has the best algorithm and the best knowledge compared to all the other agents. SD-F09
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 SD-F09
Why Software Development through an artificial market? 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 Artificial Market(X) Erika-Patrick-agent winning-agent Develop new software for problem solving domain X Benchmark is used to evaluate software Users SD-F09
Erika-Patrick Agent • Surrogate of combined knowledge of Erika and Patrick successfully transferred to agent. • Transfer knowledge by programming. SD-F09
Agent design • How to design an artificial organism? • Has a basic need: maximize life energy, money. • Has a rhythm. Every round the same activity happens. • Interacts with other agents by offering and buying challenges. Offering and buying a challenge might create a big win but it also makes the agent vulnerable to a loss. There is uncertainty when offering or buying a challenge. SD-F09
Agent design • challenge = (belief, price) • Belief expresses a fact about problem solving domain X believed to be true. • Belief is result of experiments with problem solving algorithm. • If problem solving algorithm is not good (has bugs, is inefficient compared to others), the belief can be discounted by buyer/acceptor of challenge. • If belief is successfully discounted, the seller has to pay more than the initial price to buyer. • If belief is not discounted, the buyer lost the price he paid. SD-F09
Important property of belief • Belief must be efficiently • Discountable or • Supportable • Done through interactive protocol • Belief (t, bt(t,p,s)) • One party delivers problem p satisfying pred t • The other party produces solution s of quality(p,s) • The predicate bt(t,p,s) must be efficiently checkable • This may be repeated SD-F09
Which means • Agents should only buy a challenge whose belief they think they can discount. • Agents should only offer a challenge if they can successfully support the belief against a buyer. SD-F09
Beliefs • Belief is supported: By giving problem in domain X to buyer for which it cannot find a solution that contradicts the belief. • Belief is discounted: By giving problem in domain X to buyer for which it can find a solution that contradicts the belief. • Belief language needs to be carefully chosen. SD-F09
Agents are constructively egoistic • They have an ego. They can constructively show that they are better than other agents by playing the game. • They give constructive feedback to other agents. • The social welfare consists of improving software/algorithms. SD-F09
SCG(X) • X: optimization problem. • Classic beliefs: • I believe that I can give you a problem satisfying predicate pred so that you cannot find an assignment satisfying the fraction q of all constraints. (exists p in pred for all J fsat(p,J) < q) • I believe that for all problems satisfying predicate pred I can find an assignment satisfying the fraction q of all constraints. (for all p in pred exists J fsat(p,J) >= q) • Is one the negation of the other? SD-F09
More beliefs • I believe that if you give me 10 problems of kind X and you give me 10 problems of kind X, I solve your problems better than you solve mine. (time limit 1 minute for both). • We call this a duel belief. SD-F09
More beliefs • I believe that if I give you an optimization problem of kind X for which I have a secret solution, you cannot find a solution that is at least as good as mine (time limit 1 minute). SD-F09