简体   繁体   中英

what does regular, Turing-decidable and Turing-recognisable mean?

I know this question has been asked earlier, but I honestly don't understand it clearly.

I'm currently undergoing a study about the theory of computation and I'm coming to the terms "Prove that a language is decidable, recognizable or regular".

In simplest term what do they actually mean, and how do we prove such things?

We are talking about a language 大号 over an Alphabet 适马 , which means that L是Sigma *的子集 ( 大号 consists of words that consist of letters from 适马 ).

大号 being decidable
means that there exists a Turing machine Ť , such that Ť will halt and accept for any input word 欧米茄 and halt and reject for any input word 欧米茄不在L中 .

大号 being recognisable
means that there exists a Turing machine Ť , such that Ť will halt and accept for any input word 欧米茄 and halt or not halt (but not halt and accept!) for any input 欧米茄不在L中 .

see also Recognizable vs Decidable on MathExchange for the difference.

大号 being regular
means that 大号 can be created by regular expressions . It is important to note that these regular expressions in theoretical computer science are different from the RegEx features known in Programming Languages like PERL or Java. In fact, these RegExes are truly more powerful (don't known if that's the correct english term) than regular expressions.

A good definition of regular expressions is given here :

For an alphabet 适马

  • 空集 and 小量 (the empty set and the empty word) is a regular expression
  • 一种 for any Sigma中的a (any letter from the alpabet) is a regular expression
  • if R1 and R2 are regular expressions, these are regular expressions, too:
    • R1和R2 (meaning R1 or R2 )
    • R1与R2串联 (meaning the concatenation of R1 and R2 )
    • R1 * (meaning R1 , any number of repetitions of R1 or the empty word 小量 )

and nothing else is a regular expression.

How do we proof something like that?

Turing machines

To prove decidability or recognisability, it's often easiest to provide a Turing machine with the desired attributes. Because of the Church-Turing thesis , any programming language is as powerful as a Turing machine. So in my courses, it was perfectly acceptable to provide an algorithm in a programming language or pseudo code.

Note that any language that is recognisable is also decidable (but not the other way around).

Regular Expressions

To prove regularity, it's most of the time easiest to just provide a regular expression that constructs the language. Sometimes a prove is needed that the regular expression really constructs exactly 大号 , which is usually not too difficult (often it's plain obvious).

In many lectures, there is a convention on regular expressions that allows a more intuitive and shorter (but not more powerful) syntax.

It may be interesting to know that regular languages are exactly the languages that can be recognised by finite automatons . Note that any regular language is also decidable (and thus recognisable).

To disprove regularity, I'm just going to mention the pumping lemma for regular languages .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM