常规语言的抽引理

2024-02-25

我在使用泵引理检查给定语言是否规则时有点困惑。

假设我们必须检查是否:

L.接受偶数的语言0是否正常?

我们知道它是正则的,因为我们可以为 L 构造一个 DFA。但我想用泵引理来证明这一点。

现在假设我拿一个字符串w= "0000":

现在将字符串划分为x = 0, y = 0, and z = 00。现在应用泵送引理i = 2,我会得到字符串"00000",即not存在于我的语言中,因此通过抽引理证明该语言是不规则的。但DFA接受吗?

任何帮助将不胜感激
谢谢


您对泵引理并不完全清楚。

泵引理说了什么:

正式定义:常规语言的泵送引理 http://en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages#Formal_statement

Let L成为常规语言。那么存在一个整数p ≥ 1仅取决于L这样每个字符串w in L至少长度p (p被称为"pumping length")可以写成w = xyz (i.e., w可以分为三个子串),满足以下条件:

  1. |y| ≥ 1
  2. |xy| ≤ p
  3. for all i ≥ 0, xyiz L

但这个声明说的是:

如果一种语言确实是常规语言,那么一定有some way生成(pump) 新字符串来自all 足够大的字符串.

  1. Sufficiently large string means, a string in language that is of the length ≥ P.
    So it may not be possible to generate new string from small strings even if language is Regular Language

  2. Some way means, if language is really a regular and our choice of w is correct. Then there should be at lest one way to break w in three parts xyz such that by repeating(pumping) y for any number of times we can generate new strings in the language.
    correct choice of w means: w in language and sufficiently large ≥ P

note:在第二点中,即使你打破了,也有可能w正确进入xyz根据正式定义,仍然有一些新生成的字符串不是语言中的。正如你所做的那样.

在这种情况下,您将重试其他一些可能的选择y.

在你选择的字符串中w = "0000“你可以打破w这样y = 00。而有了这样的选择y您总是会在语言中找到一个新生成的字符串,即“偶数个零”

One mistake you are doing in your proof that you are doing for a specific string 0000. You should proof for all wP. So still your proof is incomplete

阅读我的这个答案在常规语言的抽取引理的背景下 https://stackoverflow.com/questions/11832371/to-make-sure-pumping-lemma-for-infinite-regular-languages-only/13539823#13539823

在那个答案中,我已经解释过打破w into xyz和泵送y means 查找循环部分并重复循环部分以生成新字符串在语言中。
当我们证明某种语言是正规的;那么实际上我们不知道循环部分在哪里,因此我们尝试满足泵引理规则 1,2 和 3 的所有可能选择。

泵引理说,如果语言是规则的且无限的,那么 DFA 中一定有一个循环,并且语言中每个足够大的字符串都经过循环部分(根据鸽巢原理 http://en.wikipedia.org/wiki/Pigeonhole_principle)的 DFA(因此y不能为空。这是上面正式定义中的规则 1)。

想想,循环可以在初始位置或结束位置等等x and z可以是空字符串。

但实际上我们不知道循环在 DFA 中落在哪里,所以我们尝试了所有可能的方法。

证明一种语言是正规的: 你要证明这一点all足够长的字符串

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常规语言的抽引理 的相关文章

  • 代码模拟确定有限自动机(DFA)执行过程

    一个确定有限自动机 xff08 DFA xff09 M是一个五元组 xff1a M 61 xff08 K xff0c xff0c f xff0c S xff0c Z xff09 其中 K是一个有穷集 xff0c 它的每个元素称为一个状态 x
  • 基于DFA方法的健康人与癫痫病人EEG数据分析附代码

    引言 DFA分析方法是由C K提出的一种研究时间序列波动长时相关性的方法 主要用来区别复杂系统本身产生的波动和由外界及环境刺激作用在系统上产生的波动 外部刺激产生的变化假设引起了局部效应 而系统本身内部的动力学产生的变化假设展示了长时的相关
  • 生成正则表达式

    通常在我们的工作中我们会使用正则表达式capture or match运营 但是 可以使用正则表达式 至少手动 来生成与正则表达式匹配的合法句子 当然 有些正则表达式可以匹配无限长的句子 例如表达式 我有一个问题可以通过使用正则表达式句子生
  • 将字符集转换为 nfa/dfa 的高效算法

    我目前正在研究扫描仪生成器 发电机已经工作正常 但是当使用字符类时 算法会变得非常慢 扫描仪生成器生成 UTF8 编码文件的扫描仪 应支持完整范围的字符 0x000000 到 0x10ffff 如果我使用大字符集 例如任何运算符 或 uni
  • 0,1 上的双字补码的上下文无关语法是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 L ww w 属于 0 1 的补集的 CFG 是多少 首先 请注意以下事实 任何奇怪的单词都是语言的一部分 让我们定义以下语言 L1 w1w w 0 1 L0 w0w w 0 1 这
  • 在JAVA中按特定单词分割字符串

    字符串 S 乘 3 加加 3 3 1 我想得到两个字符串数组 第一个是 乘 加 加 另一个输出是 3 3 3 1 我怎么才能得到它 我尝试使用 String operators s split 0 9 String operands s s
  • 使用正则表达式表示标识符

    C 编程语言中识别标识符的常规定义为 letter gt a b z A B Z digit gt 0 1 9 identifier gt letter letter digit 该定义将生成以下形式的标识符 标识符 a zA Z a zA
  • 有没有办法否定正则表达式?

    给定一个正则表达式R它描述了一种常规语言 没有花哨的反向引用 有没有一种算法方法来构造正则表达式R 描述除以下描述的单词之外的所有单词的语言R 应该可以作为维基百科 http en wikipedia org wiki Regular la
  • (a*+b*) 生成的字符串是什么类型

    除了任意数量的 a 和 b 的字符串 如 aa 或 bb 之外 正则表达式 a b 是否会包含类似的字符串 ab 或任何以 b 结尾的字符串 a b 与 a b 相同吗 我对正则表达式 a b 生成的字符串有点困惑 如果有人可以提供帮助 我
  • 简单英语中的乔姆斯基层次结构

    我试图找到乔姆斯基提出的 4 个级别的正式语法 无限制 上下文相关 上下文无关 常规 的简单 即非形式 解释 我已经很久没有学习正式语法了 各种定义现在让我难以想象 明确地说 我是not寻找随处可见的正式定义 例如here http en
  • 泵送引理(常规语言)

    我需要一些帮助来解决泵引理问题 L a b c a L lt b L lt c L 这是我到目前为止得到的 y uvw is the string from the pumping lemma 我让 y abbc n n 是泵引理的长度 y
  • “结合更牢固”这句话是什么意思?

    我知道这可能是一个新手问题 但我试图理解这句话 来自一篇关于使用 EBNF 的元语言的论文 Logical and binds stronger than logical or 在此之前它说 Conditions are condition
  • a* 与 (a*)* 相同吗?

    快速提问 如果a是一个正则表达式 那么这是真的吗a a Is a 有效的表达 如果是 那么任何人都可以解释为什么它与a 我很抱歉在这里提问 但我无法通过谷歌找到任何东西 Yes a a 是一样的 两者都生成相同的语言 即字符串包含的任何数字
  • 生成随机确定性有限自动机的算法是什么?

    DFA 必须具有以下四个属性 DFA 有 N 个节点 每个节点有 2 个传出转换 每个节点都可以从其他每个节点访问 从所有可能性中以完全一致的随机性选择 DFA 这是我到目前为止所拥有的 从 N 个节点的集合开始 选择一个尚未选择的节点 将
  • 为给定的正则表达式创建所有可能匹配的集合

    我想知道如何找到一组与给定正则表达式匹配且匹配数量有限的所有匹配 例如 所有这些例子你都可以假设它们是从 并结束于 hello gt hell hello 1 9 0 9 0 3 gt 1 2 3 9998 9999 My cat dog
  • 正则表达式中的顺序不重要吗?

    我正在查看此 stackoverflow 链接中提出的问题 奇数个 a 的正则表达式 https stackoverflow com questions 28902496 regular expression for odd number
  • 旅行商问题中 NP 难问题和 NP 完全问题的混淆

    旅行商优化 TSP OPT 是一个NP难题 旅行商搜索 TSP 是NP完全问题 然而 TSP OPT 可以简化为 TSP 因为如果 TSP 可以在多项式时间内求解 那么 TSP OPT 1 也可以 我认为要将 A 简化为 B B 必须与 A
  • [a-zA-Z] 的正则表达式

    我有一个仅匹配英文字母的正则表达式 a a zA Z 字符类 有没有内置的正则表达式 我的意思是像 s or w 您正在要求一个速记班 http www regular expressions info shorthand html对于英文
  • 实现词法分析器时,DFA 与正则表达式?

    我刚刚学习如何编写编译器 所以如果我有任何错误的说法 请纠正我 当人们可以简单地使用正则表达式时 为什么还要在代码中实现 DFA goto 语句 表驱动实现 据我了解 词法分析器接收一串字符并生成一个标记列表 这些标记在语言的语法定义中是终
  • 常规语法与上下文无关语法

    我正在为我的学习计算语言测试 有一个想法我无法理解 我明白常规语法更简单 不能包含歧义 但不能完成编程语言所需的许多任务 我也明白了上下文无关语法允许歧义 但允许一些编程语言必需的东西 例如回文 我遇到的困难是理解如何通过知道以下内容来得出

随机推荐

  • 来自 JSON 对象的动态 UI

    我正在尝试找到一种将动态 JSON 对象转换为有效 HTML 网页的方法 这个想法是能够将需要显示的内容从物联网设备推送到云端 并让用户能够输入和保存配置 json 看起来像这样 loginConfiguration username st
  • Groovy 的隐藏功能?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 看起来 Groovy 在这个线程中被遗忘了 所以我只会向 Groovy 问同样的问题 尝试限制
  • 有没有办法让客户端脚本也从 Ara 框架中的代理/集群服务自动加载?

    首先 基于 SSR 的 MFE 的一个很棒的框架 我正在尝试 Ara Svelte Micro App1 Vue Micro App 2 Nuxt JS Appshell 如中所述https ara framework github io
  • C 字符串:简单问题

    我在下面初始化了三个变量 char c1 Hello char c2 H e l l o 0 char c3 Hello 我知道 c1 和 c2 是相同的 并且它们都是字符串 因为它们以 0 结尾 然而 c3与c1和c2不同 这是因为 c3
  • Infiniband 寻址 - 主机名到 IB 地址(无需 IBoIP)

    我刚刚开始熟悉 infiniband 我想了解可用于解决 infiniband 节点的方法 基于代码的示例来自 RDMA 使用 IB 动词进行读写 http thegeekinthecorner wordpress com 2010 09
  • 如何使用 linq 从 DataTable 中过滤掉空行?

    我有一个从 Excel 数据构建的数据表 但有时 Excel 返回的行中所有字段都为空 我想一般性地过滤掉这些 而不考虑列名 我认为 Linq 可以很好地做到这一点 但要实现这一点有点困难 到目前为止 这就是我得到的 var nonempt
  • 如何在浏览器中从Go服务器下载文件

    我的代码从远程 url 获取文件并在浏览器中下载文件 func Index w http ResponseWriter r http Request url http upload wikimedia org wikipedia en b
  • iPhone 配置实用程序无法识别 iOS 8 设备

    随着 iOS 8 最近的更新 我无法使用 iPhone 配置实用程序加载我的测试设备 该程序根本无法识别装有 iOS 8 的设备 当 iOS 7 发布时 iPCU 不需要更新 尽管它确实可以与 iOS 7 配合使用 Apple 支持网站上的
  • 批处理文件对多个目录中的所有文件执行命令

    我想制作一个运行此命令的批处理文件 C Program Files x86 IrfanView i view32 exe C Users digi admin TIFFs OLD DIRECTORY tif ini C Users digi
  • Visual Studio:如何中断已处理的异常?

    我希望 Visual Studio 在发生处理的异常时中断 即我不只是想看到 第一次机会 消息 我想调试实际的异常 例如我希望调试器在异常时中断 try System IO File Delete someFilename catch Ex
  • C 中的结构初始化出现错误:预期表达式

    我有一个这样的结构 struct foobar int i char word 我知道这会起作用 struct foobar int i char word struct foobar three 3 three 为什么以下不起作用 str
  • 始终块中的 Veriloggenerate/genvar

    我试图让一个模块通过 ISE 12 4 中的语法检查 但它给了我一个我不明白的错误 首先是代码片段 parameter ROWBITS 4 reg ROWBITS 1 0 temp genvar c generate always pose
  • IntelliJ 社区版中的 Spring Boot 项目

    我是 IntelliJ 社区版的新手 任何人都可以帮助我在 IntelliJ 社区版中创建 Spring Boot 项目 对于终极版 有 spring boot 初始化程序 但我找不到社区版的任何内容 我点击了此链接但找不到任何解决方案 使
  • 编辑元素时 Java 优先级队列重新排序

    我正在尝试实现 Dijkstra 算法 以使用优先级队列查找最短路径 在算法的每一步中 我都会从优先级队列中删除距离最短的顶点 然后更新优先级队列中其每个邻居的距离 现在我读到 当您编辑 Java 中的优先级队列中的元素 确定排序的元素 时
  • 如何将变量限制为一组固定的字符串?

    如果我想将数据库中的spicelevel列的值限制为1 2和3 我可以这样做 private enum SpiceLevel Low 1 Medium 2 Hot 3 然后在代码中我可以做 int SpiceLevel Low选择 1 作为
  • Visual Studio 2010 DataCompare 表比较

    在 Visual Studio 2010 中 您是否能够比较两个数据库之间的数据库数据 我想用它来将数据从一个数据库复制到另一个数据库 这些数据库具有完全相同的结构 但是当我进行比较时 我看到 VS2010 的 DataCompare 视图
  • 为什么静态库包含 main 函数?

    我遇到了一个奇怪的静态库 其中包含main 函数 C 我只是想知道它的目的是什么 如何main 执行 从链接器的角度来看 链接在哪里并不重要main功能是 它可以位于静态库中 也可以位于独立的目标文件中 链接器不在乎 它从目标文件生成可执行
  • 如何在 CSS 中定义 tbody 的最小高度

    我想在CSS中设置tbody的最小高度 即使没有 tr td td tr 在 tbody 中 这是我的代码 tbody height 500px min height 500px 但它不起作用 那么我应该怎么做才能实现这一目标呢 你为什么要
  • 沮丧:为什么:“A”是“B”无法访问的基础?

    与此错误消息的其他示例不同 我已经有一个指向A并想要检索实际的子类 这种安排是一些 C 包装的 C 代码的一部分A是一些 POD C 结构 为什么没有动态转换 和test是 C 中的一些回调 它调用 C 功能并检索正确的对象 应使用强制转换
  • 常规语言的抽引理

    我在使用泵引理检查给定语言是否规则时有点困惑 假设我们必须检查是否 L 接受偶数的语言0是否正常 我们知道它是正则的 因为我们可以为 L 构造一个 DFA 但我想用泵引理来证明这一点 现在假设我拿一个字符串w 0000 现在将字符串划分为x