[英]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
, 意思就是
(
(
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
并停止并拒绝输入的任何单词
.
。
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
并停止或不停止 (但不停止并接受!)
.
。
see also Recognizable vs Decidable on MathExchange for the difference. 有关差异 ,另请参见MathExchange上的可识别与可确定。
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.
重要的是要注意,理论计算机科学中的这些正则表达式与PERL或Java等编程语言中已知的RegEx功能有所不同。 In fact, these RegExes are truly more powerful (don't known if that's the correct english term) than regular expressions.
实际上,这些RegExes确实比正则表达式更强大(不知道这是否是正确的英语术语)。
A good definition of regular expressions is given here : 正则表达式的一个很好的定义在这里给出:
and nothing else is a regular expression. 除了正则表达式,别无其他。
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.
由于Church-Turing的论点 ,任何编程语言都像Turing机器一样强大。 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). 请注意,任何可识别的语言也是可以确定的(但反之亦然)。
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 . 为了反驳常规性,我只想提及常规语言的激进式引理 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.