software development using artificial markets of constructively egoistic agents karl lieberherr...

12
Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1 SD-F09

Upload: simon-watts

Post on 29-Dec-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 1

Software Development using artificial markets of constructively egoistic agents

Karl Lieberherr

Page 2: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 2

Problem Solving Softwareexamples

• 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.

Page 3: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 3

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 problem, decision problem).

• 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.

Page 4: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 4

Traditional Approach

Human Developers

Develop new softwarefor problem solving domain X

Static Evaluation.

No competition.

human1 human2

Testing unit testing integration testing

Benchmark is usedto evaluate software

human3 human4

Users

Requirements for X

Page 5: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 5

Why Software Development through an artificial market?

Human Developers

Develop new softwarefor problem solving domain X

Artificial Market(X)

Erika-Patrick-agent

winning-agent

Evaluates fairly, frequently,

constructively and

dynamically.

Drives innovation.

Challenges humans.

Agents point humans to

what needs attention in

the software.

human1 human2

Erika Patrick

Benchmark is usedto evaluate software

Users

Requirements for X

Page 6: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 6

Erika-Patrick Agent

• Surrogate of combined knowledge of Erika and Patrick successfully transferred to agent.

• Transfer knowledge by programming.

Page 7: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 7

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.

Page 8: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 8

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.

Page 9: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 9

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.

Page 10: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 10

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.

Page 11: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 11

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.

Page 12: Software Development using artificial markets of constructively egoistic agents Karl Lieberherr 1SD-F09

SD-F09 12

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?