{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "1H650VRZVT"
    },
    {
      "field": "about",
      "target": "ZA4YXJ9T1P"
    }
  ],
  "body": "\n## Summary\n\nThe algebraic approach studies the constraint satisfaction problem of a fixed finite structure through the [[polymorphisms|A0K9EZRM7E]] of that structure.\nIts basic fact is that the complexity of the problem depends only on the clone of polymorphisms.\nPolymorphisms satisfying good identities, such as [[Taylor|QEAMRNRJJD]], [[Siggers|JYW1H3J8SX]] or cyclic identities, give efficient algorithms.\nThe approach led to the proof of the [[CSP dichotomy theorem|ZA4YXJ9T1P]]: every such problem is either in polynomial time or NP-complete.\n\n## Explanations\n\n### L1 human\n\nMany puzzles ask for values of variables that satisfy given constraints, for example colouring a map so that neighbours get different colours.\nIf the allowed constraints are fixed, one can ask how hard the puzzle is.\nThe algebraic approach looks for operations that combine several solutions into a new solution.\nFor example, for $2$-colouring a graph, the majority of three valid colourings is again a valid colouring, and $2$-colouring is easy.\nFor $3$-colouring no such good operation exists, and the problem is NP-complete.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "08A70",
      "68Q25"
    ],
    "name": "Algebraic approach to constraint satisfaction",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Constraint_satisfaction_problem"
      }
    ],
    "tag": "3EH4F5H7FT"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/3EH4F5H7FT/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/3EH4F5H7FT.md",
  "msc": [
    "08A70",
    "68Q25"
  ],
  "name": "Algebraic approach to constraint satisfaction",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/3EH/3EH4F5H7FT.md",
  "status": null,
  "tag": "3EH4F5H7FT",
  "uri": "m2://3EH4F5H7FT",
  "url": "https://tamnd.github.io/math2/wiki/algebraic-approach-to-constraint-satisfaction/",
  "writing": {
    "tag": "3EH4F5H7FT",
    "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
      }
    ]
  }
}
