{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $A$ be a real $m \\times n$ [[matrix|0VD9ZSWWJG]], let $b \\in \\R^m$ and let $c \\in \\R^n$.\nFor vectors $u, w \\in \\R^m$, write $u \\le w$ when $u_i \\le w_i$ for every $i$.\nThe *linear program* given by $(A, b, c)$ is the problem\n$$\\text{maximize } c^T x \\quad \\text{subject to} \\quad A x \\le b, \\quad x \\in \\R^n.$$\nA point $x$ with $A x \\le b$ is a *feasible solution*, and the set of them is the *feasible region*.\nA feasible solution $x^*$ is *optimal* if $c^T x^* \\ge c^T x$ for every feasible solution $x$, and then $c^T x^*$ is the *optimal value*.\n*Linear programming* is the study and solution of linear programs.\n\n## Remarks\n\nExample: maximize $x + y$ subject to $x \\ge 0$, $y \\ge 0$, $x + 2y \\le 4$ and $3x + y \\le 6$.\nThe feasible region is the quadrilateral with vertices $(0,0)$, $(2,0)$, $(8/5, 6/5)$ and $(0,2)$.\nThe objective takes the values $0$, $2$, $14/5$ and $2$ at these vertices, so the optimal value is $14/5$, attained at $(8/5, 6/5)$.\n\nNon-example: maximizing $x + y$ subject to $x^2 + y^2 \\le 1$ is not a linear program, because the constraint is not a linear inequality.\n\nEvery linear program is of exactly one of three kinds: infeasible, unbounded (the objective is not bounded above on the feasible region), or with an optimal solution.\nOther standard forms, such as maximizing $c^T x$ subject to $A x = b$ and $x \\ge 0$, are equivalent to this one after adding slack variables or splitting free variables.\nThe dual of the program above is to minimize $b^T y$ subject to $A^T y = c$ and $y \\ge 0$.\nIf one of the two programs has an optimal solution, so does the other, with the same optimal value.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "VNMXB0J2KA",
    "kind": "definition",
    "msc": [
      "90C05",
      "52B55"
    ],
    "name": "Linear programming",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Linear_programming"
      }
    ],
    "tag": "32CP806EHX",
    "uses": [
      "0VD9ZSWWJG"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/32CP806EHX/",
  "links": [
    {
      "field": "defines",
      "target": "VNMXB0J2KA"
    },
    {
      "field": "uses",
      "target": "0VD9ZSWWJG"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/32CP806EHX.md",
  "msc": [
    "90C05",
    "52B55"
  ],
  "name": "Linear programming",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/32C/32CP806EHX.md",
  "status": null,
  "tag": "32CP806EHX",
  "uri": "m2://32CP806EHX",
  "url": "https://tamnd.github.io/math2/wiki/linear-programming-definition/",
  "writing": {
    "tag": "32CP806EHX",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
