In automata theory, an alternating timed automaton is a mix of both timed automaton and alternating finite automaton. That is, it is a sort of automata which can measure time and in which there exists universal and existential transition. ATAs are more expressive than timed automaton. one clock alternating timed automaton is the restriction of ATA allowing the use of a single clock. OCATAs allow to express timed languages which can not be expressed using timed-automaton.
Definition
An alternating timed automaton is defined as a timed automaton, where the transitions are more complex.
Difference from a timed-automaton
Given a set, let the set of positive Boolean combination of elements of. I.e. the set containing the elements of, and containing and, for. For each letter and location, let be a set of clock constraints such that their zones partition, with the number of clocks. Given a clock valuation, let be the only clock constraint of which is satisfied by. An alternating timed-automaton contains a transition function, which associates to a 3-tuple, with, to an element of. For example, is an element of. Intuitively, it means that the run may either continue by moving to location, and resetting no clock. Or by moving to location and should be successful when either or is reset.
Formal definition
Formally, an alternating timed automaton is a tuple that consists of the following components:
Σ is a finite set called the alphabet or actions of.
is a finite set. The elements of are called the locations or states' of.
is a finite set called the clocks of.
is the set of start locations.
is the set of accepting locations.
is the transitions function' of. It is a partial function, defined as explained in the previous section.
Any Boolean expression can be rewritten into an equivalent expression in disjunctive normal form. In the representation of a ATA, each disjunction is represented by a different arrow. Each conjunct of a disjunction is represented by a set of arrows with the same tail and multiple heads. The tail is labelled by the letter and each head is labelled by the set of clocks it resets.
Run
We now define a run of an alternating timed automaton over a timed word . There are two equivalent way to define a run, either as a tree or as a game.
Run as a tree
In this definition of a run, a run is not anymore a list of pairs, but a rooted tree. The node of the trooted tree are labelled by pairs with a location and a clock valuation. The tree is defined as follows:
Consider a node of the tree at depth, with label. Without loss of generality, let us assume that is in disjunctive normal form, i.e. it is of the form. Then the node has children, for some. The -th child is labelled by.
The definition of an accepting runs differs depending on whether the timed word is finite or infinite. If the timed word is finite, then the run is accepting if the label of each leaf contains an accepting location. If the timed word is infinite, then a run is accepting if each branch contains an infinite number of accepting location.
A run can also be defined as a two player game. Let us call the two players "player" and "opponent". The goal of the player is to create an accepting run and the goal of the opponent is to create a rejecting run. Each state of the game is a tuple composed of a location, a clock valuation, a position in the word, and potentially an element of. Intuitively, a tuple means that the run has read letters, is in location, with clock value, and that the transition will be as described by. The run is defined as follow:
The initial state is of the form, for some.
given a state, if the length of the word is, the run ends. Otherwise, its successor state is.
The successor of a state is the state,
The successor of a state is chosen by the player, it is either or,
The successor of a state is chosen by the opponent, it is either or.
The set of successive states starting in a state of the form and ending in before the next such state is called a phase. The definition of an accepting run is the same than for timed automata.
Subclass of ATA
One clock alternating timed automaton
A one clock alternating timed automaton is an alternating timed automaton using a single clock. The expressivity of OCATAs and of timed-automaton are incomparable. For example, the language over the alphabet such that there is never exactly one time unit between two letters can not be recognized by a timed-automaton. However, the OCATA pictured nearby accepts it. In this alternating timed automaton, two branches are started. A branch restarts the clock, and ensures that each time in the future when a letter is emitted, the clock is distinct from 1. This ensure that between this letter and the next ones, the time elapsed is not one. The second branch only waits for other letters to be emitted and do the same checking.
Purely-Universal and Purely-Exisential ATA
An ATA is said to be purely-universal if its transition function does not use disjunction. Purely-existential ATAs are as expressive as non-deterministic timed-automaton.
Closure
The class of language accepted by ATAs and by OCATAs is closed under complement. The construction is explained for the case where there is a single initial location. Given an ATA accepting a timed language, its complement language is accepted by an automaton which is essentially, where is defined as where disjunction and conjunctions are reversed and simulates the run from each of the locations of simultaneously. It follows that the class of language accepted by ATAs and by OCATAs are accepted by unions and intersection. The union of two languages is constructed by taking disjoint copies of the automata accepting both language. The intersection can be constructed from union and concatenation.