{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "61F4HEY84K"
    }
  ],
  "body": "\n## Summary\n\nThe Schreier–Sims algorithm takes a few permutations that generate a [[permutation group|ZDJQRKPWGA]] $G$ and computes a base and a strong generating set of $G$.\nWith this data one can find the [[order|0B85S2V2DR]] of $G$ and test whether a permutation belongs to $G$.\nThis takes time polynomial in the degree and the number of generators.\nIt is the basic algorithm of computational group theory, used in systems such as GAP and Magma.\nIt is named after Otto Schreier and Charles Sims.\n\n## Explanations\n\n### L1 human\n\nA group of permutations of $n$ points can have far more elements than one could ever list, for example $n!$.\nThe Schreier–Sims algorithm avoids listing them.\nIt looks first at where the group can send point $1$, then at where the elements fixing point $1$ can send point $2$, and so on.\nThe order of the group is the product of the sizes of these sets of possible images.\nFor the six permutations of $\\set{1, 2, 3}$: point $1$ can go to $3$ places, and then point $2$ can go to $2$ places, so the order is $3 \\cdot 2 = 6$.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "kind": "concept",
    "msc": [
      "68W30",
      "20B05"
    ],
    "name": "Schreier–Sims algorithm",
    "same_as": {
      "wikidata": "Q7432874",
      "wikipedia": "Schreier–Sims algorithm"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Schreier–Sims_algorithm"
      }
    ],
    "tag": "FHGDZWZ2WE"
  },
  "kind": "concept",
  "link": "https://math2.tamnd.com/node/FHGDZWZ2WE/",
  "links": null,
  "markdown": "https://math2.tamnd.com/node/FHGDZWZ2WE.md",
  "msc": [
    "68W30",
    "20B05"
  ],
  "name": "Schreier–Sims algorithm",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/FHG/FHGDZWZ2WE.md",
  "status": null,
  "tag": "FHGDZWZ2WE",
  "uri": "m2://FHGDZWZ2WE",
  "url": "https://math2.tamnd.com/wiki/schreier-sims-algorithm/",
  "writing": {
    "tag": "FHGDZWZ2WE",
    "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
      }
    ]
  }
}
