ArticleslgStudy

science

Program equilibrium

Program equilibrium is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Program equilibrium rather than just read about it. In short: Program equilibrium is a game-theoretic solution concept for a scenario in which players submit computer programs to play the game on their behalf and the programs can read each other's source code. The term was introduced by Moshe Tennenholtz in 2004.

Key takeaways

  • Program equilibrium belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Program equilibrium to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Program equilibrium from memory before moving on to harder problems.

Reference excerpt

Program equilibrium is a game-theoretic solution concept for a scenario in which players submit computer programs to play the game on their behalf and the programs can read each other's source code. The term was introduced by Moshe Tennenholtz in 2004. The same setting had previously been studied by R. Preston McAfee, J. V. Howard and Ariel Rubinstein.

Setting and definition The program equilibrium literature considers the following setting. Consider a normal-form game as a base game. For simplicity, consider a two-player game in which S 1 {\displaystyle S_{1}} and S 2 {\displaystyle S_{2}} are the sets of available strategies and u 1 {\displaystyle u_{1}} and u 2 {\displaystyle u_{2}} are the players' utility functions. Then we construct a new (normal-form) program game in which each player i {\displaystyle i} chooses a computer program p i {\displaystyle p_{i}} . The payoff (utility) for the players is then determined as follows. Each player's program p i {\displaystyle p_{i}} is run with the other program p − i {\displaystyle p_{-i}} as input and outputs a strategy s i {\displaystyle s_{i}} for Player i {\displaystyle i} . For convenience one also often imagines that programs can access their own source code. Finally, the utilities for the players are given by u i ( s 1 , s 2 ) {\displaystyle u_{i}(s_{1},s_{2})} for i = 1 , 2 {\displaystyle i=1,2} , i.e., by applying the utility functions for the base game to the chosen strategies. One has to further deal with the possibility that one of the programs p i {\displaystyle p_{i}} doesn't halt. One way to deal with this is to restrict both players' sets of available programs to prevent non-halting programs. A program equilibrium is a pair of programs ( p 1 , p 2 ) {\displaystyle (p_{1},p_{2})} that constitute a Nash equilibrium of the program game. In other words, ( p 1 , p 2 ) {\displaystyle (p_{1},p_{2})} is a program equilibrium if neither player i {\displaystyle i} can deviate to an alternative program p i ′ {\displaystyle p_{i}'} such that their utility is higher in ( p i ′ , p − i ) {\displaystyle (p_{i}',p_{-i})} than in ( p 1 , p 2 ) {\displaystyle (p_{1},p_{2})} . Instead of programs, some authors have the players submit other kinds of objects, such as logical formulas specifying what action to play depending on an encoding of the logical formula submitted by the opponent.

Different mechanisms for achieving cooperative program equilibrium in the Prisoner's Dilemma Various authors have proposed ways to achieve cooperative program equilibrium in the Prisoner's Dilemma.

Cooperation based on syntactic comparison Multiple authors have independently proposed the following program for the Prisoner's Dilemma:

algorithm CliqueBot(opponent_program): if opponent_program == this_program then return Cooperate else return Defect

If both players submit this program, then the if-clause will resolve to true in the execution of both programs. As a result, both programs will cooperate. Moreover, (CliqueBot,CliqueBot) is an equilibrium. If either player deviates to some other program p i {\displaystyle p_{i}} that is different from CliqueBot, then the opponent will defect. Therefore, deviating to p i {\displaystyle p_{i}} can at best result in the payoff of mutual defection, which is worse than the payoff of mutual cooperation. This approach has been criticized for being fragile. If the players fail to coordinate on the exact source code they submit (for example, if one player adds an extra space character), both programs will defect. The development of the techniques below is in part motivated by this fragility issue.

Proof-based cooperation Another approach is based on letting each player's program try to prove something about the opponent's program or about how the two programs relate. One example of such a program is the following:

algorithm FairBot(opponent_program): if there is a proof that opponent_program(this_program) = Cooperate then return Cooperate else return Defect

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Program equilibrium

Start with the simplest possible case. Write down what Program equilibrium claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Program equilibrium before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Program equilibrium ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Program equilibrium

In research
Program equilibrium appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Program equilibrium in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Program equilibrium is common in secondary-school and first-year university syllabi. It links to neighbouring topics Game theory, so understanding it makes those chapters shorter.
In everyday life
Look for Program equilibrium outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Program equilibrium in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Program equilibrium means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Program equilibrium out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Program equilibrium in simple terms?

Program equilibrium is a game-theoretic solution concept for a scenario in which players submit computer programs to play the game on their behalf and the programs can read each other's source code. The term was introduced by Moshe Tennenholtz in 2004.

Why does Program equilibrium matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Program equilibrium?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Program equilibrium.

Tags

  • Game theory

Keep exploring