GitHub

@@ -35,7 +35,7 @@ tags: [hide-output]

35353636

## Overview

373738-

This notebook formulates and computes a plan that a **Stackelberg

38+

This lecture formulates and computes a plan that a **Stackelberg

3939

leader** uses to manipulate forward-looking decisions of a **Stackelberg

4040

follower** that depend on continuation sequences of decisions made once

4141

and for all by the Stackelberg leader at time $0$.

@@ -77,13 +77,13 @@ $a_0$ and $a_1$ are both positive.

7777

$q_{10}, q_{20}$ are given numbers that serve as initial

7878

conditions at time $0$.

797980-

By incurring a cost of change

80+

By incurring a cost equal to

81818282

$$

83-

\gamma v_{it}^2

83+

\gamma v_{it}^2, \quad \gamma > 0 ,

8484

$$

858586-

where $\gamma > 0$, firm $i$ can change its output according

86+

firm $i$ can change its output according

8787

to

88888989

$$

@@ -217,8 +217,7 @@ $$

217217

where

218218

$c_0 = \frac{\beta a_0}{2 \gamma}, c_1 = \frac{\beta a_1}{\gamma}, c_2 = \frac{\beta a_1}{2 \gamma}$.

219219220-

This equation can in turn be rearranged to become the second-order

221-

difference equation

220+

This equation can in turn be rearranged to become

222221223222

```{math}

224223

:label: sstack1

@@ -272,7 +271,7 @@ $$

272271

Operating on both sides of equation {eq}`sstack2` with

273272

$\beta^{-1}$ times this inverse operator gives the follower's

274273

decision rule for setting $q_{1t+1}$ in the

275-

**feedback-feedforward** form.

274+

**feedback-feedforward** form

276275277276

```{math}

278277

:label: sstack3

@@ -304,7 +303,7 @@ and formulate the following Lagrangian for the Stackelberg leader firm

304303305304

subject to initial conditions for $q_{1t}, q_{2t}$ at $t=0$.

306305307-

**Comments:** We have formulated the Stackelberg problem in a space of

306+

**Remarks:** We have formulated the Stackelberg problem in a space of

308307

sequences.

309308310309

The max-min problem associated with Lagrangian

@@ -314,11 +313,11 @@ future of its choices of $\{q_{1t+j}\}_{j=0}^\infty$.

314313315314

This renders a direct attack on the problem cumbersome.

316315317-

Therefore, below, we will formulate the Stackelberg leader's problem

316+

Therefore, below we will formulate the Stackelberg leader's problem

318317

recursively.

319318320319

We'll put our little duopoly model into a broader class of models with

321-

the same conceptual structure.

320+

the same structure.

322321323322

## Stackelberg Problem

324323

@@ -342,7 +341,7 @@ of the Stackelberg **follower**.

342341

Let $u_t$ be a vector of decisions chosen by the Stackelberg leader

343342

at $t$.

344343345-

The $z_t$ vector is inherited physically from the past.

344+

The $z_t$ vector is inherited from the past.

346345347346

But $x_t$ is a decision made by the Stackelberg follower at time

348347

$t$ that is the follower's best response to the choice of an

@@ -464,13 +463,13 @@ Subproblem 2 is solved by the **Stackelberg leader** at $t=0$.

464463465464

The two subproblems are designed

466465467-

- to respect the protocol in which the follower chooses

466+

- to respect the timing protocol in which the follower chooses

468467

$\vec q_1$ after seeing $\vec q_2$ chosen by the leader

469468

- to make the leader choose $\vec q_2$ while respecting that

470469

$\vec q_1$ will be the follower's best response to

471470

$\vec q_2$

472471

- to represent the leader's problem recursively by artfully choosing

473-

the state variables confronting and the control variables available

472+

the leader's state variables and the control variables available

474473

to the leader

475474476475

**Subproblem 1**

@@ -1012,8 +1011,9 @@ plt.show()

1012101110131012

We'll compute the present value earned by the Stackelberg leader.

101410131015-

We'll compute it two ways (they give identical answers -- just a check

1016-

on coding and thinking)

1014+

We'll compute it two ways and get the same answer.

1015+1016+

In addition to being a useful check on the accuracy of our coding, computing things in these two ways helps us think about the structure of the problem.

1017101710181018

```{code-cell} python3

10191019

v_leader_forward = np.sum(βs * π_leader)

Read the original on github.com ↗