简体   繁体   English

常规,可确定的图灵和可识别的图灵是什么意思?

[英]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. 有关差异 ,另请参见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 : 正则表达式的一个很好的定义在这里给出:

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. 由于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). 请注意,任何可识别的语言也是可以确定的(但反之亦然)。

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 . 为了反驳常规性,我只想提及常规语言激进式引理

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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