{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "KEXJX0YDT4"
    }
  ],
  "body": "\n## Problem\n\nLet $U \\subseteq \\R^m$ be a nonempty compact set, and let $f \\colon \\R^n \\times U \\to \\R^n$ be continuous.\nLet $x_0, x_1 \\in \\R^n$.\nFor a measurable control $u \\colon [0, T] \\to U$, let $x$ be the trajectory of the [[control system|ZPDTVZQN5K]] $x' = f(x, u)$ with $x(0) = x_0$.\nThe *time-optimal control problem* is to find a final time $T^* \\ge 0$ and an [[admissible control|8M31QKB0GW]] $u^*$ on $[0, T^*]$ whose trajectory satisfies $x(T^*) = x_1$.\nIt is required that no admissible control reaches $x_1$ at any time $T \u003c T^*$.\n\n## Remarks\n\nFor linear systems $x' = A x + B u$ with $U = [-1, 1]^m$ the theory is complete.\nIf $x_1$ can be reached from $x_0$ at some time, then a time-optimal control exists, because the reachable sets are compact and convex and depend continuously on time.\nBy [[Pontryagin's maximum principle|7RPV2T29CF]] a time-optimal control satisfies $u_j(t) = \\sgn\\big(b_j^{T} p(t)\\big)$ wherever $b_j^{T} p(t) \\neq 0$, where $b_j$ is the $j$-th column of $B$ and $p' = -A^{T} p$.\nIf each pair $(A, b_j)$ satisfies the [[Kalman rank condition|9NSCZ2KBEB]], then the time-optimal control is unique and [[bang–bang|GK1Z3Q1WRZ]] with finitely many switches.\nIf moreover all eigenvalues of $A$ are real, each component $u_j$ switches at most $n - 1$ times.\nExample: for the double integrator $x_1' = x_2$, $x_2' = u$, $\\abs{u} \\le 1$, steered to the origin, the optimal control is $u = -1$ above the switching curve $x_1 = -\\frac12 x_2 \\abs{x_2}$ and $u = 1$ below it.\nOn the curve itself it is the constant that drives the state along the curve into the origin, and every optimal control switches at most once.\n\n## Explanations\n\n### L1 human\n\nA time-optimal control problem asks how to bring a system from one state to another as fast as possible with limited control power.\nA car that must stop at a wall in least time is an example.\nFor linear systems the answer is to use full power all the time, switching direction at well-chosen moments.\nFor the car, one accelerates fully and then brakes fully, with exactly one switch.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "about": [
      "T3V6ZNAMDN"
    ],
    "history": {
      "first_stated": "1952",
      "notes": "Bushaw studied time-optimal control of second-order systems in his 1952 thesis. Bellman, Glicksberg and Gross (1956) and Pontryagin and his school treated the general case.",
      "posed_by": "Donald W. Bushaw"
    },
    "kind": "problem",
    "msc": [
      "49J15",
      "49K15",
      "49N05"
    ],
    "name": "Time-optimal control",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Bang–bang_control"
      }
    ],
    "tag": "YTR959CYMX",
    "uses": [
      "T3V6ZNAMDN",
      "ZPDTVZQN5K",
      "8M31QKB0GW",
      "GK1Z3Q1WRZ",
      "7RPV2T29CF",
      "9NSCZ2KBEB"
    ]
  },
  "kind": "problem",
  "link": "https://tamnd.github.io/math2/node/YTR959CYMX/",
  "links": [
    {
      "field": "about",
      "target": "T3V6ZNAMDN"
    },
    {
      "field": "uses",
      "target": "T3V6ZNAMDN"
    },
    {
      "field": "uses",
      "target": "ZPDTVZQN5K"
    },
    {
      "field": "uses",
      "target": "8M31QKB0GW"
    },
    {
      "field": "uses",
      "target": "GK1Z3Q1WRZ"
    },
    {
      "field": "uses",
      "target": "7RPV2T29CF"
    },
    {
      "field": "uses",
      "target": "9NSCZ2KBEB"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/YTR959CYMX.md",
  "msc": [
    "49J15",
    "49K15",
    "49N05"
  ],
  "name": "Time-optimal control",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/YTR/YTR959CYMX.md",
  "status": null,
  "tag": "YTR959CYMX",
  "uri": "m2://YTR959CYMX",
  "url": "https://tamnd.github.io/math2/wiki/time-optimal-control/",
  "writing": {
    "tag": "YTR959CYMX",
    "kind": "problem",
    "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
      }
    ]
  }
}
