{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $S$ be a finite set and let $P$ be the [[transition matrix|0F462493EA]] of an irreducible and aperiodic [[Markov chain|033TJBZDG0]] on $S$.\nLet $\\pi$ be its [[stationary distribution|0KRH5157WP]].\nLet $\\phi \\colon S \\times [0, 1] \\to S$ be an *update function*: if $U$ is [[uniform|0AREFQ9Z65]] on $[0, 1]$, then $P(\\phi(x, U) = y) = P(x, y)$ for all $x, y \\in S$.\nLet $U_{-1}, U_{-2}, \\ldots$ be independent and uniform on $[0, 1]$.\nFor $t \\ge 1$ define the map $F_{-t} \\colon S \\to S$ by\n$$F_{-t} = \\phi_{-1} \\circ \\phi_{-2} \\circ \\cdots \\circ \\phi_{-t}, \\quad \\phi_{-k}(x) = \\phi(x, U_{-k}).$$\n*Coupling from the past* is the algorithm that computes $F_{-t}$ for $t = 1, 2, 4, 8, \\ldots$, always with the same $U_{-k}$.\nIt stops at the first such $t$ for which $F_{-t}$ is constant, and it outputs the common value $F_{-t}(x)$.\n\n## Remarks\n\nIf $\\tau = \\min\\set{t : F_{-t} \\text{ is constant}}$ is finite almost surely, the output has law exactly $\\pi$.\nIndeed, $F_{-t} = F_{-\\tau} \\circ (\\phi_{-\\tau-1} \\circ \\cdots \\circ \\phi_{-t})$ has the same constant value for all $t \\ge \\tau$, while $F_{-t}(x)$ has law $P^t(x, \\cdot)$, which tends to $\\pi$.\nExample: take a chain that jumps to a fresh sample of $\\pi$ at each step, with an update $\\phi(x, u)$ that does not depend on $x$.\nThen $F_{-1}$ is constant, and the output $\\phi(x, U_{-1})$ has law $\\pi$.\nNon-example: running the [[coupled|HTR7J0W66V]] copies forward from time $0$ and outputting their value at the first meeting time is biased.\nTake $S = \\set{0, 1}$, $\\phi(0, u) = 0$ for $u \u003c 1/2$, $\\phi(0, u) = 1$ otherwise, and $\\phi(1, u) = 0$.\nThen the forward copies always meet at $0$, while $\\pi = (2/3, 1/3)$.\nIf $S$ has a partial order with a top and a bottom element and $\\phi(\\cdot, u)$ is monotone, it suffices to follow the top and the bottom states.\n",
  "commit": "5fc425f97f1f6b11da5892c2948ef8c5d8805665",
  "front": {
    "defines": "NZXD2SBY7F",
    "kind": "definition",
    "msc": [
      "65C05",
      "60J10",
      "60J22"
    ],
    "name": "Coupling from the past",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Coupling_from_the_past"
      }
    ],
    "tag": "CA6SVPFR3G",
    "uses": [
      "033TJBZDG0",
      "0F462493EA",
      "0KRH5157WP",
      "0AREFQ9Z65",
      "HTR7J0W66V"
    ]
  },
  "kind": "definition",
  "link": "https://math2.tamnd.com/node/CA6SVPFR3G/",
  "links": [
    {
      "field": "defines",
      "target": "NZXD2SBY7F"
    },
    {
      "field": "uses",
      "target": "033TJBZDG0"
    },
    {
      "field": "uses",
      "target": "0F462493EA"
    },
    {
      "field": "uses",
      "target": "0KRH5157WP"
    },
    {
      "field": "uses",
      "target": "0AREFQ9Z65"
    },
    {
      "field": "uses",
      "target": "HTR7J0W66V"
    }
  ],
  "markdown": "https://math2.tamnd.com/node/CA6SVPFR3G.md",
  "msc": [
    "65C05",
    "60J10",
    "60J22"
  ],
  "name": "Coupling from the past",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/CA6/CA6SVPFR3G.md",
  "status": null,
  "tag": "CA6SVPFR3G",
  "uri": "m2://CA6SVPFR3G",
  "url": "https://math2.tamnd.com/wiki/coupling-from-the-past-definition/",
  "writing": {
    "tag": "CA6SVPFR3G",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
