|
|
Line 1: |
Line 1: |
| In [[computer science]] and [[automata theory]], a '''Büchi automaton''' is a type of [[ω-automaton]], which extends a [[finite automaton]] to infinite inputs. It accepts an infinite input sequence [[iff]] there exists a run of the automaton that visits (at least) one of the final states infinitely often. Büchi automata recognize the [[omega-regular languages]], the infinite word version of [[regular languages]]. It is named after the Swiss mathematician [[Julius Richard Büchi]] who invented this kind of automaton in 1962.<ref>J.R. Büchi. On a decision method in restricted second order arithmetic. In Proc. International Congress on Logic, Method, and Philosophy of Science. 1960, pages 1–12, Stanford, 1962. Stanford University Press.</ref>
| | The ac1st16.dll error is annoying and quite widespread with all types of Windows computers. Not only does it create a computer run slower, but it can also avoid you from utilizing a range of programs, including AutoCAD. To fix this problem, we should utilize a simple method to cure all of the potential difficulties which cause it. Here's what you want to do...<br><br>Document files enable the consumer to input information, images, tables plus alternative ingredients to improve the presentation. The just issue with this formatting compared to other file kinds like .pdf for illustration is its ability to be easily editable. This signifies which anybody viewing the file could change it by accident. Also, this file formatting will be opened by additional programs but it refuses to guarantee which what you see in the Microsoft Word application might nonetheless become the same whenever we view it using another system. However, it is very nevertheless preferred by many computer users for its ease of employ plus features.<br><br>Of course, the upcoming logical step is to get these false entries cleaned out. Fortunately, this is not a difficult task. It is the second thing you need to do when you observed the computer has lost speed. The first would be to make certain that there are no viruses or serious spyware present.<br><br>Registry cleaners have been designed for 1 purpose - to wash out the 'registry'. This is the central database that Windows relies on to function. Without this database, Windows wouldn't even exist. It's so important, that the computer is consistently adding and updating the files inside it, even if you're browsing the Internet (like now). This is remarkable, but the issues happen when a few of those files become corrupt or lost. This occurs a lot, plus it takes a good tool to fix it.<br><br>Besides, in the event you could receive a [http://bestregistrycleanerfix.com/tune-up-utilities tuneup utilities 2014] which may do the job for you effectively plus instantly, then why not? There is 1 such system, RegCure that is good plus complete. It has attributes which alternative products do not have. It is the most recommended registry cleaner now.<br><br>Software mistakes or hardware mistakes that happen whenever running Windows plus intermittent mistakes are the general factors for a blue screen physical memory dump. New software or motorists which have been installed or changes inside the registry settings are the typical s/w causes. Intermittent errors refer to failed program memory/ hard disk or over heated processor plus these too might result the blue screen physical memory dump error.<br><br>To speed up the computer, we simply require to be capable to get rid of all these junk files, allowing your computer to locate just what it wants, whenever it wants. Luckily, there's a tool which enables us to do this easily plus instantly. It's a tool called a 'registry cleaner'.<br><br>Another important system you'll like to get is a registry cleaner. The registry is a huge list of everything installed on your computer, and Windows references it whenever it opens a program or uses a device connected to your computer. Whenever you delete a program, its registry entry must additionally be deleted, yet occasionally it's not. A registry cleaner can receive rid of these older entries thus Windows can search the registry quicker. It additionally deletes or corrects any entries which viruses have corrupted. |
| | |
| Büchi automata are often used in [[model checking]] as an automata-theoretic version of a formula in [[linear temporal logic]].
| |
| | |
| ==Formal definition==
| |
| Formally, a '''deterministic Büchi automaton''' is a tuple ''A'' = (''Q'',Σ,δ,''q''<sub>0</sub>,'''F''') that consists of the following components:
| |
| * ''Q'' is a [[finite set]]. The elements of ''Q'' are called the ''states'' of ''A''.
| |
| * Σ is a finite set called the ''alphabet'' of ''A''.
| |
| * δ: ''Q'' × Σ → ''Q'' is a function, called the ''transition function'' of ''A''.
| |
| * ''q''<sub>0</sub> is an element of ''Q'', called the initial state.
| |
| * '''F'''⊆''Q'' is the ''acceptance condition''. ''A'' accepts exactly those runs in which at least one of the infinitely often occurring states is in '''F'''.
| |
| | |
| In a '''non-deterministic Büchi automaton''', the transition function δ is replaced with a transition relation Δ that returns a set of states. Generally, Büchi automaton refers to non-deterministic Büchi automaton.
| |
| | |
| For more comprehensive formalism see also [[ω-automaton]].
| |
| | |
| ==Closure properties==
| |
| | |
| The set of Büchi automata is [[closed under]] the following operations.
| |
| | |
| Let A=(''Q''<sub>A</sub>,Σ,Δ<sub>A</sub>,''I''<sub>A</sub>,''F''<sub>A</sub>) and B=(''Q''<sub>B</sub>,Σ,Δ<sub>B</sub>,''I''<sub>B</sub>,''F''<sub>B</sub>) be Büchi automata and C=(''Q''<sub>C</sub>,Σ,Δ<sub>C</sub>,''I''<sub>C</sub>,''F''<sub>C</sub>) be a [[finite automaton]].
| |
| | |
| * '''Union''': ''There is a Büchi automaton that recognizes the language L(A)∪L(B).''
| |
| :'''Proof:''' If we assume, ''[[w.l.o.g.]]'', ''Q''<sub>A</sub>∩''Q''<sub>B</sub> is empty then L(A)∪L(B) is recognized by the Büchi automaton (''Q''<sub>A</sub>∪''Q''<sub>B</sub>, Σ, Δ<sub>A</sub>∪Δ<sub>B</sub>, ''I''<sub>A</sub>∪''I''<sub>B</sub>, ''F''<sub>A</sub>∪''F''<sub>B</sub>).
| |
| *'''Intersection''': ''There is a Büchi automaton that recognizes the language L(A)∩L(B).''
| |
| :'''Proof:''' The Büchi automaton A'=(Q',Σ,Δ',I',F') recognizes L(A)∩L(B), where
| |
| ** Q' = ''Q''<sub>A</sub> × ''Q''<sub>B</sub> × {1,2}
| |
| ** Δ' = Δ<sub>1</sub> ∪ Δ<sub>2</sub>
| |
| *** Δ<sub>1</sub> = {( (q<sub>A</sub>,q<sub>B</sub>,1), a, (q'<sub>A</sub>,q'<sub>B</sub>,i) ) | (q<sub>A</sub>,a,q'<sub>A</sub>)∈Δ<sub>A</sub> and (q<sub>B</sub>,a,q'<sub>B</sub>)∈Δ<sub>B</sub> and if q<sub>A</sub>∈F<sub>A</sub> then i=2 else i=1 }
| |
| *** Δ<sub>2</sub> = {( (q<sub>A</sub>,q<sub>B</sub>,2), a, (q'<sub>A</sub>,q'<sub>B</sub>,i) ) | (q<sub>A</sub>,a,q'<sub>A</sub>)∈Δ<sub>A</sub> and (q<sub>B</sub>,a,q'<sub>B</sub>)∈Δ<sub>B</sub> and if q<sub>B</sub>∈F<sub>B</sub> then i=1 else i=2 }
| |
| ** I' = I<sub>A</sub> × I<sub>B</sub> × {1}
| |
| ** F' = { (q<sub>A</sub>,q<sub>B</sub>,2) | q<sub>B</sub>∈F<sub>B</sub> }
| |
| : By construction, r'=(q<sub>A</sub><sup>0</sup>,q<sub>B</sub><sup>0</sup>,i<sup>0</sup>),(q<sub>A</sub><sup>1</sup>,q<sub>B</sub><sup>1</sup>,i<sup>1</sup>),... is a run of automaton A' on input word ''w'' iff r<sub>A</sub>=q<sub>A</sub><sup>0</sup>,q<sub>A</sub><sup>1</sup>,... is run of A on ''w'' and r<sub>B</sub>=q<sub>B</sub><sup>0</sup>,q<sub>B</sub><sup>1</sup>,... is run of B on ''w''. r<sub>A</sub> is accepting and r<sub>B</sub> is accepting iff r' is concatenation of an infinite series of finite segments of 1-states(states with third component 1) and 2-states(states with third component 2) alternatively. There is such a series of segments of r' iff r' is accepted by A'.
| |
| *'''Concatenation''': ''There is a Büchi automaton that recognizes the language L(C)⋅L(A).''
| |
| :'''Proof:''' If we assume, ''w.l.o.g.'', ''Q''<sub>C</sub>∩''Q''<sub>A</sub> is empty then the Büchi automaton A'=(Q<sub>C</sub>∪Q<sub>A</sub>,Σ,Δ',I',F<sub>A</sub>) recognizes L(C)⋅L(A), where
| |
| ** Δ' = Δ<sub>A</sub> ∪ Δ<sub>C</sub> ∪ { (q,a,q') | q'∈I<sub>A</sub> and ∃f∈F<sub>C</sub>. (q,a,f)∈Δ<sub>C</sub> }
| |
| ** if I<sub>C</sub>∩F<sub>C</sub> is empty then I' = I<sub>C</sub> otherwise I' = I<sub>C</sub> ∪ I<sub>A</sub>
| |
| * '''ω-closure''': ''If L(C) does not contain empty word then there is a Büchi automaton that recognizes the language L(C)<sup>ω</sup>.''
| |
| :'''Proof:''' The Büchi automaton that recognizes L(C)<sup>ω</sup> is constructed in two stages. First, we construct a finite automaton A' such that A' also recognizes L(C) but there are no incoming transitions to initial states of A'. So, A'=(Q<sub>C</sub> ∪ {q<sub>new</sub>},Σ,Δ',{q<sub>new</sub>},F<sub>C</sub>), where Δ' = Δ<sub>C</sub> ∪ { (q<sub>new</sub>,a,q') | ∃q∈I<sub>C</sub>. (q,a,q')∈Δ<sub>C</sub>}. Note that L(C)=L(A') because L(C) does not contain the empty string. Second, we will construct the Büchi automaton A" that recognize L(C)<sup>ω</sup> by adding a loop back to the initial state of A'. So, A"=(Q<sub>C</sub> ∪ {q<sub>new</sub>},Σ,Δ",{q<sub>new</sub>},{q<sub>new</sub>}), where Δ" = Δ' ∪ { (q,a,q<sub>new</sub>) | ∃q'∈F<sub>C</sub>. (q,a,q')∈Δ'}.
| |
| * '''Complementation''':''There is a Büchi automaton that recognizes the language Σ<sup>ω</sup>/L(A).''
| |
| :'''Proof:''' The proof is presented [[Complementation of Büchi automaton|here]].
| |
| | |
| ==Recognizable languages==
| |
| Büchi automata recognize the [[ω-regular language]]s. Using the definition of ω-regular language and the above closure properties of Büchi automata, it can be easily shown that a Büchi automaton can be constructed such that it recognizes any given ω-regular language. For converse, see [[ω-regular language#Equivalence to Büchi automaton|construction of a ω-regular language]] for a Büchi automaton.
| |
| | |
| ;Deterministic versus non-deterministic Büchi automata
| |
| [[Image:Buchi non deterministic example.svg|thumb|200px|A non-deterministic büchi automaton that recognizes (0+1)*0<sup>ω</sup>]]
| |
| The class of deterministic Büchi automata does not suffice to encompass all omega-regular languages. In particular, there is no deterministic Büchi automaton that recognizes the language (0+1)*0<sup>ω</sup> (Any word that has an infinite suffix consisting of only 0's). We can demonstrate it by contradiction that no such deterministic Büchi automaton exists. Let us suppose ''A'' is a deterministic Büchi automaton that recognize (0+1)*0<sup>ω</sup> with final state set ''F''. ''A'' accepts 0<sup>ω</sup>. So, ''A'' will visit some state in ''F'' after reading some finite prefix of 0<sup>ω</sup>, say after the i<sub>0</sub>th letter. ''A'' also accepts the ω-word 0<sup>i<sub>0</sub></sup>10<sup>ω</sup>. Therefore, for some i<sub>1</sub>, after the prefix 0<sup>i<sub>0</sub></sup>10<sup>i<sub>1</sub></sup> the automaton will visit some state in ''F''. Continuing with this construction the ω-word 0<sup>i<sub>0</sub></sup>10<sup>i<sub>1</sub></sup>10<sup>i<sub>2</sub></sup>... is generated which causes A to visit some state in ''F'' infinitely often and the word is not in (0+1)*0<sup>ω</sup>. Contradiction.
| |
| | |
| The class of languages recognizable by deterministic Büchi automata is characterized by the following lemma.
| |
| :'''Lemma:''' ''An ω-language is recognizable by a deterministic Büchi automaton iff it is the [[Omega language#Operations|limit language]] of some [[regular language]].''
| |
| :'''Proof:''' Any deterministic Büchi automaton A can be viewed as a deterministic finite automaton A' and vice-versa, since both types of automaton are defined as 5-tuple of the same components, only the interpretation of acceptance condition is different. We will show that L(A) is the limit language of L(A'). An ω-word is accepted by A iff it will force A to visit final states infinitely often. Iff, infinitely many finite prefixes of this ω-word will be accepted by A'. Hence, L(A) is a limit language of L(A').
| |
| | |
| ==Algorithms==
| |
| [[Model checking]] of finite state systems can often be translated into various operations on Büchi automata.
| |
| In addition to the closure operations presented above,
| |
| the following are some useful operations for the applications of Büchi automata.
| |
| | |
| ;Determinization
| |
| | |
| Since deterministic Büchi automata are strictly less expressive than non-deterministic automata, there can not be an algorithm for determinization of Büchi automata.
| |
| But, [[McNaughton's Theorem]] and [[Safra's construction]] provide algorithms that can translate a Büchi automaton into a deterministic [[Muller automaton]] or deterministic [[Rabin automaton]].
| |
| | |
| ;Emptiness checking
| |
| | |
| The language recognized by a Büchi automaton is non-empty if and only if there is a final state that is both reachable from the initial state, and lies on a cycle.
| |
| | |
| An effective algorithm that can check emptiness of a Büchi automaton:
| |
| # Consider the automaton as a [[directed graph]] and decompose it into [[strongly connected component]]s.
| |
| # Run a search (e.g., the [[depth-first search]]) to find which components are reachable from the initial state.
| |
| # Check whether there is a non-trivial strongly connected component that is both reachable and contains a final state.
| |
| Each of the steps of this algorithm can be done in time linear in the automaton size, hence the algorithm is clearly optimal.
| |
| | |
| ;Minimization
| |
| | |
| The algorithm for [[minimizing nondeterministic finite automaton]] also correctly minimizes a Büchi automaton.
| |
| The algorithm does not guarantee minimum Büchi automaton.
| |
| Note that algorithms for [[minimizing deterministic finite automaton]] does not work for deterministic Büchi automaton.
| |
| | |
| ==Variants==
| |
| * [[Co-Büchi automaton]]
| |
| * [[Semi-deterministic Büchi automaton]]
| |
| * [[Generalized Büchi automaton]]
| |
| | |
| ==Transforming from other models of description to non-deterministic Büchi automata==
| |
| | |
| ;From [[Generalized Büchi automaton|generalized Büchi automata]] (GBA)
| |
|
| |
| :Multiple sets of states in acceptance condition can be translated into one set of states by an [[automata construction]], which is known as "counting construction". Lets say ''A'' = (Q,Σ,∆,q<sub>0</sub>,{F<sub>1</sub>,...,F<sub>n</sub>}) is a GBA, where F<sub>1</sub>,...,F<sub>n</sub> are sets of accepting states then the equivalent Büchi automaton is ''A''' = (Q', Σ, ∆',q'<sub>0</sub>,F'), where
| |
| ** Q' = Q × {1,...,n}
| |
| ** q'<sub>0</sub> = ( q<sub>0</sub>,1 )
| |
| ** ∆' = { ( (q,i), a, (q',j) ) | (q,a,q') ∈ ∆ and if q ∈ F<sub>i</sub> then j=((i+1) mod n) else j=i }
| |
| ** F'=F<sub>1</sub>× {1}
| |
| | |
| ;From [[Linear temporal logic]] formula
| |
| : A translation from a Linear temporal logic formula to a generalized Büchi automaton is given [[Linear temporal logic to Büchi automaton|here]]. And, a translation from a generalized Büchi automaton to a Büchi automaton is presented above.
| |
| | |
| ;From [[Muller automaton|Muller automata]]
| |
| : A given Muller automaton can be transformed into an equivalent Büchi automaton with following [[automata construction]]. Lets suppose ''A'' = (Q,Σ,∆,Q<sub>0</sub>,{F<sub>0</sub>,...,F<sub>n</sub>}) is a Muller automaton, where F<sub>0</sub>,...,F<sub>n</sub> are sets of accepting states. An equivalent Büchi automaton is ''A''' = (Q', Σ, ∆',Q<sub>0</sub>,F'), where
| |
| ** Q' = Q ∪ <big>∪</big><sup>n</sup><sub>i=0</sub> {i} × F<sub>i</sub> × 2<sup>F<sub>i</sub></sup>
| |
| ** ∆'= ∆ ∪ ∆<sub>1</sub> ∪ ∆<sub>2</sub>, where
| |
| ***∆<sub>1</sub> ={ ( q, a, (i,q',∅) ) | (q, a, q') ∈ ∆ and q' ∈ F<sub>i</sub> }
| |
| ***∆<sub>2</sub>={ ( (i,q,R), a, (i,q',R') ) | (q,a,q')∈∆ and q,q' ∈ F<sub>i</sub> and if R=F<sub>i</sub> then R'= ∅ otherwise R'=R∪{q} }
| |
| ** F'=<big>∪</big><sup>n</sup><sub>i=0</sub> {i} × F<sub>i</sub> × {F<sub>i</sub>}
| |
| :''A' '' keeps original set of states from ''A'' and adds extra states on them. The Büchi automaton ''A' '' simulates the Muller automaton ''A'' as follows: At the beginning of the input word, the execution of ''A''' follows the execution of ''A'', since initial states are same and ∆' contains ∆. At some non-deterministically chosen position in the input word, ''A' '' decides of jump into newly added states via a transition in ∆<sub>1</sub>. Then, the transitions in ∆<sub>2</sub> try to visit all the states of ''F<sub>i</sub>'' and keep growing ''R''. Once ''R'' becomes equal to ''F<sub>i</sub>'' then it is reset to the empty set and ∆<sub>2</sub> try to visit all the states of ''F<sub>i</sub>'' states again and again. So, if the states ''R''=''F<sub>i</sub>'' are visited infinitely often then ''A' '' accepts corresponding input and so does ''A''. This construction closely follows the first part of the proof of [[McNaughton's Theorem]].
| |
| | |
| ;From Kripke structures
| |
| :Let the given [[Kripke structure]] be defined by ''M'' = <''Q'', ''I'', ''R'', ''L'', ''AP''> where ''Q'' is the set of states, ''I'' is the set of initial states, ''R'' is a relation between two states also interpreted as an edge, ''L'' is the label for the state and ''AP'' are the set of atomic propositions that form ''L''.
| |
| | |
| :The Büchi automaton will have the following characteristics:
| |
| :: <math>Q_\text{final} = Q \cup \{ \text{init} \}</math>
| |
| :: <math>\Sigma = 2^{AP}</math>
| |
| :: <math>I =\{ \text{init} \}</math>
| |
| :: <math>F = Q \cup \{ \text{init} \}</math>
| |
| :: <math>\delta = q \overrightarrow{a} p </math> if (''q'', ''p'') belongs to ''R'' and ''L''(''p'') = ''a''
| |
| | |
| :and init <math>\overrightarrow{a}</math> ''q'' if ''q'' belongs to ''I'' and ''L''(''q'') = ''a''.
| |
| | |
| :Note however that there is a difference in the interpretation between Kripke structures and Büchi automata. While the former explicitly names every state variable's polarity for every state, the latter just declares the current set of variables holding or not holding true. It says absolutely nothing about the other variables that could be present in the model.
| |
| | |
| == References ==
| |
| {{Reflist}}
| |
| | |
| * Wolfgang Thomas, Automata on infinite objects, in Van Leeuwen, Ed., Handbook of Theoretical Computer Science, pp. 133–164, Elsevier, 1990.
| |
| | |
| == External links ==
| |
| * [http://www.cmi.ac.in/~madhavan/papers/tcs-96-2.html Finite-state Automata on Infinite Inputs]
| |
| * [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.125.8126 Moshe Y. Vardi: An automata-theoretic approach to linear temporal logic]
| |
| | |
| {{Formal languages and grammars}}
| |
| | |
| {{DEFAULTSORT:Buchi automaton}}
| |
| [[Category:Automata theory]]
| |
| [[Category:Models of computation]]
| |
| [[Category:Model checking]]
| |
The ac1st16.dll error is annoying and quite widespread with all types of Windows computers. Not only does it create a computer run slower, but it can also avoid you from utilizing a range of programs, including AutoCAD. To fix this problem, we should utilize a simple method to cure all of the potential difficulties which cause it. Here's what you want to do...
Document files enable the consumer to input information, images, tables plus alternative ingredients to improve the presentation. The just issue with this formatting compared to other file kinds like .pdf for illustration is its ability to be easily editable. This signifies which anybody viewing the file could change it by accident. Also, this file formatting will be opened by additional programs but it refuses to guarantee which what you see in the Microsoft Word application might nonetheless become the same whenever we view it using another system. However, it is very nevertheless preferred by many computer users for its ease of employ plus features.
Of course, the upcoming logical step is to get these false entries cleaned out. Fortunately, this is not a difficult task. It is the second thing you need to do when you observed the computer has lost speed. The first would be to make certain that there are no viruses or serious spyware present.
Registry cleaners have been designed for 1 purpose - to wash out the 'registry'. This is the central database that Windows relies on to function. Without this database, Windows wouldn't even exist. It's so important, that the computer is consistently adding and updating the files inside it, even if you're browsing the Internet (like now). This is remarkable, but the issues happen when a few of those files become corrupt or lost. This occurs a lot, plus it takes a good tool to fix it.
Besides, in the event you could receive a tuneup utilities 2014 which may do the job for you effectively plus instantly, then why not? There is 1 such system, RegCure that is good plus complete. It has attributes which alternative products do not have. It is the most recommended registry cleaner now.
Software mistakes or hardware mistakes that happen whenever running Windows plus intermittent mistakes are the general factors for a blue screen physical memory dump. New software or motorists which have been installed or changes inside the registry settings are the typical s/w causes. Intermittent errors refer to failed program memory/ hard disk or over heated processor plus these too might result the blue screen physical memory dump error.
To speed up the computer, we simply require to be capable to get rid of all these junk files, allowing your computer to locate just what it wants, whenever it wants. Luckily, there's a tool which enables us to do this easily plus instantly. It's a tool called a 'registry cleaner'.
Another important system you'll like to get is a registry cleaner. The registry is a huge list of everything installed on your computer, and Windows references it whenever it opens a program or uses a device connected to your computer. Whenever you delete a program, its registry entry must additionally be deleted, yet occasionally it's not. A registry cleaner can receive rid of these older entries thus Windows can search the registry quicker. It additionally deletes or corrects any entries which viruses have corrupted.