{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "CA6SVPFR3G"
    }
  ],
  "body": "\n## Summary\n\nCoupling from the past is an algorithm due to Propp and Wilson.\nIt produces an exact sample from the [[stationary distribution|0KRH5157WP]] of an ergodic finite [[Markov chain|0G48PYM96Q]].\nIt runs copies of the chain from all states, starting further and further in the past with the same randomness.\nIt stops when all copies agree at time $0$.\nUnlike ordinary [[Markov chain Monte Carlo|ZGNBR2SPZ0]], its output has exactly the stationary law, with no bias from stopping too early.\n\n## Explanations\n\n### L1 human\n\nImagine the chain has been running since the infinite past, so that today it is exactly in equilibrium.\nIf all possible starting states at some past time lead, with the same random choices, to the same state today, then that state is what the eternal chain shows today.\nThe algorithm looks further back in time until this happens.\nThe trick is to reuse the same random numbers for each past time step whenever one restarts from further back.\nFor chains with an order that the update preserves, it suffices to follow only the top and the bottom states.\n",
  "commit": "5fc425f97f1f6b11da5892c2948ef8c5d8805665",
  "front": {
    "kind": "concept",
    "msc": [
      "65C05",
      "60J10",
      "60J22"
    ],
    "name": "Coupling from the past",
    "same_as": {
      "wikidata": "Q5178037",
      "wikipedia": "Coupling from the past"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Coupling_from_the_past"
      }
    ],
    "tag": "NZXD2SBY7F"
  },
  "kind": "concept",
  "link": "https://math2.tamnd.com/node/NZXD2SBY7F/",
  "links": null,
  "markdown": "https://math2.tamnd.com/node/NZXD2SBY7F.md",
  "msc": [
    "65C05",
    "60J10",
    "60J22"
  ],
  "name": "Coupling from the past",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/NZX/NZXD2SBY7F.md",
  "status": null,
  "tag": "NZXD2SBY7F",
  "uri": "m2://NZXD2SBY7F",
  "url": "https://math2.tamnd.com/wiki/coupling-from-the-past/",
  "writing": {
    "tag": "NZXD2SBY7F",
    "kind": "concept",
    "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
      }
    ]
  }
}
