DFA(确定性有限自动机)的定义中的“δ:Q×Σ→Q”如何解读?

Posted

技术标签:

【中文标题】DFA(确定性有限自动机)的定义中的“δ:Q×Σ→Q”如何解读?【英文标题】:How does "δ:Q×Σ→Q" read in the definition of a DFA (deterministic finite automaton)? 【发布时间】:2013-01-29 23:27:51 【问题描述】:

δ: Q × Σ → Q 用英语怎么说?描述 × 的含义也会有所帮助。

【问题讨论】:

DFA 中的 A 缩写代表 Automaton 这是一个 CS 理论问题,因此属于 cs.stackexchange.com(我认为它不属于 cstheory 的级别,因为这是非常基础的)。 【参考方案1】:

从Wikipedia引用很容易:

δ 是状态转换表:我会将“×”读作表,将“→”读作该表中的条目。

然后用自然语言:指定机器处于指定状态并看到定义的符号(Σ 的元素)将导致哪个状态(Q 的元素)。

【讨论】:

在您的 wiki 页面:a transition function (δ : Q × Σ → Q),您将获得指向 function-wiki 的链接,× 用于 X × Y 笛卡尔积, → 用于映射。【参考方案2】:

抱歉,如果条款不完全正确(英文)。大约 3 或 4 年前,我用不同的语言研究过自动机理论,因此这些术语可能并不完全准确。

δ 就像一个带有两个参数的偏函数,它将一个状态(该自动机的状态;Q 的元素)和一个“输入动作”(Σ 的元素,它是自动机接受的字母表*)作为输入,并产生自动机在提供输入动作后应该具有的新状态。

基本上可以这样理解:

定义在 Q 组自动机状态和 sigma 字母表上的 delta 转移函数

公式中的 × 表示状态和动作集的 Cartesian product,而 → 表示函数返回的内容属于它后面的集合(在您的情况下为 Q)。

*不要与自动机接受的语言相混淆,这将是所有具有有效转换的“输入动作”序列(即定义了 δ(stateX, input))并引导自动机进入最终的“可接受”状态。

【讨论】:

如果您发现需要纠正或需要更多信息的地方,请发表评论 :) 为什么δ是偏函数?如果它是 NFA,我会同意(某种程度上,这将是一个关系),但 DFA 不是强制 Σ 中的“输入状态”和“输入动作”的每个组合都具有定义的输出状态吗?我认为如果没有定义特定的转换,那么它必然只是 NFA 而不是 DFA。 如果 δ 是偏函数,则 DFA 是不完全 DFA。如果它是一个完整的函数,那么 DFA 是完整的。 NFA (afaik) 之间的区别在于,在 NFA 的情况下,δ 函数产生 Q 的子集的值,并且当向自动机提供输入时,该输出子集中的任何元素都可以选择为下一个状态 (非确定性的)。通常所有元素都被认为是下一个状态,扩展的 δ 定义为 δ:P(Q)×Σ→P(Q),P(Q) 是 Q 的子集的集合。cgi.csc.liv.ac.uk/~pwg/COMP218/Notes/note1up2.pdf @DPenner δ ⊆ Q×Σ → Q 表示 δQ×Σ → Q 映射和部分函数的子集,请阅读我的答案。 for example: read this Complement DFA 虽然 OP 没有说 ⊆ 或 P(Q),只是一个简单的 δ:Q×Σ→Q 这让我相信他们的定义是一个完整的函数。我用谷歌搜索了它,here 它暗示(在问题 21 中)不完整的 DFA 是 NFA 的一种。但是,看起来在这个主题上并没有 100% 的共识。尽管从不完整的 DFA 转换为完整的 DFA 是微不足道的,但这并没有真正的实际区别。谢谢,不过我从来没有听说过它的信息!【参考方案3】:

δ 就像a mathematical function 称为转换函数。就像是。

z = f(x, y) 

数学中的函数定义了一个集合中的元素到另一个集合的映射。在函数中,一组输入参数被称为函数的域,输出是愤怒的。

[回答]   

在表达式"δ:Q×Σ → Q"

×表示笛卡尔积(即一个集合),是一个映射"δ:Q×Σ → Q" 表示δ 是一个转换函数,定义了从Q×ΣQ 的映射。 其中,δ 的域为Q × Σ,范围为Q

注意:Cartesian Product 本身是一个数学,表示两组之间所有可能的顺序对(映射)。

你也可以说:

δ 是一个转换函数,它定义了状态集Q 和语言符号Σ 的笛卡尔积到状态Q 集之间的映射(或者说关联)。这被缩写为δ:Q×Σ→Q

这里,Q 是有限的状态集,Σ 是有限的语言符号集。

此外,在任何自动化中,您都可以以树状方式表示转换函数。 1.Transition Table 2.Transition graph或者说状态图。 3. 转换函数:一组有限的映射规则。例如δ(q0, a) → q1, δ(q1, a) → q2出于同一目的定义映射

在 DFA 中。 δ:Q×Σ → Q 也可以写成δ(Q,Σ) → Q 类似函数。在δ 函数中,两个输入参数是状态 Q 和一个语言符号 Σ,返回值是 Q

δ(Q,Σ) → Q是什么意思

假设在你的 转换函数 δ 集合中有一个元素 δ(q0, a) → q1 这意味着。 如果当前状态是q0,那么通过使用a 符号,您可以切换到状态q1。还有δ(q0, a) → q1状态图

(q0)---a---►(q1)  

转换表是:

+----+----+
|Q\Σ | a  |
+----+----+
| q0 | q1 |
+----+----+

所有定义映射(q0, a) to (q1)

一些作者在正式的 DFA 定义中写了δ ⊆ Q×Σ → Q,这意味着δPartial function(未在完整的域Q×Σ 上定义)。我们总是可以在有时需要的完整域上定义δ,例如查找补码 DFA。 在这里(Complement DFA),我为同一种语言编写了两个 DFA,一个是部分 DFA,另一个是补充 DFA。

【讨论】:

我正在考虑为 GATE 做准备。需要一些教科书建议,你能帮我吗? @ArupRakshit for toc 我建议some books here 只是阅读书籍并选择过去 10-15 年的门论文。 你能推荐一下subjects的教科书吗?你从哪所大学读过M.Tech? @ArupRakshit 不是针对每个主题,而是针对some subjects I am pretty confident【参考方案4】:

从 cue cross sigma 到 cue 的增量

转换函数 delta 将有序的状态对和输入符号 cue cross sigma 映射到状态 cue。

【讨论】:

为什么用“eeh”代替“Sigma”? @MikeSamuel 好点,不完全确定我为什么写“eeh”。当然是“西格玛”。我想我最近读到了一些没有使用标准符号的东西。修改...

以上是关于DFA(确定性有限自动机)的定义中的“δ:Q×Σ→Q”如何解读?的主要内容,如果未能解决你的问题,请参考以下文章

DFA确定有限状态自动机

DFA确定化和最小化

『后缀自动机入门 SuffixAutomaton』

有限状态自动机

Knuth-Morris-Pratt 算法中的 DFA 构造

有限自动机