首页 > 其他分享 >「学习笔记」自动机家族

「学习笔记」自动机家族

时间:2023-07-19 22:11:34浏览次数:38  
标签:状态 笔记 家族 delta 字符串 自动机 DFA mathrm

OI 中所说的「自动机」一般都指「确定有限状态自动机」。


一个 确定有限状态自动机(DFA) 由以下五部分构成:

字符集(\(\Sigma\)),该自动机只能输入这些字符。
状态集合(\(Q\))。如果把一个 DFA 看成一张有向图,那么 DFA 中的状态就相当于图上的顶点。
起始状态(\(start\)),\(start\in Q\),是一个特殊的状态。起始状态一般用 \(s\) 表示,为了避免混淆,本文中使用 \(start\)。
接受状态集合(\(F\)),\(F\subseteq Q\),是一组特殊的状态。
转移函数(\(\delta\)),\(\delta\) 是一个接受两个参数返回一个值的函数,其中第一个参数和返回值都是一个状态,第二个参数是字符集中的一个字符。如果把一个 DFA 看成一张有向图,那么 DFA 中的转移函数就相当于顶点间的边,而每条边上都有一个字符。
DFA 的作用就是识别字符串,一个自动机 A,若它能识别(接受)字符串 \(S\),那么 \(A(S)=\mathrm{True}\),否则 \(A(S)=\mathrm{False}\)。

当一个 DFA 读入一个字符串时,从初始状态起按照转移函数一个一个字符地转移。如果读入完一个字符串的所有字符后位于一个接受状态,那么我们称这个 DFA 接受 这个字符串,反之我们称这个 DFA 不接受 这个字符串。

如果一个状态 \(v\) 没有字符 \(c\) 的转移,那么我们令 \(\delta(v,c)=\mathrm{null}\),而 \(\mathrm{null}\) 只能转移到 \(\mathrm{null}\),且 \(\mathrm{null}\) 不属于接受状态集合。无法转移到任何一个接受状态的状态都可以视作 \(\mathrm{null}\),或者说,\(\mathrm{null}\) 代指所有无法转移到任何一个接受状态的状态。

我们扩展定义转移函数 \(\delta\),令其第二个参数可以接收一个字符串:\(\delta(v,s)=\delta(\delta(v,s[1]),s[2..|s|])\),扩展后的转移函数就可以表示从一个状态起接收一个字符串后转移到的状态。那么,\(A(s)=[\delta(start,s)\in F]\)。

如,一个接受且仅接受字符串 a, ab, aac 的 DFA:

看不懂没关系我也看不懂,不影响你学东西!

OI 中常用的自动机

字典树

「学习笔记」字典树(Trie) - yi_fan0305 - 博客园 (cnblogs.com)

AC 自动机

正在学习

未完待续。。。

标签:状态,笔记,家族,delta,字符串,自动机,DFA,mathrm
From: https://www.cnblogs.com/yifan0305/p/17566919.html

相关文章

  • K210笔记
    MaixPy文档K210学习笔记@嘉楠官网todo......
  • 「学习笔记」FHQ-treap
    FHQ-treap,即无旋treap,又称分裂合并treap,支持维护序列,可持久化等特性。FHQ-treap有两个核心操作,分裂与合并。通过这两个操作,在很多情况下可以比旋转treap等方便的实现一些操作。FHQ-treap与其他的平衡树相比,他最明显的优点是:它好写!!!,想象一下,在考场上,你用较短的时间写出FH......
  • python笔记:第十一章正则表达式
    1.模块re以一定规则,快速检索文本,或是实现一些替换操作默认下,区分大小写2.常见的匹配字符表字符描述\d代表任意数字,就是阿拉伯数字0-9这些\D代表非数字的字符。与\d完全相反\w代表字母,数字,下划线。也就是a-z、A-Z、0-9、_\W跟\w相反,代表不是字母......
  • StarRocks Segment源码阅读笔记--Page的组成
    Page由4部分组成PageBody,PageFooter,FooterSize(4),CheckSum(4)PageBody是由page类型决定的,可能是压缩的。PageFooter是经过序列化的PageFooterPB。它包含page_type、未压缩的body大小和其他通用的元数据。如果PageBody的大小和未压缩的body大小一致,则表示这个page是未压缩的。F......
  • 特征平台笔记
    AI从2012年开始快速发展,在人脸识别、广告、个性化推荐等领域大规模商用后,陆续出现了一些通用的平台来加速模型训练和模型部署流程,例如:AWSSageMaker :通过完全托管的基础设施、工具和工作流程为任何用例构建、训练和部署机器学习(ML)模型Google VertexAI :使用全代管式机......
  • XOps笔记
     当前是 Ops盛行的时代,在互联网圈内的你一定经常都会听到这些名词,DevOps、DevSecOps、GitOps、NetOps、ItOps、Aiops、DataOps、MLOps、NoOps;无论是什么Ops,它的目标都是利用DevOps的最佳实践去实现效率和规模经济,并确保可靠性、可重用性和可重复性,同时减少技术和流程的重复,从......
  • 主席树学习笔记
    Tip:建议完成LuoguP3919后阅读。目录模板:静态区间\(k\)小值模板:动态区间\(k\)小值BZOJ3207:花神的嘲讽计划疯狂的颜色序列SPOJ10628:CountonatreeLuoguP3302森林模板题:静态区间\(k\)小值思路引导首先我们想一想,如何用线段树求数列\(k\)小值。我们可以建......
  • 白话机器学习笔记(二)学习分类
    分类用图形来解释,把他想象为有大小有方向带箭头的向量。设权重向量为\(w\),虚线为使权重向量称为法线向量的直线。直线的表达式为:\(w\cdotx=0\)(两个向量的内积)也可写为:\(w\cdotx=\sum\limits_{i=1}^nw_ix_i=w_1x_1+w_2x_2=0\)\(w\cdotx=|w|\cdot|x|\cdotcos\theta\)要......
  • 白话机器学习笔记(一)学习回归
    最小二乘法定义模型表达式:\(f_\theta(x)=\theta_0+\theta_1x\)(常用\(\theta\)表示未知数、\(f_\theta(x)\)表示含有参数\(\theta\)并且和变量\(x\)相关的函数)目标函数假设有\(n\)个训练数据,那么它们的误差之和可以这样表示,这个表达式称为目标函数。\(E(\theta)=\frac12\sum......
  • 白话机器学习笔记(三)评估模型
    模型评估在进行回归和分类时,为了进行预测,我们定义了函数\(f_\theta(x)\),然后根据训练数据求出了函数的参数\(\theta\)。如何预测函数\(f_\theta(x)\)的精度?看它能否很好的拟合训练数据?我们需要能够定量的表示机器学习模型的精度,这就是模型的评估。交叉验证回归问题的验证把......