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”如何解读?的主要内容,如果未能解决你的问题,请参考以下文章