# Hybrid automaton

In automata theory, a hybrid automaton (plural: hybrid automata or hybrid automatons) is a mathematical model for precisely describing hybrid systems, for instance systems in which digital computational processes interact with analog physical processes. A hybrid automaton is a finite-state machine with a finite set of continuous variables whose values are described by a set of ordinary differential equations. This combined specification of discrete and continuous behaviors enables dynamic systems that comprise both digital and analog components to be modeled and analyzed.

## Examples

A simple example is a room-thermostat-heater system where the temperature of the room evolves according to laws of thermodynamics and the state of the heater (on/off); the thermostat senses the temperature, performs certain computations and turns the heater on and off. In general, hybrid automata have been used to model and analyze a variety of embedded systems including vehicle control systems, air traffic control systems, mobile robots, and processes from systems biology.

## Formal definition

An Alur–Henzinger hybrid automaton $H$ comprises the following components:
* A finite set $X=\{x_{1},...,x_{n}\}$ of real-numbered variables. The number $n$ is called the dimension of $H$. Let ${\dot {X}}$ be the set $\{{\dot {x}}_{1},...,{\dot {x}}_{n}\}$ of dotted variables that represent first derivatives during continuous change, and let $X'$ be the set $\{x'_{1},...,x'_{n}\}$ of primed variables that represent values at the conclusion of discrete change.
* A finite multidigraph $(V,E)$. The vertices in $V$ are called control modes. The edges in $E$ are called control switches.
* Three vertex labeling functions init, inv, and flow that assign to each control mode $v\in V$ three predicates. Each initial condition init$(v)$ is a predicate whose free variables are from $X$. Each invariant condition inv$(v)$ is a predicate whose free variables are from $X$. Each flow condition flow$(v)$ is a predicate whose free variables are from $X\cup {\dot {X}}$.
So this is a labeled multidigraph.
* An edge labeling function jump that assigns to each control switch $e\in E$ a predicate. Each jump condition jump$(e)$ is a predicate whose free variables are from $X\cup X'$.
* A finite set $\Sigma$ of events, and an edge labeling function event: $E\rightarrow \Sigma$ that assigns to each control switch an event.

## Related models

Hybrid automata come in several flavors: The Alur–Henzinger hybrid automaton is a popular model; it was developed primarily for algorithmic analysis of hybrid systems model checking. The HyTech model checking tool is based on this model. The Hybrid Input/Output Automaton model has been developed more recently. This model enables compositional modeling and analysis of hybrid systems. Another formalism, which is useful to model implementations of hybrid automaton, is the lazy linear hybrid automaton.

## Decidable subclass of hybrid automata

Given the expressiveness of hybrid automata it is not surprising that simple reachability questions are undecidable for general hybrid automata. In fact, a straightforward reduction from counter machines to three variables hybrid automata (two variables for storing counter values and one to restrict spending a unit-time per location) proves the undecidability of the reachability problem for hybrid automata. A sub-class of hybrid automata are timed automata where all of the variables grow with uniform rate (i.e., all continuous variables have derivative 1). Such restricted variables can act as timer variables, called clocks, and permit modeling of real-time systems. Other notable decidable subclasses include initialized rectangular hybrid automata, one-dimensional piecewise-constant derivatives (PCD) systems, priced timed automata, and constant-rate multi-mode systems.