{
  "aliases": null,
  "backlinks": [
    {
      "field": "defines",
      "target": "KF7HK5Z9XW"
    },
    {
      "field": "uses",
      "target": "X0G02CGQ5J"
    }
  ],
  "body": "\n## Summary\n\nThe Strassen algorithm multiplies two $n \\times n$ matrices with $O(n^{\\log_2 7})$ arithmetic operations, where $\\log_2 7 \\approx 2.807$.\nIt rests on a way to multiply $2 \\times 2$ matrices with $7$ multiplications instead of $8$, applied recursively to blocks.\nPublished by Volker Strassen in 1969, it was the first method faster than the usual $O(n^3)$ [[matrix multiplication|032Q9FB8MT]].\nIt started the search for the [[matrix multiplication exponent|X0G02CGQ5J]].\n\n## Explanations\n\n### L1 human\n\nThe schoolbook product of two $2 \\times 2$ matrices uses $8$ multiplications of entries.\nStrassen found clever sums and differences of entries so that $7$ products are enough, at the cost of more additions.\nBecause the entries can themselves be blocks, the trick can be applied again inside each block.\nSaving one multiplication out of eight at every level adds up: for large matrices the total work grows like $n^{2.81}$ instead of $n^3$.\n",
  "commit": "547b6eddb8f2feb8d579f2d633d22a27b7e132fc",
  "front": {
    "kind": "concept",
    "msc": [
      "65F30",
      "68Q25",
      "15A69"
    ],
    "name": "Strassen algorithm",
    "same_as": {
      "wikidata": "Q728507",
      "wikipedia": "Strassen algorithm"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Strassen_algorithm"
      }
    ],
    "tag": "3CVWXDS4JQ"
  },
  "kind": "concept",
  "link": "https://math2.tamnd.com/node/3CVWXDS4JQ/",
  "links": null,
  "markdown": "https://math2.tamnd.com/node/3CVWXDS4JQ.md",
  "msc": [
    "65F30",
    "68Q25",
    "15A69"
  ],
  "name": "Strassen algorithm",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/3CV/3CVWXDS4JQ.md",
  "status": null,
  "tag": "3CVWXDS4JQ",
  "uri": "m2://3CVWXDS4JQ",
  "url": "https://math2.tamnd.com/wiki/strassen-algorithm/",
  "writing": {
    "tag": "3CVWXDS4JQ",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
