{
  "title": "Linear programming solver",
  "human_url": "https://happytails.ai/en/calculators/linear-programming-solver/",
  "agent_url": "https://happytails.ai/agents/en/calculators/linear-programming-solver/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/linear-programming-solver.md",
  "content": "Linear programming solver\nMaximize or minimize a linear objective under linear constraints with exact fractions. The result is an optimal solution, or a proof that the problem is infeasible or unbounded.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Linear programming solver\nWrite the objective on the first line, such as maximize 40x + 30y.\nAdd one constraint per line, such as x + y <= 12.\nChoose whether all variables must be nonnegative, then run the solver.\nReview the solution, shadow prices and certificate, then download JSON or CSV.\nUseful next steps\nLinear system solver\nMatrix workspace\nGraphing calculator\nMethod\nThe solver uses the two-phase simplex method with Bland's smallest-index rule, which cannot cycle on degenerate problems. All arithmetic uses exact fractions. Source: R. G. Bland, New finite pivoting rules for the simplex method, Mathematics of Operations Research 2(2), 1977.\nCertificates\nAn optimal answer comes with dual multipliers that prove no better value exists. An infeasible problem comes with Farkas multipliers that combine the constraints into an impossible inequality. An unbounded problem comes with a feasible point and a direction that improves the objective forever. Each certificate is checked exactly against your constraints.\nWriting the program\nUse <=, >= or = in each constraint, and variable names such as x, y or x1. A line such as x, y >= 0 adds one bound per variable. Strict inequalities and products of variables are not supported.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Linear system solver",
      "url": "https://happytails.ai/en/calculators/linear-system-solver/"
    },
    {
      "name": "Matrix workspace",
      "url": "https://happytails.ai/en/calculators/matrix-workspace/"
    },
    {
      "name": "Graphing calculator",
      "url": "https://happytails.ai/en/calculators/graphing-calculator/"
    }
  ],
  "tool": {
    "id": "linear-programming-solver",
    "category": "calculators",
    "built": true,
    "requirements": "Programs are limited to 4,000 characters, 40 lines, 12 variables, 24 constraints, 2,000 pivots and exact values of 1,024 digits. Everything is computed on your device in a background worker with a 15 second limit. Downloads are a JSON report and CSV tables of variables and constraints.",
    "implementation": {
      "fields": [
        {
          "key": "nonnegative",
          "label": "All variables are nonnegative",
          "value": true,
          "type": "checkbox"
        }
      ],
      "registrationFamily": "exact-math-reference",
      "inputMaxLength": 4000,
      "inputErrorCode": "EXACT_MATH_REFERENCE_PROGRAM_TOO_LONG",
      "note": "Solves exactly on your device with the simplex method, for up to 12 variables, 24 constraints and 4,000 characters, and proves the result with a certificate.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 4000,
        "inputMode": "text",
        "label": "Linear program",
        "placeholder": "maximize 40x + 30y\nx + y <= 12\n2x + y <= 16",
        "help": "Objective first, then one constraint per line with <=, >= or =. Up to 4,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Linear programming solver\n\n- Human page: https://happytails.ai/en/calculators/linear-programming-solver/\n- Markdown: https://happytails.ai/en/calculators/linear-programming-solver.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/linear-programming-solver/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `linear-programming-solver` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nSolves exactly on your device with the simplex method, for up to 12 variables, 24 constraints and 4,000 characters, and proves the result with a certificate.\n\n### Inputs and settings\n\nText input: Linear program.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nmaximize 40x + 30y\nx + y <= 12\n2x + y <= 16\n```\n\nObjective first, then one constraint per line with <=, >= or =. Up to 4,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `nonnegative` | All variables are nonnegative | checkbox | true |  |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nPrograms are limited to 4,000 characters, 40 lines, 12 variables, 24 constraints, 2,000 pivots and exact values of 1,024 digits. Everything is computed on your device in a background worker with a 15 second limit. Downloads are a JSON report and CSV tables of variables and constraints.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"linear-programming-solver\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Programs are limited to 4,000 characters, 40 lines, 12 variables, 24 constraints, 2,000 pivots and exact values of 1,024 digits. Everything is computed on your device in a background worker with a 15 second limit. Downloads are a JSON report and CSV tables of variables and constraints.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"nonnegative\",\n        \"label\": \"All variables are nonnegative\",\n        \"value\": true,\n        \"type\": \"checkbox\"\n      }\n    ],\n    \"registrationFamily\": \"exact-math-reference\",\n    \"inputMaxLength\": 4000,\n    \"inputErrorCode\": \"EXACT_MATH_REFERENCE_PROGRAM_TOO_LONG\",\n    \"note\": \"Solves exactly on your device with the simplex method, for up to 12 variables, 24 constraints and 4,000 characters, and proves the result with a certificate.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 4000,\n      \"inputMode\": \"text\",\n      \"label\": \"Linear program\",\n      \"placeholder\": \"maximize 40x + 30y\\nx + y <= 12\\n2x + y <= 16\",\n      \"help\": \"Objective first, then one constraint per line with <=, >= or =. Up to 4,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nMaximize or minimize a linear objective under linear constraints with exact fractions. The result is an optimal solution, or a proof that the problem is infeasible or unbounded.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Linear programming solver\n\n1. Write the objective on the first line, such as maximize 40x + 30y.\n2. Add one constraint per line, such as x + y <= 12.\n3. Choose whether all variables must be nonnegative, then run the solver.\n4. Review the solution, shadow prices and certificate, then download JSON or CSV.\n\n## Useful next steps\n\n- [Linear system solver](https://happytails.ai/en/calculators/linear-system-solver/) ([Markdown](https://happytails.ai/en/calculators/linear-system-solver.md))\n\n- [Matrix workspace](https://happytails.ai/en/calculators/matrix-workspace/) ([Markdown](https://happytails.ai/en/calculators/matrix-workspace.md))\n\n- [Graphing calculator](https://happytails.ai/en/calculators/graphing-calculator/) ([Markdown](https://happytails.ai/en/calculators/graphing-calculator.md))\n\n## Method\n\nThe solver uses the two-phase simplex method with Bland's smallest-index rule, which cannot cycle on degenerate problems. All arithmetic uses exact fractions. Source: R. G. Bland, New finite pivoting rules for the simplex method, Mathematics of Operations Research 2(2), 1977.\n\n### Certificates\n\nAn optimal answer comes with dual multipliers that prove no better value exists. An infeasible problem comes with Farkas multipliers that combine the constraints into an impossible inequality. An unbounded problem comes with a feasible point and a direction that improves the objective forever. Each certificate is checked exactly against your constraints.\n\n### Writing the program\n\nUse <=, >= or = in each constraint, and variable names such as x, y or x1. A line such as x, y >= 0 adds one bound per variable. Strict inequalities and products of variables are not supported.\n"
}